freebsd-nq/share/mk
Dimitry Andric 54ff5d7323 Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process
all the SUBDIR entries in parallel, instead of serially.  Apply this
option to a selected number of Makefiles, which can greatly speed up the
build on multi-core machines, when using make -j.

This can be extended to more Makefiles later on, whenever they are
verified to work correctly with parallel building.

I tested this on a 24-core machine, with make -j48 buildworld (N = 6):

                before    stddev       after    stddev
                =======   ======       =======  ======
real time        1741.1     16.5         959.8     2.7
user time       12468.7     16.4       14393.0    16.8
sys  time        1825.0     54.8        2110.6    22.8

(user+sys)/real     8.2                   17.1

E.g. the build was approximately 45% faster in real time.  On machines
with less cores, or with lower -j settings, the speedup will not be as
impressive.  But at least you can now almost max out a machine with
buildworld!

Submitted by:	jilles
MFC after:	2 weeks
2014-03-26 22:30:38 +00:00
..
atf.test.mk Make bsd.test.mk the only public mk fragment for the building of tests. 2014-03-14 08:56:19 +00:00
bsd.arch.inc.mk
bsd.compiler.mk Provide slightly more helpful feedback when we can't figure out what 2013-03-01 03:25:43 +00:00
bsd.cpu.mk Add new CPUTYPEs supported by Clang 3.4, i.e., AMD Steamroller (bdver3) and 2014-03-20 19:17:46 +00:00
bsd.crunchgen.mk Add a new knob WITH_DEBUG_FILES to control the building of standalone 2013-06-07 21:40:02 +00:00
bsd.dep.mk Revert r241752. The claim that it's more correct while at the same time 2012-10-20 22:44:22 +00:00
bsd.doc.mk Don't pass -o1- to groff(1) by default. If ms(7) formatted document 2011-06-03 11:58:17 +00:00
bsd.dtrace.mk
bsd.endian.mk Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental. 2014-03-23 12:49:25 +00:00
bsd.files.mk Allow mixing bsd.files.mk with bsd.subdir.mk. 2013-10-25 05:11:10 +00:00
bsd.incs.mk Replace all known uses of ln in the build process with appropriate 2013-01-21 22:40:39 +00:00
bsd.info.mk Replace all known uses of ln in the build process with appropriate 2013-01-21 22:40:39 +00:00
bsd.init.mk Remove all support for legacy NOFOO and NO_FOO build options. 2013-01-10 22:44:19 +00:00
bsd.kmod.mk Fix comma splice, can't ambiguity and quoting. 2012-02-16 21:04:47 +00:00
bsd.lib.mk Create a private library directory (LIBPRIVATEDIR) for libraries which 2013-09-08 09:40:23 +00:00
bsd.libnames.mk Remove IPX support. 2014-03-14 02:58:48 +00:00
bsd.links.mk Replace all known uses of ln in the build process with appropriate 2013-01-21 22:40:39 +00:00
bsd.man.mk Replace all known uses of ln in the build process with appropriate 2013-01-21 22:40:39 +00:00
bsd.nls.mk
bsd.obj.mk Add support for bmake. This includes: 2012-10-06 20:01:05 +00:00
bsd.own.mk Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental. 2014-03-23 12:49:25 +00:00
bsd.pkg.mk
bsd.port.mk Revert unapproved commit to bsd.port.mk. 2011-10-08 18:25:01 +00:00
bsd.port.options.mk
bsd.port.post.mk
bsd.port.pre.mk
bsd.port.subdir.mk
bsd.prog.mk For C++ programs, don't emit any explicit dependency to libstdc++.a or 2013-11-04 21:54:56 +00:00
bsd.progs.mk Make bsd.progs.mk work in directories with SCRIPTS but no PROGS. 2013-12-11 03:41:07 +00:00
bsd.README Document support for TAP-compliant Perl test programs. 2014-03-16 01:22:23 +00:00
bsd.snmpmod.mk
bsd.subdir.mk Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process 2014-03-26 22:30:38 +00:00
bsd.symver.mk
bsd.sys.mk Add fetch and patch to .PHONY and .NOTMAIN only if PORTNAME is defined. 2014-03-02 13:12:06 +00:00
bsd.test.mk Move FreeBSD Test Suite-specific code to a suite.test.mk file. 2014-03-14 12:52:55 +00:00
Makefile Move FreeBSD Test Suite-specific code to a suite.test.mk file. 2014-03-14 12:52:55 +00:00
plain.test.mk Make bsd.test.mk the only public mk fragment for the building of tests. 2014-03-14 08:56:19 +00:00
suite.test.mk Move FreeBSD Test Suite-specific code to a suite.test.mk file. 2014-03-14 12:52:55 +00:00
sys.mk Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental. 2014-03-23 12:49:25 +00:00
tap.test.mk Make bsd.test.mk the only public mk fragment for the building of tests. 2014-03-14 08:56:19 +00:00
version_gen.awk