Date: Wed, 26 Mar 2008 11:08:15 -0700 (PDT) From: "David O'Brien" <obrien@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/122120: Support -jN parallel ports building. Message-ID: <200803261808.m2QI8FOa063101@dragon.nuxi.org> Resent-Message-ID: <200803261810.m2QIA18H014217@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 122120 >Category: ports >Synopsis: Support -jN parallel ports building. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Mar 26 18:10:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: David O'Brien >Release: FreeBSD 8.0-CURRENT i386 >Organization: >Environment: System: FreeBSD dragon.NUXI.org 8.0-CURRENT FreeBSD 8.0-CURRENT #592: Sat Feb 16 21:08:06 PST 2008 rootk@dragon.NUXI.org:/src/fbsd/sys/i386/compile/DRAGON i386 >Description: Some large applications in The Ports Collection are known to build fine in a parallel fashion with -jN. GCC is one example of such a port. Below is a rough diff that allows a well tested port to set 'USE_MAKE_J' to cause $MAKE to run with -jN. (I thought I had filed this in a PR previously, but I cannot find it searching http://bugs.freebsd.org) >How-To-Repeat: $ cd /usr/ports/lang/gcc42 ; make >Fix: Index: Mk/bsd.java.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.java.mk,v retrieving revision 1.82 diff -u -p -r1.82 bsd.java.mk --- Mk/bsd.java.mk 28 Oct 2007 15:09:43 -0000 1.82 +++ Mk/bsd.java.mk 3 Nov 2007 14:57:03 -0000 @@ -435,7 +435,7 @@ ALL_TARGET?= . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; \ - ${SETENV} ${MAKE_ENV} ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) + ${SETENV} ${MAKE_ENV} ${ANT} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}) . endif . endif Index: Mk/bsd.perl.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.perl.mk,v retrieving revision 1.7 diff -u -p -r1.7 bsd.perl.mk --- Mk/bsd.perl.mk 29 Sep 2007 03:46:06 -0000 1.7 +++ Mk/bsd.perl.mk 29 Sep 2007 14:52:42 -0000 @@ -257,7 +257,7 @@ do-configure: .if defined(PERL_MODBUILD) .if !target(do-build) do-build: - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${MAKE_ARGS} ${ALL_TARGET}) + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PERL5} ${PL_BUILD} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}) .endif # !target(do-build) .if !defined(USE_GMAKE) Index: Mk/bsd.port.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.591 diff -u -p -r1.591 bsd.port.mk --- Mk/bsd.port.mk 11 Mar 2008 23:45:04 -0000 1.591 +++ Mk/bsd.port.mk 13 Mar 2008 15:36:10 -0000 @@ -2092,6 +2104,10 @@ CHECKSUM_ALGORITHMS?= md5 sha256 MD5_FILE?= ${MASTERDIR}/distinfo +.if defined(USE_MAKE_J) +MAKE_JOBS?= 1 +_MAKE_JOBS= -j${MAKE_JOBS} +.endif MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_ENV+= PREFIX=${PREFIX} \ @@ -3605,9 +3638,9 @@ do-configure: .if !target(do-build) do-build: .if defined(USE_GMAKE) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}) .else - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}) .endif .endif Index: lang/gcc42/Makefile =================================================================== RCS file: /home/ncvs/ports/lang/gcc42/Makefile,v retrieving revision 1.335 diff -u -p -r1.335 Makefile --- lang/gcc42/Makefile 8 Mar 2008 22:34:57 -0000 1.335 +++ lang/gcc42/Makefile 15 Mar 2008 15:33:36 -0000 @@ -28,6 +28,9 @@ LIB_DEPENDS= gmp.7:${PORTSDIR}/math/libg SUFFIX= 42 LATEST_LINK?= gcc${SUFFIX}${PKGNAMESUFFIX} NOT_FOR_ARCHS= alpha ia64 +USE_MAKE_J= yes +MAKE_JOBS!= sysctl -n kern.smp.cpus +#MAKE_JOBS!= sysctl -n hw.ncpu # Building libgcj with lang/gcc295 installed is causing a failure about # "hidden symbol `__eprintf'" in libgcc.a(_eprintf.o). CONFLICTS= gcc-2.95.* >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803261808.m2QI8FOa063101>