From obrien@NUXI.org  Wed Mar 26 18:08:16 2008
Return-Path: <obrien@NUXI.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6E21E106564A
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Mar 2008 18:08:16 +0000 (UTC)
	(envelope-from obrien@NUXI.org)
Received: from dragon.nuxi.org (trang.nuxi.org [74.95.12.85])
	by mx1.freebsd.org (Postfix) with ESMTP id 4E98F8FC23
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Mar 2008 18:08:16 +0000 (UTC)
	(envelope-from obrien@NUXI.org)
Received: from dragon.nuxi.org (obrien@localhost [127.0.0.1])
	by dragon.nuxi.org (8.14.1/8.14.1) with ESMTP id m2QI8FL0063102
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 26 Mar 2008 11:08:15 -0700 (PDT)
	(envelope-from obrien@dragon.nuxi.org)
Received: (from obrien@localhost)
	by dragon.nuxi.org (8.14.2/8.14.1/Submit) id m2QI8FOa063101;
	Wed, 26 Mar 2008 11:08:15 -0700 (PDT)
	(envelope-from obrien)
Message-Id: <200803261808.m2QI8FOa063101@dragon.nuxi.org>
Date: Wed, 26 Mar 2008 11:08:15 -0700 (PDT)
From: "David O'Brien" <obrien@freebsd.org>
Reply-To: "David O'Brien" <obrien@freebsd.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: Support -jN parallel ports building.
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         122120
>Category:       ports
>Synopsis:       bsd.port.mk - Support -jN parallel ports building.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    portmgr
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 26 18:10:01 UTC 2008
>Closed-Date:    Sun Mar 22 10:33:48 UTC 2009
>Last-Modified:  Sun Mar 22 10:33:48 UTC 2009
>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:
Responsible-Changed-From-To: freebsd-ports-bugs->portmgr 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Wed Mar 26 20:24:47 UTC 2008 
Responsible-Changed-Why:  
bsd.port.mk is portmgr territory (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=122120 

From: Pav Lucistnik <pav@FreeBSD.org>
To: bug-followup@FreeBSD.org, obrien@FreeBSD.org
Cc:  
Subject: Re: ports/122120: bsd.port.mk - Support -jN parallel ports
	building.
Date: Wed, 26 Mar 2008 23:41:32 +0100

 See ports/113132 which contains a more evolved implementation of similar
 idea.
 
 -- 
 Pav Lucistnik <pav@oook.cz>
               <pav@FreeBSD.org>
 And the sign said long haired, freaky people need not apply.
 

From: "David O'Brien" <obrien@FreeBSD.org>
To: Pav Lucistnik <pav@FreeBSD.org>
Cc: bug-followup@FreeBSD.org
Subject: Re: ports/122120: bsd.port.mk - Support -jN parallel ports
	building.
Date: Sun, 30 Mar 2008 16:38:32 -0700

 On Wed, Mar 26, 2008 at 11:41:32PM +0100, Pav Lucistnik wrote:
 > See ports/113132 which contains a more evolved implementation of similar
 > idea.
 
 Things may have chanced, but Kris prefered how this patch did things.
 I changed what I originally had to follow Kris' preferences.
State-Changed-From-To: open->closed 
State-Changed-By: pav 
State-Changed-When: Sun Mar 22 10:33:24 UTC 2009 
State-Changed-Why:  
Similar but different patch committed 

http://www.freebsd.org/cgi/query-pr.cgi?pr=122120 
>Unformatted:
