Das Ports-Framework von FreeBSD unterstützt das
parallele Bauen von Ports, indem es mehrere
make
-Instanzen ausführt, damit
SMP-Systeme ihre gesamte
CPU-Rechenleistung ausnützen
können und so das Bauen von Ports schneller und
effektiver werden kann.
Dies ermöglicht der Parameter
-jX
an make(1), wenn Code von
Drittanbietern kompiliert wird. Leider können nicht
alle Ports wirklich gut mit dem Parallelbau umgehen.
Deshalb ist es erforderlich, dass dieses Feature explizit
durch MAKE_JOBS_SAFE=yes
irgendwo
unterhalb des Abschnitts für Abhängigkeiten im
Makefile
aktiviert wird.
Eine weitere Möglichkeit im Umgang mit dieser
Option besteht für den Maintainer darin,
MAKE_JOBS_UNSAFE=yes
zu setzen. Diese
Variable wird dann verwendet, wenn ein Port bekannterweise
mit -jX
nicht gebaut werden kann, der
Benutzer jedoch für alle Ports den Mehrprozessorbau
durch FORCE_MAKE_JOBS=yes
in
/etc/make.conf
erzwingt.
Wenn Ihr Port GNU make
benutzt, dann setzen Sie bitte
USE_GMAKE=yes
.
Variable | Bedeutung |
---|---|
USE_GMAKE | Der Port benötigt gmake
für den Build. |
GMAKE | Der ganze Pfad zu gmake ,
wenn es nicht im PATH ist. |
Wenn Ihr Port eine X-Applikation ist, die
Makefile
-Dateien aus
Imakefile
-Dateien mit
imake erzeugt, dann setzen Sie
USE_IMAKE=yes
. Das sorgt dafür,
dass die Konfigurationsphase automatisch ein
xmkmf -a
ausführt.
Wenn das Flag -a
ein Problem für
Ihren Port darstellt, setzen Sie
XMKMF=xmkmf
. Wenn der Port
imake benutzt, aber das
install.man
-Target nicht versteht,
dann sollte NO_INSTALL_MANPAGES=yes
gesetzt werden.
Wenn das Makefile
im Quelltext Ihres Ports etwas anderes als
all
als Haupt-Build-Target
hat, setzen Sie ALL_TARGET
entsprechend. Das Gleiche gilt für
install
und
INSTALL_TARGET
.
Wenn Ihr Port ein configure
-Skript
benutzt, um Makefile
-Dateien aus
Makefile.in
-Dateien zu erzeugen,
setzen Sie GNU_CONFIGURE=yes
.
Wenn Sie dem configure
-Skript
zusätzliche Argumente übergeben wollen (das
Vorgabeargument ist --prefix=${PREFIX}
--infodir=${PREFIX}/${INFO_PATH}
--mandir=${MANPREFIX}/man
--build=${CONFIGURE_TARGET}
), setzen Sie diese
zusätzlichen Argumente in
CONFIGURE_ARGS
.
Zusätzliche Umgebungsvariablen können
überdie Variable CONFIGURE_ENV
übergeben werden.
configure
benutzenVariable | Bedeutung |
---|---|
GNU_CONFIGURE | Der Port benutzt ein
configure -Skript, um das Bauen
vorzubereiten. |
HAS_CONFIGURE | Wie GNU_CONFIGURE , nur
dass kein Standard-Konfigurations-Target zu
CONFIGURE_ARGS hinzugefügt
wird. |
CONFIGURE_ARGS | Zusätzliche Argumente für das
configure -Skript. |
CONFIGURE_ENV | Zusätzliche Umgebungsvariablen
für die Abarbeitung des
configure -Skriptes. |
CONFIGURE_TARGET | Ersetzt das Standard-Konfigurations-Target.
Vorgabewert ist
${MACHINE_ARCH}-portbld-freebsd${OSREL} . |
Wenn Ihr Port SCons
benutzt, definieren Sie
USE_SCONS=yes
.
scons
benutzenVariable | Bedeutung |
---|---|
SCONS_ARGS | Port-spezifische SCons-Argumente, die der SCons-Umgebung übergeben werden. |
SCONS_BUILDENV | Variablen, die in der System-Umgebung gesetzt werden sollen. |
SCONS_ENV | Variablen, die in der SCons-Umgebung gesetzt werden sollen. |
SCONS_TARGET | Letztes Argument, das SCons übergeben
wird – ähnlich
MAKE_TARGET . |
Um SConstruct
im Quelltext alles,
was SCons in SCONS_ENV
übergeben
wird, respektieren zu lassen (das ist hauptsächlich
CC/CXX/CFLAGS/CXXFLAGS
), patchen Sie
SConstruct
, sodass das Build
Environment
wie folgt konstruiert
wird:
Es kann dann mit env.Append
und
env.Replace
modifiziert werden.
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>.