Skip site navigation (1)Skip section navigation (2)
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>