Anhang

6 Anhang

» » »

.1 Kurzreferenz

!ALWAYS

Spezielles Ziel. Bewirkt, daß hiervon abhängige Ziele immer aktualisiert werden.

[auto-depend]

(Innerhalb eines Skripts) Leitet ein Autodepend-Skript ein.

!CLEAN_STATE

Spezielles Ziel. Löscht alle Dateien aus Buildfile.state.

!configuration

Beginnt eine Gruppe von bedingten Wertzuweisungen für eine bestimmte Konfiguration. Beispiel:

!configuration [linux+ssl]
   CC=gcc
   CFLAGS+=-DLINUX -DOPENSSL

!configure SEL

Wählt eine globale Konfiguration, die für alle Ziele gilt, auf der Basis von SEL. Die Folgezeilen enthalten mögliche Konfigurationen der Form PAT: CFG. Die erste passende Zeile gilt. Beispiel:

!configure $(_SYSTEM)
    Linux) linux
    FreeBSD) bsd

!configure

Wie zuvor, aber die Folgezeilen enthalten ein Skript, dessen Ausgabe als globale Konfiguration gilt.

!configure [KONFIG] MUSTER ...

Legt eine Konfiguration für die in MUSTER spezifizierten Ziele fest. %-Platzhalter in MUSTER sind erlaubt und funktionieren wie bei Regeln. Siehe Konfigurationsauswahl mit !configure.

.define / .enddefine

Makrodefinition.

$(.dirfind(VERZ/)(MUSTER=ERSETZUNG))

Wie $(.find), aber Suche nach Verzeichnissen.

!export VARIABLE

Exportiert eine Yabu-Variable in das Skript-Environment. Siehe Das Environment von Skripten.

!export VARIABLE=WERT

Definiert eine Variable im Skript-Environment. Siehe Das Environment von Skripten.

!export $VARIABLE

Exportiert eine Variable aus dem Environment des Benutzers in das Skript-Environment. Siehe Das Environment von Skripten.

$(.find(VERZ/)(MUSTER=ERSETZUNG))

Verzeichnis rekursiv durchsuchen und ausgewählte Dateinamen zurückgeben.

.foreach / .endforeach

Schleifenkonstruktion.

$(.glob:*.c)

Inhalt eines Verzeichnisses mit Filterregel.

.include

Einfügen einer Datei.

.once ... .endonce

Schützt einen Bereich gegen mehrfaches .include.

!serialize [<Kennung>] Muster ...

Yabu versucht, die angegebenen Ziele nacheinander (nicht parallel) zu erreichen (siehe Gruppierung und Reihenfolge von Zielen).

!settings

Legt Programmeinstellungen fest (siehe Programmeinstellungen).

!option

Leitet die Deklaration aller im Buildfile benutzter Optionen ein.

!project Verzeichnis Buildfile ...

Definiert ein Unterprojekt.

.variable=Wert

Wertzuweisung an eine Präprozessor-Variable.

VARIABLE=Wert

Unbedingte Wertzuweisung.

VARIABLE+=Wert

Wert an eine Variable anhängen.

VARIABLE?=Wert

Wert an eine Variable anhängen, falls er nicht bereits enthalten ist.

VARIABLE[config]=Wert

Bedingte Wertzuweisung (konfigurationsabhängiger Wert).

VARIABLE[config]+=Wert

Wert konfigurationsabhängig anhängen.

VARIABLE[config]?=Wert

Wert konfigurationsabhängig anhängen, falls noch nicht vorhanden.

$(.variable)

Wert einer Präprozessor-Variable.

$(VARIABLE)

Wert einer Variablen. Siehe Variablen

$(VARIABLE:*=../obj/*.o)

Variable mit Transformationsregel. Wandelt 'abc' in '../obj/abc.obj' um.

$(VARIABLE!:*=../obj/*.o)

Wie zuvor, ignoriert aber nicht zum Muster passende Werte.

$(VARIABLE?:*=../obj/*.o)

Wie zuvor, läßt aber nicht zum Muster passende Werte unverändert.

.2 Versionen

Yabu 1.21 (19-Jul-2009)

Yabu 1.20 (19-Apr-2009)

Yabu 1.19 (06-Mär-2009)

Yabu 1.18 (22-Nov-2008)

Yabu 1.17 (10-Nov-2008)

Yabu 1.16 (11-Okt-2008)

Yabu 1.15 (09-Aug-2008)

Yabu 1.14 (27-Jul-2008)

Yabu 1.12 (22-Jun-2008)

Yabu 1.11 (06-Jun-2008)

Yabu 1.10 (30-Mai-2008)

Yabu 1.09 (25-Mai-2008)

Yabu 1.08 (12-Mai-2008)

Yabu 1.07 (07-Mai-2008)

Yabu 1.06 (23-Apr-2008)

Yabu 1.05 (11-Apr-2008)

Yabu 1.04 (04-Mär-2008)

Yabu 1.03 (02-Mär-2008)

Yabu 1.02 (27-Feb-2008)

Yabu 1.01 (10-Feb-2008)

Yabu 1.00 (10-Feb-2008)

Yabu 0.98 (02-Dez-2007)

Yabu 0.97 (19-Nov-2007)

Yabu 0.93 (23-Sep-2007)

Yabu 0.92 (22-Sep-2007)

Yabu 0.91 (12-Sep-2007)

Yabu 0.9 (31-Aug-2007)

Yabu 0.8 (26-Aug-2007)

Yabu 0.6 (19-Aug-2007)

Yabu 0.5 (05-Oct-2006)

Yabu 0.4 (01-Oct-2006)

Yabu 0.3 (23-Sep-2006)

.3 Quellenangaben

JGC07

John Graham-Cumming: "Debugging Makefiles". Dr Dobbs Journal March 2007.

PM98

Peter iller: "Recursive Make Considred Harmful". AUUGN Journal of AUUG Inc., 19(1), pp. 14-25.