Das folgende Beispiel zeigt die Einbettung von Bibliothekslisten in eine Entwicklungsumgebung.
Wenn mehrere Entwickler auf einer gemeinsamen Datenbasis arbeiten, ist es üblich, neben dem zentralen Datenpool lokale Daten zu halten. Mit Hilfe des Ausleihmechanismus werden Daten hin und her übertragen.
Es ist zweckmäßig, beim Übersetzen einer lokalen Variante zentrale und lokale Daten zu einer Bibliotheksliste zusammenzufassen, da dann nicht für jedes Bibliothekselement der genaue Ablageort bekannt sein muss.
Die folgende Abbildung zeigt die zentrale und eine lokale Bibliothek, die zur Entwicklungsumgebung gehören. Quell-Elemente haben Elementtyp S, Include-Elemente M. Das Ergebnis ist PROGRAM mit Typ L. Mit Hilfe von Bibliothekslisten kann PROGRAM sowohl zentral als auch lokal mit dem gleichen Makefile aktualisiert werden. Die Bibliotheksliste, mit der PROGRAM aktualisiert wird, soll den Namen SYSPLAMALT-PROGRAM erhalten (Bibliothekslisten müssen mit "SYSPLAMALT-" beginnen). Bei lokaler Verwendung muss SYSPLAMALT-PROGRAM aus zwei Bibliotheken bestehen, bei zentraler nur aus einer.
lokale Sicht: SYSPLAMALT-PROGRAM = '(LIB,$ZENTRAL.LIB)'
(erst lokal, dann unter $ZENTRAL suchen)zentrale Sicht: SYSPLAMALT-PROGRAM = '($ZENTRAL.LIB)'
(nur unter $ZENTRAL suchen)
//begin-make //modify-make-defaults library=sysplamalt-program,- // from-objects-var=from //set-dependency *l(lib,program,l), "$LOKAL.LIB od. $ZENTRAL.LIB"- // (*l(,source1,l),- // *l(,source2,l)),'/call bind' //set-dependency *l(,source1,l),- // (*l(,source1,s),- // *l(,includ1,m),- // *l(,includ2,m)),- // '/call compile lib=&&(from#1.lib),elem=source1' //set-dependency *l(,source2,l),- // (*l(,source2,s),- // *l(,includ2,m)),- // '/call compile lib=&&(from#1.lib),elem=source2' //end-make
In den Prozeduren BIND und COMPILE wird die Bibliotheksliste auf zwei verschiedene Weisen verwendet. BIND verwendet direkt die Bibliotheksliste auf der Eingabeseite:
... //include-module element=source1,library=sysplamalt-program //include-module element=source2,library=sysplamalt-program ...
Bei lokaler Verwendung hat dann die lokale Bibliothek Vorrang vor der zentralen.
Die Prozedur COMPILE hat einen LIB-Parameter, der über die make-S-Variable FROM mit der Trefferbibliothek versorgt wird; der Übersetzer arbeitet dann direkt mit diesem Wert. Die Include-Verarbeitung läuft mit der Bibliotheksliste SYSPLAMALT-PROGRAM. Dann haben lokale Includes Vorrang vor zentralen.