1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-29 12:03:03 +00:00
freebsd/bin/Makefile
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

66 lines
673 B
Makefile

# From: @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <bsd.own.mk>
SUBDIR= cat \
chflags \
chio \
chmod \
cp \
date \
dd \
df \
domainname \
echo \
ed \
expr \
freebsd-version \
getfacl \
hostname \
kenv \
kill \
ln \
ls \
mkdir \
mv \
pax \
pkill \
ps \
pwait \
pwd \
realpath \
rm \
rmdir \
setfacl \
sh \
sleep \
stty \
sync \
test \
uuidgen
.if ${MK_RCMDS} != "no"
SUBDIR+= rcp
.endif
.if ${MK_SENDMAIL} != "no"
SUBDIR+= rmail
.endif
.if ${MK_TCSH} != "no"
SUBDIR+= csh
.endif
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
.include <bsd.arch.inc.mk>
SUBDIR:= ${SUBDIR:O}
SUBDIR_PARALLEL=
.include <bsd.subdir.mk>