Hello, I have another version of the patch that allows multiple make jobs for a port build, please tell me what you think:
http://www.maxlor.com/freebsd/files/make_jobs.diff I've abandoned the name PARALLEL_BUILD in favor of MAKE_JOBS since the former intuitively hints at several port builds running at once, instead of one single port build being built with several make processes. I've shamelessly taken the MAKE_JOBS name from pav, thanks :) Here's an explanation of the variables used: ENABLE_MAKE_JOBS: The master switch that enables or disables the whole thing. The user is supposed to set it in his /etc/make.conf . If this variable isn't set, the ports are supposed to build like they always did. ALLOW_MAKE_JOBS: Goes into a port's makefile. The port maintainer indicates with it that the port can be built with multiple make jobs. MAKE_JOBS_WHITELIST: Allows the user to override ALLOW_MAKE_JOBS. Any port whose UNIQUENAME is listed in MAKE_JOBS_WHITELIST will have its ALLOW_MAKE_JOBS defined. The user would put something like this in his /etc/make.conf: MAKE_JOBS_WHITELIST=kdebase gtk20 The following are new "internal" variables I introduced: CPUS: The number of CPUs in the system. MAKE_JOBS_NJOBS: The number of make jobs that will be used. Currently, this is ${CPUS} + 1. MAKE_JOBS_ARGS: The argument that is passed to make. BUILD_FAILMSG: A message that is printed if the do-build stage fails. Note that this variable can be used by any part of the ports system, not just the MAKE_JOBS part. To use it, write code like BUILD_FAILMSG+= "===> Foo" Each message added to BUILD_FAILMSG like this will be printed at the end of the do-build stage (if it fails), one paragraph per message. The MAKE_JOBS code currently uses this to inform the user that he needn't bother to send bug reports if MAKE_JOBS_WHITELIST is used. Now, please let's hear what you think! I would like for this patch (or a modified version of it) to be added to FreeBSD. If the powers that be agree to that, I will then also write patches for the porters handbook and portlint. Cheers Benjamin
pgpZG8DvGqQAn.pgp
Description: PGP signature