Index: bsd.port.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v retrieving revision 1.565 diff -a -u -r1.565 bsd.port.mk --- bsd.port.mk 7 Apr 2007 12:51:47 -0000 1.565 +++ bsd.port.mk 12 Apr 2007 07:36:19 -0000 @@ -1198,6 +1198,9 @@ .endif .endif +# Get number of CPUs in the system +CPUS!= ${SYSCTL} -n kern.smp.cpus + MASTERDIR?= ${.CURDIR} .if ${MASTERDIR} != ${.CURDIR} @@ -2119,6 +2122,25 @@ MD5_FILE?= ${MASTERDIR}/distinfo +.if defined(DISABLE_MAKE_JOBS) +MAKE_JOBS= +.elif defined(FORCE_MAKE_JOBS) +MAKE_JOBS= -j${CPUS} +.else +. if defined(USE_MAKE_JOBS) +. if ${USE_MAKE_JOBS} == "yes" +MAKE_JOBS= -j${CPUS} +. else +MAKE_JOBS= -j${USE_MAKE_JOBS} +. endif +. elif defined(FEELING_LUCKY) +MAKE_JOBS?= -j${CPUS} +MAKE_FAIL_MESSAGE?= "You enabled experimental feature to build this port with ${MAKE_JOBS}, and the build failed. Please repeat the build without FEELING_LUCKY defined. If the build succeeds without it, consider reporting this to ." +. else +MAKE_JOBS?= +. endif +.endif + MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_ENV+= TARGETDIR=${TARGETDIR} DESTDIR=${DESTDIR} PREFIX=${PREFIX} \ @@ -3594,13 +3616,18 @@ .if !target(do-build) do-build: +.if defined(FEELING_LUCKY) && !defined(USE_MAKE_JOBS) + @${ECHO_MSG} "===> **** Taking changes building this with ${MAKE_JOBS} ****" +.endif .if defined(USE_GMAKE) - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) + @(cd ${BUILD_WRKSRC}; if ! ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_JOBS} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}; then \ + ${ECHO_MSG} ${MAKE_FAIL_MESSAGE} | ${FMT} 75 79 ; + fi) .else .if defined(PERL_MODBUILD) - @(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}) .else - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_JOBS} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) .endif .endif .endif