7.2. Die `Makefile`s des Dokumentationsbaums verstehen
Zurück | Kapitel 7. Die Erzeugung der Zieldokumente | Weiter

## 7.2. Die `Makefile`s des Dokumentationsbaums verstehen

Innerhalb des FreeBSD Documentation Projects gibt es drei verschiedene Arten von `Makefile`s:

- Ein `Makefile` in einem Unterverzeichnis gibt Anweisungen an dessen Dateien und Unterverzeichnisse weiter.

- Ein Dokument-`Makefile` beschreibt das Dokument, das aus dem Inhalt des jeweiligen Verzeichnisses gebaut werden soll.

- Make-Includes sind der "Klebstoff", der für den Bau der Dokumentation erforderlich ist. In der Regel heissen diese Dokumente `doc.`xxx`.mk`.

### 7.2.1. Unterverzeichnis-`Makefile`s

Derartige `Makefile`s sind in der Regel wie folgt aufgebaut:

SUBDIR =articles SUBDIR+=books COMPAT_SYMLINK = en DOC_PREFIX?= ${.CURDIR}/.. .include "${DOC_PREFIX}/share/mk/doc.project.mk"

Die ersten vier nicht-leeren Zeilen definieren die make-Variablen `SUBDIR`, `COMPAT_SYMLINK`, und `DOC_PREFIX`.

Die erste `SUBDIR`-Anweisung weist (ebenso wie die `COMPAT_SYMLINK`-Anweisung) einer Variable einen Wert zu und überschreibt dabei deren ursprünglichen Wert.

Die zweite `SUBDIR`-Anweisung zeigt, wie man den aktuellen Wert einer Variable ergänzen kann. Nach der Ausführung dieser Anweisung hat die Variable `SUBDIR` den Wert `articles books`.

Die Anweisung `DOC_PREFIX` zeigt, wie man einer Variable einen Wert zuweist (vorausgesetzt, die Variable ist nicht bereits definiert). Eine derartige Anweisung ist beispielsweise sinnvoll, wenn sich `DOC_PREFIX` nicht dort befindet, wo es vom `Makefile` erwartet wird. Durch das Setzen dieser Variable kann der korrekte Wert an das Makefile übergeben werden.

Was heißt dies nun konkret? Mit den `SUBDIR`-Anweisungen legen Sie fest, welche Unterverzeichnisse beim Bau der Dokumentation eingeschlossen werden müssen.

`COMPAT_SYMLINK` wird zur Erstellung von symbolischen Links zwischen den jeweiligen Dokumentsprachen und deren offizieller Kodierung benötigt (so wird beispielsweise `doc/en` nach `en_US.ISO-8859-1` verlinkt).

`DOC_PREFIX` gibt den Pfad zum Wurzelverzeichnis des Quellcode-Baums des FreeBSD Documentation Projects an. Diese Vorgabe kann jederzeit durch einen eigenen Wert ersetzt werden. Bei `.CURDIR` handelt es sich um eine in make eingebaute Variable, die den Pfad des aktuellen Verzeichnisses enthält.

Die letzte Zeile bindet `doc.project.mk`, die zentrale, projektweite make-Datei des FreeBSD Documentation Projects, in den Bau ein. Diese Datei enthält den "Klebstoff", der die diversen Variablen in Anweisungen zum Bau der Dokumentation konvertiert.

### 7.2.2. Dokument-`Makefile`s

Diese `Makefile`s definieren diverse make-Variablen mit Vorgaben zum Bau der im Verzeichnis enthaltenen Dokumentation.

Dazu ein Beispiel:

MAINTAINER=nik@FreeBSD.org DOC?= book FORMATS?= html-split html INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # SGML content SRCS= book.xml DOC_PREFIX?= ${.CURDIR}/../../.. .include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"

Die Variable `MAINTAINER` ist von zentraler Bedeutung. Sie legt fest, wer für ein bestimmtes Dokument des FreeBSD Documentation Projects verantwortlich ist.

`DOC` (ohne die Erweiterung `.xml`) ist der Name des Hauptdokuments des Verzeichnisses, in dem sich das Makefile befindet. Mit `SRCS`-Anweisungen geben Sie alle Dokumente an, aus denen das Dokument besteht. Zusätzlich binden Sie damit wichtige Dateien ein, deren Änderung einen erneuten Bau der Dokumentation erforderlich macht.

Mit `FORMATS` geben Sie an, in welchen Formaten die Dokumentation gebaut werden soll. `INSTALL_COMPRESSED` enthält die Standardvorgaben, die beim Bau komprimierter Pakte der Dokumentation verwendet werden sollen. Der Variable `INSTALL_ONLY_COMPRESS` (die in der Voreinstellung leer ist) wird nur dann ein Wert zugewiesen, wenn ausschließlich komprimierte Pakete der Dokumentation erstellt werden sollen.

### Anmerkung:

Die Zuweisung von Werten an verschiedene Variablen wurde bereits im Abschnitt Unterverzeichnis-Makefiles behandelt.

Die Variable `DOC_PREFIX` und die verschiedenen Include-Anweisungen sollten Ihnen ebenfalls bereits vertraut sein.

Zurück | Nach oben | Weiter
Kapitel 7. Die Erzeugung der Zieldokumente | Zum Anfang | 7.3. Make-Includes des FreeBSD Documentation Projects

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.