Ports : make mit mehreren jobs

Hallo,

meine Frage bezieht sich auf das Kompilieren der Ports auf einer SMP Maschine.
Wie es es möglich, die Ports mit mehreren jobs zu übersetzen ?
Das Standardmake mit externen Sources außerhalb vom Port-System funktioniert ja wie bei Linux mit make -j 8 oder so.
Nur auf die Ports lässt sich ein direktes make -j nicht Anwenden.
Danke für Hilfe.
 
Einmal ist da das von Styx verlinkte buildflags - das umschifft für dich viele Fallstricke. Eventuell kommt bald auch native Unterstützung dafür in die Ports. Ich arbeite bereits daran buildflags mit den kommenden Änderungen kompatibel zu machen, so dass sich für Benutzer meines Systems nichts ändert, wenn es soweit ist.
 
prima, das ist eigentlich genau das, was ich z.Zt. brauche.
Also um es zusammenzufassen:
Man braucht "distcc", "ccache" und die "bsdadminscripts". Dann muss man nur noch die 4 Zeilen Konfiguration in die make.conf eintragen und schon kann's losgehen?

Ich habe noch zusätzlich die Werte von Threads und Subthreads auf 5 gesetzt, aber mein Phenom gammelt immer noch bei max. 25% Auslastung rum.
Hab ich was vergessen?
 
Bei einigen Ports greift das ganze schlichtweg nicht. Probier mal zum Beispiel firefox zu bauen, da funktioniert das sehr gut. Du musst auch berücksichtien ob deine Festplatte schnell genug ist und ob du genug RAM für so viele Prozesse hast.
 
ich hab heut etwas aufgerüstet ;-)
Gigabyte GA-MA78GM-S2H
AMD Phenom 9550
4GB RAM

Wenn wir grad beim Thema sind. Ich hab den i386 Kernel angepasst und gebaut. Sprich: SMP Unterstüzung und CPU Type i686 ausgewählt (wird so beim Booten angezeigt)
oder hätte ich den AMD64 Kernel nehmen sollen? Da steht der Hammer als CPU Type drinne...
 
Mit i386 wird dir eben die vollständige Nutzung deines Arbeitsspeichers verwehrt. Ansonsten hat i386 vor allem auf Notebooks noch große Vorteile. Aber das ist ja nicht der Fall hier.
 
okay,... statusreport: Hab nun ein lauffähiges freebsd amd64 und wollte nun Ports mit Hilfe des bsdadminscripts kompilieren:

Dazu habe ich dann erstmal xorg und den firefox auserkoren. Dabei musste ich feststellen, dass bei beiden Ports es immerwieder zu Problemen kommt und er sich über ein nichtvorhandenes "--tag" beschwert. Genaue Fehlermeldung poste ich heut Abend, aber du weißt sicherlich schon was ich meine, oder?
Da muss ich dann von Hand in den jew. Port wechseln und ein "make clean" und ein "make install clean" durchführen. Dann kann ich wieder weitermachen...

Bis heut Abend.
Grüße AronaDaal
 
Code:
gmake[4]: Entering directory `/usr/ports/x11-toolkits/gtk20/work/gtk+-2.12.9/gdk-pixbuf/pixops'
if /bin/sh /usr/ports/x11-toolkits/gtk20/work/gnome-libtool --mode=compile env CCACHE_PREFIX=/usr/local/bin/distcc /usr/local/bin/ccache cc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../.. -DG_DISABLE_CAST_CHECKS -D_REENTRANT -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include    -DGDK_PIXBUF_DISABLE_DEPRECATED  -I/usr/local/include/freetype2  -I/usr/local/include -D_THREAD_SAFE -I/usr/local/include    -O2 -pipe -fno-strict-aliasing -march=athlon64 -Wall -MT pixops.lo -MD -MP -MF ".deps/pixops.Tpo" \
          -c -o pixops.lo `test -f 'pixops.c' || echo './'`pixops.c; \
        then mv -f ".deps/pixops.Tpo" ".deps/pixops.Plo"; \
        else rm -f ".deps/pixops.Tpo"; exit 1; \
        fi
gnome-libtool: compile: unable to infer tagged configuration
gnome-libtool: compile: specify a tag with `--tag'

Das mit der libtool neu bauen hab ich bereits im Internet gelesen. Aber die gnome-libtool fand ich nicht. Also hab ich die paar Zeilen für dein Script in der make.conf auskommentiert und dann gtk20 nochmals gebaut.

EDIT:
Ach ganz vergessen:
Irgendwie funzt das verteilte bauen aber immernoch nicht. 24,5% Auslastung ist Maximum.
Hab ich noch was vergessen zu installieren?
bsdadminscripts, distcc, ccache

make.conf
Code:
CPUTYPE?=   athlon64
CFLAGS=     -O2 -pipe -fno-strict-aliasing
SUP_UPDATE= yes
SUPFLAGS=   -L 0 z
SUPFILE=    /etc/csup/stable-supfile
SUP=        /usr/bin/csup

# /usr/local/etc/buildflags.conf
BUILDFLAGS=     /usr/local/share/bsdadminscripts/buildflags.mk
.if exists(${BUILDFLAGS})
.include "${BUILDFLAGS}"
.endif

# added by use.perl 2008-04-20 18:13:43
PERL_VER=5.8.8
PERL_VERSION=5.8.8

buildflags.conf
Dein Sample-File bis auf angepasste Threads und Subthreads.

EDIT2:
Ok.... wenn ich mit "portinstall" installiere funktioniert es. Woran liegt das? dass da ein make build und dann erst ein make install aufgerufen wird?
 
Zuletzt bearbeitet:
Zurück
Oben