# 5.8. MASTERDIR

5.8. `MASTERDIR`
Zurück | Kapitel 5. Die Konfiguration des Makefile | Weiter

## 5.8. `MASTERDIR`

Falls Ihr Port wegen einer Variable, die verschiedene Werte annimmt (z.B. Auflösung oder Papiergröße), leicht unterschiedliche Versione von Paketen erzeugen muss, dann legen Sie bitte ein Unterverzeichnis pro Paket an, um es für den Nutzer einfacher begreiflich zu machen, was zu machen ist. Aber versuchen Sie dabei so viele Dateien wie möglich zwischen diesen Ports gemeinsam zu nutzen. Normalerweise benötigen Sie nur ein sehr kurzes `Makefile` in allen ausser einem Unterverzeichnis, wenn Sie Variablen intelligent nutzen. In diesem einzigen `Makefile` können Sie `MASTERDIR` verwenden, um anzugeben, wo der Rest der Dateien liegt. Benutzen Sie bitte auch eine Variable für `PKGNAMESUFFIX`, damit die Pakete unterschiedliche Namen haben werden.

Wir demonstrieren dies am Besten an einem Beispiel. Es ist Teil von `japanese/xdvi300/Makefile`;

PORTNAME= xdvi PORTVERSION= 17 PKGNAMEPREFIX= ja- PKGNAMESUFFIX= ${RESOLUTION} : # default RESOLUTION?= 300 .if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ ${RESOLUTION} != 300 && ${RESOLUTION} != 400 @${ECHO_MSG} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" @${ECHO_MSG} "Possible values are: 118, 240, 300 (default) and 400." @${FALSE} .endif

`japanese/xdvi300` verfügt ebenfalls über alle Patches, Paket-Dateien usw. Wenn Sie `make` eintippen, wird der Port die Standardvorgabe für die Auflösung nehmen (300) und den Port ganz normal erstellen.

Genauso wie für alle anderen Auflösungen ist dies das vollständige `xdvi118/Makefile`:

RESOLUTION= 118 MASTERDIR= ${.CURDIR}/../xdvi300 .include "${MASTERDIR}/Makefile"

(`xdvi240/Makefile` und `xdvi400/Makefile` sind ähnlich). Die `MASTERDIR`-Definition teilt dem `bsd.port.mk` mit, dass die normalen Unterverzeichnisse wie `FILESDIR` und `SCRIPTDIR` unter `xdvi300` gefunden werden können. Die `RESOLUTION=118`-Zeile wird die `RESOLUTION=300`-Zeile in `xdvi300/Makefile` überschreiben und der Port wird mit einer Auflösung von 118 erstellt.

Zurück | Nach oben | Weiter
5.7. Abhängigkeiten (dependencies) | Zum Anfang | 5.9. Manualpages

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>.