Das FreeBSD Porter-Handbuch
Zurück | Kapitel 12. Was man machen respektive vermeiden sollte | Weiter

# 12.6. Etwas hinter die `bsd.port.mk`-Anweisung schreiben

Schreiben Sie bitte nichts hinter die `.include <bsd.port.mk>`-Zeile. Normalerweise kann dies vermieden werden, indem Sie die Datei `bsd.port.pre.mk` irgendwo in der Mitte Ihres `Makefile`s und `bsd.port.post.mk` am Ende einfügen.

> Anmerkung: Sie dürfen entweder nur das `bsd.port.pre.mk`/`bsd.port.post.mk`-Paar oder `bsd.port.mk` alleine hinzufügen; vermischen Sie diese Verwendungen nicht!

`bsd.port.pre.mk` definiert nur einige Variablen, welche in Tests im `Makefile` benutzt werden können, `bsd.port.post.mk` definiert den Rest.

Hier sind einige wichtige Variablen, welche in `bsd.port.pre.mk` definiert sind (dies ist keine vollständige Liste, lesen Sie bitte `bsd.port.mk` für eine vollständige Auflistung).

Variable | Beschreibung
--- | ---
`ARCH` | Die Architektur, wie von `uname -m` zurückgegeben (z.B. `i386`)
`OPSYS` | Der Typ des Betriebsystems, wie von `uname -s` zurückgegeben (z.B. `FreeBSD`)
`OSREL` | Die Release Version des Betriebssystems (z.B., `2.1.5` oder `2.2.7`)
`OSVERSION` | Die numerische Version des Betriebssystems; gleichbedeutend mit `__FreeBSD_version`.
`PORTOBJFORMAT` | Das Objektformat des Systems (`elf` oder `aout`; beachten Sie, dass für ``moderne'' Versionen von FreeBSD `aout` veraltet ist).
`LOCALBASE` | Die Basis des ``local'' Verzeichnisbaumes (z.B. `/usr/local/`)
`PREFIX` | Wo der Port sich selbst installiert (siehe Mehr Informationen über `PREFIX`).

> Anmerkung: Falls Sie die Variablen `USE_IMAKE`, `USE_X_PREFIX`, oder `MASTERDIR` definieren müssen, sollten Sie dies vor dem Einfügen von `bsd.port.pre.mk` machen.

Hier sind ein paar Beispiele von Dingen, die Sie hinter die Anweisung `bsd.port.pre.mk` schreiben können:

    # lang/perl5 muss nicht kompliliert werden, falls perl5 schon auf dem System ist
    .if ${OSVERSION} > 300003
    BROKEN= perl ist im System
    .endif

    # nur eine Versionsnummer für die ELF Version der shlib
    .if ${PORTOBJFORMAT} == "elf"
    TCL_LIB_FILE=  ${TCL_LIB}.${SHLIB_MAJOR}
    .else
    TCL_LIB_FILE=  ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR}
    .endif

    # die Software erstellt schon eine Verknüpfung fü ELF, aber nicht fü a.out
    post-install:
    .if ${PORTOBJFORMAT} == "aout"
           ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so
    .endif

Sie haben sich daran erinnert Tabulator statt Leerzeichen nach `BROKEN=` und `TCL_LIB_FILE=` zu benutzen, oder? :-).

Zurück | Zum Anfang | Weiter
__FreeBSD_version Werte | Nach oben | Benutzen Sie die `exec`-Anweisung in Wrapper-Skripten

Fragen zum FreeBSD Ports-System richten Sie bitte an <ports@FreeBSD.org>, Fragen zu diesem Dokument hingegen an <de-bsd-translators@de.FreeBSD.org>.