Date: Wed, 24 Dec 1997 03:20:33 -0800 (PST) From: asami@cs.berkeley.edu (Satoshi Asami) To: current@freebsd.org, stable@freebsd.org Subject: p-make Message-ID: <199712241120.DAA27011@silvia.HIP.Berkeley.EDU>
next in thread | raw e-mail | index | archive | help
Well, here is a new set of patches. My previous one didn't work
because it ran out of processes -- the build was spawning N processes
at each level -- so, at the 4th level, there were N^4 processes. Some
makes got "no more processes" errors, but continued anyway (why?) and
the build died much later.
So, I made it so that the forking only happens at one level. When
bsd.subdir.mk parallelizes a make, it will append -B to the flags so
it won't be forked again.
First, the numbers from individual directories. The four numbers are
"make -j4 all" async/sync for /usr/{src,obj} and with parent dir
pmake/leaf node pmake. The machines are both P6-200, /usr/{src,obj}
are on 8-disk CCDs of IBM 9GB 7,200RPM drives (the first machine has
larger partition though...the total size is 8GB for 2.2-stable and 3GB
for 3.0-current). 3.0-current has NOTCL defined.
2.2-stable:
===
bin
72.73 real 62.09 user 9.62 sys <- async, parent
83.56 real 62.28 user 10.08 sys <- async, leaf
73.00 real 62.24 user 9.77 sys <- sync, parent
84.80 real 62.14 user 10.49 sys <- sync, leaf
sbin
95.27 real 80.57 user 13.18 sys
113.60 real 80.20 user 13.05 sys
95.29 real 80.72 user 12.98 sys
115.11 real 80.13 user 13.40 sys
lib
843.87 real 599.77 user 223.81 sys
708.49 real 462.48 user 178.23 sys
906.87 real 602.89 user 222.62 sys
759.95 real 466.66 user 177.76 sys
libexec
55.12 real 46.02 user 8.26 sys
65.73 real 46.00 user 8.34 sys
55.43 real 45.80 user 8.55 sys
67.20 real 46.25 user 8.26 sys
share
111.31 real 88.32 user 19.70 sys
139.89 real 87.36 user 18.77 sys
109.44 real 87.19 user 19.94 sys
144.42 real 87.45 user 19.10 sys
usr.bin
446.97 real 379.21 user 62.02 sys
520.46 real 380.81 user 60.70 sys
447.28 real 378.71 user 62.14 sys
526.67 real 380.85 user 62.48 sys
usr.sbin
402.24 real 342.53 user 54.49 sys
461.16 real 342.22 user 52.96 sys
401.83 real 342.56 user 53.78 sys
467.48 real 343.44 user 53.25 sys
gnu/lib
537.30 real 445.09 user 84.75 sys
562.43 real 447.25 user 87.67 sys
546.56 real 447.99 user 85.05 sys
583.22 real 447.74 user 87.56 sys
gnu/usr.bin
1094.20 real 942.52 user 93.68 sys
1089.30 real 938.02 user 93.64 sys
1114.73 real 950.29 user 93.84 sys
1114.97 real 950.11 user 94.73 sys
===
3.0-current:
===
bin
69.65 real 60.11 user 8.17 sys
79.47 real 60.17 user 8.26 sys
69.79 real 60.38 user 7.99 sys
79.92 real 60.06 user 8.52 sys
sbin
96.35 real 81.64 user 12.71 sys
115.08 real 81.60 user 11.90 sys
96.39 real 81.63 user 12.64 sys
117.10 real 81.64 user 12.12 sys
lib
1259.10 real 918.46 user 251.52 sys
1499.31 real 924.88 user 276.02 sys
1344.95 real 922.70 user 248.34 sys
1625.90 real 927.65 user 281.68 sys
libexec
53.42 real 45.15 user 6.94 sys
62.50 real 45.06 user 6.74 sys
53.52 real 45.25 user 6.96 sys
64.59 real 45.20 user 6.72 sys
share
107.32 real 85.39 user 15.29 sys
139.84 real 85.76 user 14.84 sys
108.04 real 84.96 user 15.76 sys
144.18 real 85.79 user 14.94 sys
usr.bin
463.92 real 395.59 user 57.83 sys
534.99 real 394.94 user 56.71 sys
463.25 real 396.46 user 56.61 sys
540.16 real 396.20 user 56.53 sys
usr.sbin
402.00 real 344.13 user 49.20 sys
461.87 real 343.06 user 47.52 sys
401.31 real 344.71 user 48.22 sys
467.61 real 343.75 user 47.95 sys
gnu/lib
510.97 real 424.14 user 72.09 sys
543.21 real 423.12 user 76.13 sys
518.31 real 426.08 user 72.46 sys
569.64 real 424.54 user 76.14 sys
gnu/usr.bin
1003.39 real 905.61 user 81.43 sys
1055.77 real 907.60 user 81.05 sys
1010.71 real 906.07 user 81.50 sys
1063.74 real 907.70 user 80.91 sys
===
As you can see, it speeds up places like bin and usr.bin quite a bit.
The tradeoff is if you have one or two very large directories
(compared to the others), that one will be running a single-process
make (because of -B) long after others are done. I actually had to
move sh much earlier in the SUBDIR list in bin/Makefile so it doesn't
happen. I observed this by looking at the make output; we may need to
do similar things in usr.sbin (xntpd is pretty large and is near the
end of the list).
On the other hand, it doesn't help much in places like lib (it
actually hurts in 2.2-stable). It's because there is one directory
(libc) that basically dwarfs the rest. My guess on the reason why
3.0-current behaves better is because it also builds libc_r, which is
about as big so there's at least a two-way parellism going on even
after everything else is done.
For lib, I'm actually not sure why it helps at all. For gnu/usr.bin,
I assume it's spending most of the time inside cc.
Now, for the whole buildworld. The numbers are measured by doing a
"rm -rf /usr/obj/usr/src" and doing the actual build with -DNOCLEAN.
-j4 async parent
-j4 async leaf
-j4 sync parent
-j4 sync leaf
-j2 async parent
-j2 async leaf
-j2 sync parent
-j2 sync leaf
2.2-stable:
===
5517.40 real 3785.70 user 927.84 sys
5726.68 real 3766.08 user 960.40 sys
5900.12 real 3787.60 user 945.85 sys
6090.51 real 3768.67 user 970.15 sys
5408.57 real 3816.63 user 860.06 sys
5650.55 real 3749.16 user 851.64 sys
5613.19 real 3776.83 user 843.19 sys
6016.20 real 3756.14 user 852.53 sys
===
3.0-current:
===
5255.05 real 4080.63 user 832.97 sys
5903.48 real 4073.16 user 859.38 sys
5468.84 real 4101.21 user 829.75 sys
6138.02 real 4076.45 user 863.55 sys
5332.94 real 4074.15 user 811.88 sys
6149.01 real 4059.68 user 846.22 sys
5603.09 real 4083.54 user 799.08 sys
6489.46 real 4068.01 user 857.28 sys
===
As you can see, it helps quite a bit on -current. It didn't make much
difference in -stable. (I disabled forking in lib/Makefile of -stable.)
Here are the patches. I'm especially interested in SMP people's
numbers. The patches are relative to -current on 11th and last week's
-stable. (The -current machine is also a CAM testbox so I only sync
the source when there is a CAM snapshot.)
2.2-stable:
===
Index: Makefile
===================================================================
RCS file: /usr/cvs/src/Makefile,v
retrieving revision 1.109.2.20
diff -u -r1.109.2.20 Makefile
--- Makefile 1997/10/26 22:46:16 1.109.2.20
+++ Makefile 1997/12/22 11:52:52
@@ -640,6 +669,7 @@
.endfor
.for __target in clean cleandir obj depend
+.if defined(NOPMAKESUBDIR)
.for entry in ${SUBDIR}
${entry}.${__target}__D: .PHONY
if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
@@ -654,6 +684,9 @@
${MAKE} ${__target} DIRPRFX=${DIRPRFX}$${edir}/
.endfor
par-${__target}: ${SUBDIR:S/$/.${__target}__D/}
+.else
+par-${__target}: ${__target}
+.endif
.endfor
.include <bsd.subdir.mk>
Index: bin/Makefile
===================================================================
RCS file: /usr/cvs/src/bin/Makefile,v
retrieving revision 1.4.2.1
diff -u -r1.4.2.1 Makefile
--- Makefile 1997/03/07 09:39:06 1.4.2.1
+++ Makefile 1997/12/17 05:53:32
@@ -1,8 +1,13 @@
# From: @(#)Makefile 8.1 (Berkeley) 5/31/93
# $Id: Makefile,v 1.4.2.1 1997/03/07 09:39:06 joerg Exp $
-SUBDIR= cat chio chmod cp csh date dd df domainname echo ed expr hostname \
- kill ln ls mkdir mv pax ps pwd rcp rm rmail rmdir sh sleep \
+# XXX put large subdirectories in front to make pmake happy
+
+SUBDIR= csh sh pax \
+ cat chio chmod cp date dd df domainname echo ed expr hostname \
+ kill ln ls mkdir mv ps pwd rcp rm rmail rmdir sleep \
stty sync test
+
+PMAKESUBDIR= t
.include <bsd.subdir.mk>
Index: games/Makefile
===================================================================
RCS file: /usr/cvs/src/games/Makefile,v
retrieving revision 1.10.2.1
diff -u -r1.10.2.1 Makefile
--- Makefile 1997/09/11 03:03:14 1.10.2.1
+++ Makefile 1997/12/17 05:53:32
@@ -8,4 +8,6 @@
rain random robots rogue sail snake trek wargames worm worms \
wump
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: gnu/lib/Makefile
===================================================================
RCS file: /usr/cvs/src/gnu/lib/Makefile,v
retrieving revision 1.13
diff -u -r1.13 Makefile
--- Makefile 1996/10/04 08:44:26 1.13
+++ Makefile 1997/12/17 05:53:32
@@ -2,4 +2,6 @@
SUBDIR= libdialog libg++ libgmp libmp libobjc libregex libreadline libstdc++
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: gnu/usr.sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/gnu/usr.sbin/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- Makefile 1996/04/28 04:06:06 1.4
+++ Makefile 1997/12/17 05:53:32
@@ -1,6 +1,4 @@
# $Id: Makefile,v 1.4 1996/04/28 04:06:06 wpaul Exp $
-SUBDIR=
-
.include <bsd.subdir.mk>
Index: lib/Makefile
===================================================================
RCS file: /usr/cvs/src/lib/Makefile,v
retrieving revision 1.47.2.9
diff -u -r1.47.2.9 Makefile
--- Makefile 1997/10/08 10:37:20 1.47.2.9
+++ Makefile 1997/12/19 06:37:21
@@ -48,4 +48,6 @@
SUBDIR+= compat
+#PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: lib/compat/Makefile
===================================================================
RCS file: /usr/cvs/src/lib/compat/Makefile,v
retrieving revision 1.1
diff -u -r1.1 Makefile
--- Makefile 1996/12/23 05:07:19 1.1
+++ Makefile 1997/12/17 05:53:32
@@ -1,7 +1,5 @@
# $Id: Makefile,v 1.1 1996/12/23 05:07:19 peter Exp $
-SUBDIR=
-
# Note that compat21 is *not* for the 2.1.x branch!
.if defined(COMPAT1X) || defined(RELEASEDIR)
SUBDIR+= compat1x
Index: lib/libpcap/Makefile
===================================================================
RCS file: /usr/cvs/src/lib/libpcap/Makefile,v
retrieving revision 1.12.2.1
diff -u -r1.12.2.1 Makefile
--- Makefile 1997/10/26 22:48:31 1.12.2.1
+++ Makefile 1997/12/19 21:18:17
@@ -33,6 +33,8 @@
.endfor
scanner.o: tokdefs.h
+scanner.po: tokdefs.h
+scanner.so: tokdefs.h
.ORDER: grammar.c tokdefs.h
tokdefs.h: grammar.c
Index: libexec/Makefile
===================================================================
RCS file: /usr/cvs/src/libexec/Makefile,v
retrieving revision 1.20.2.3
diff -u -r1.20.2.3 Makefile
--- Makefile 1997/07/05 14:23:54 1.20.2.3
+++ Makefile 1997/12/17 05:53:32
@@ -27,4 +27,6 @@
SUBDIR+=rbootd
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: lkm/Makefile
===================================================================
RCS file: /usr/cvs/src/lkm/Makefile,v
retrieving revision 1.24.2.1
diff -u -r1.24.2.1 Makefile
--- Makefile 1997/11/06 13:03:53 1.24.2.1
+++ Makefile 1997/12/17 05:53:32
@@ -10,4 +10,6 @@
# XXX builds, but not useable with present design
# fpu gnufpu union
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/sbin/Makefile,v
retrieving revision 1.34.2.1
diff -u -r1.34.2.1 Makefile
--- Makefile 1997/03/26 20:05:24 1.34.2.1
+++ Makefile 1997/12/17 05:53:32
@@ -14,4 +14,6 @@
SUBDIR+= ${MACHINE}
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: share/Makefile
===================================================================
RCS file: /usr/cvs/src/share/Makefile,v
retrieving revision 1.12.2.2
diff -u -r1.12.2.2 Makefile
--- Makefile 1997/07/19 15:31:33 1.12.2.2
+++ Makefile 1997/12/17 05:53:32
@@ -3,4 +3,6 @@
SUBDIR= dict doc examples info man me misc mk skel syscons \
tabset termcap timedef zoneinfo
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: share/mk/bsd.subdir.mk
===================================================================
RCS file: /usr/cvs/src/share/mk/bsd.subdir.mk,v
retrieving revision 1.11.2.2
diff -u -r1.11.2.2 bsd.subdir.mk
--- bsd.subdir.mk 1997/06/21 15:48:22 1.11.2.2
+++ bsd.subdir.mk 1997/12/17 05:53:33
@@ -29,7 +29,23 @@
.for __target in all checkdpadd clean cleandir depend lint \
maninstall obj objlink
.if !target(__target)
+.if (defined(PMAKESUBDIR) && !defined(NOPMAKESUBDIR))
+${__target}: ${SUBDIR:S/$/.${__target}__D/}
+
+.for entry in ${SUBDIR}
+${entry}.${__target}__D: .PHONY
+ @if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
+ ${ECHODIR} "===> ${DIRPRFX}${entry}.${MACHINE}"; \
+ cd ${.CURDIR}/${entry}.${MACHINE}; \
+ else \
+ ${ECHODIR} "===> ${DIRPRFX}${entry}"; \
+ cd ${.CURDIR}/${entry}; \
+ fi; \
+ ${MAKE} -B ${__target}
+.endfor
+.else
${__target}: _SUBDIRUSE
+.endif
.endif
.endfor
Index: usr.bin/Makefile
===================================================================
RCS file: /usr/cvs/src/usr.bin/Makefile,v
retrieving revision 1.73.2.10
diff -u -r1.73.2.10 Makefile
--- Makefile 1997/08/21 04:00:56 1.73.2.10
+++ Makefile 1997/12/17 05:53:33
@@ -60,4 +60,6 @@
SUBDIR+=f77 pascal systat vmstat
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: usr.sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/usr.sbin/Makefile,v
retrieving revision 1.98.2.6
diff -u -r1.98.2.6 Makefile
--- Makefile 1997/09/15 04:56:52 1.98.2.6
+++ Makefile 1997/12/17 05:53:33
@@ -34,4 +34,6 @@
SUBDIR+=config iostat
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
===
3.0-current:
===
Index: Makefile
===================================================================
RCS file: /usr/cvs/src/Makefile,v
retrieving revision 1.155
diff -u -r1.155 Makefile
--- Makefile 1997/10/10 13:02:36 1.155
+++ Makefile 1997/12/22 11:03:15
@@ -668,6 +697,7 @@
.endfor
.for __target in clean cleandir obj depend
+.if defined(NOPMAKESUBDIR)
.for entry in ${SUBDIR}
${entry}.${__target}__D: .PHONY
if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
@@ -682,6 +712,9 @@
${MAKE} ${__target} DIRPRFX=${DIRPRFX}$${edir}/
.endfor
par-${__target}: ${SUBDIR:S/$/.${__target}__D/}
+.else
+par-${__target}: ${__target}
+.endif
.endfor
.include <bsd.subdir.mk>
Index: bin/Makefile
===================================================================
RCS file: /usr/cvs/src/bin/Makefile,v
retrieving revision 1.9
diff -u -r1.9 Makefile
--- Makefile 1997/12/07 02:26:12 1.9
+++ Makefile 1997/12/18 15:47:16
@@ -1,8 +1,13 @@
# From: @(#)Makefile 8.1 (Berkeley) 5/31/93
# $Id: Makefile,v 1.9 1997/12/07 02:26:12 peter Exp $
-SUBDIR= cat chio chmod cp csh date dd df domainname echo ed expr hostname \
- kill ln ls mkdir mv pax ps pwd rcp rm rmail rmdir sh sleep \
+# XXX put large subdirectories in front to make pmake happy
+
+SUBDIR= csh sh pax \
+ cat chio chmod cp date dd df domainname echo ed expr hostname \
+ kill ln ls mkdir mv ps pwd rcp rm rmail rmdir sleep \
stty sync test
+
+PMAKESUBDIR= t
.include <bsd.subdir.mk>
Index: games/Makefile
===================================================================
RCS file: /usr/cvs/src/games/Makefile,v
retrieving revision 1.13
diff -u -r1.13 Makefile
--- Makefile 1997/09/11 02:52:59 1.13
+++ Makefile 1997/12/18 15:47:16
@@ -8,4 +8,6 @@
rain random robots rogue sail snake trek wargames worm worms \
wump
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: gnu/lib/Makefile
===================================================================
RCS file: /usr/cvs/src/gnu/lib/Makefile,v
retrieving revision 1.15
diff -u -r1.15 Makefile
--- Makefile 1997/02/22 15:42:33 1.15
+++ Makefile 1997/12/18 15:47:16
@@ -2,4 +2,6 @@
SUBDIR= libdialog libg++ libgmp libmp libobjc libregex libreadline libstdc++
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: gnu/usr.bin/Makefile
===================================================================
RCS file: /usr/cvs/src/gnu/usr.bin/Makefile,v
retrieving revision 1.36
diff -u -r1.36 Makefile
--- Makefile 1997/04/12 07:19:09 1.36
+++ Makefile 1997/12/18 15:47:16
@@ -4,6 +4,8 @@
grep groff gzip ld man patch ptx rcs sdiff send-pr \
sort tar texinfo
+PMAKESUBDIR= t
+
.if !defined(NOPERL) && exists(${.CURDIR}/perl)
SUBDIR+=perl
.endif
Index: gnu/usr.sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/gnu/usr.sbin/Makefile,v
retrieving revision 1.6
diff -u -r1.6 Makefile
--- Makefile 1997/02/22 15:48:30 1.6
+++ Makefile 1997/12/18 15:47:17
@@ -1,6 +1,4 @@
# $Id: Makefile,v 1.6 1997/02/22 15:48:30 peter Exp $
-SUBDIR=
-
.include <bsd.subdir.mk>
Index: lib/Makefile
===================================================================
RCS file: /usr/cvs/src/lib/Makefile,v
retrieving revision 1.58
diff -u -r1.58 Makefile
--- Makefile 1997/12/04 10:48:14 1.58
+++ Makefile 1997/12/18 15:47:17
@@ -45,5 +45,7 @@
.endif
SUBDIR+= compat
+
+PMAKESUBDIR= t
.include <bsd.subdir.mk>
Index: lib/compat/Makefile
===================================================================
RCS file: /usr/cvs/src/lib/compat/Makefile,v
retrieving revision 1.3
diff -u -r1.3 Makefile
--- Makefile 1997/02/22 14:57:32 1.3
+++ Makefile 1997/12/18 15:47:17
@@ -1,7 +1,5 @@
# $Id: Makefile,v 1.3 1997/02/22 14:57:32 peter Exp $
-SUBDIR=
-
# Note that compat21 is *not* for the 2.1.x branch!
.if defined(COMPAT1X) || defined(RELEASEDIR)
SUBDIR+= compat1x
Index: libexec/Makefile
===================================================================
RCS file: /usr/cvs/src/libexec/Makefile,v
retrieving revision 1.26
diff -u -r1.26 Makefile
--- Makefile 1997/09/28 09:07:34 1.26
+++ Makefile 1997/12/18 15:47:17
@@ -22,4 +22,6 @@
SUBDIR+=rbootd
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: lkm/Makefile
===================================================================
RCS file: /usr/cvs/src/lkm/Makefile,v
retrieving revision 1.28
diff -u -r1.28 Makefile
--- Makefile 1997/08/28 14:45:12 1.28
+++ Makefile 1997/12/18 15:47:18
@@ -8,4 +8,6 @@
# XXX builds, but not useable with present design
# fpu gnufpu union
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/sbin/Makefile,v
retrieving revision 1.41
diff -u -r1.41 Makefile
--- Makefile 1997/10/19 11:15:39 1.41
+++ Makefile 1997/12/18 15:47:18
@@ -16,4 +16,6 @@
SUBDIR+= ${MACHINE}
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: share/Makefile
===================================================================
RCS file: /usr/cvs/src/share/Makefile,v
retrieving revision 1.14
diff -u -r1.14 Makefile
--- Makefile 1997/07/19 15:17:41 1.14
+++ Makefile 1997/12/18 15:47:18
@@ -3,4 +3,6 @@
SUBDIR= dict doc examples info man me misc mk skel syscons \
tabset termcap timedef zoneinfo
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: share/mk/bsd.subdir.mk
===================================================================
RCS file: /usr/cvs/src/share/mk/bsd.subdir.mk,v
retrieving revision 1.19
diff -u -r1.19 bsd.subdir.mk
--- bsd.subdir.mk 1997/11/15 13:09:52 1.19
+++ bsd.subdir.mk 1997/12/18 15:52:41
@@ -60,7 +60,23 @@
.for __target in all checkdpadd clean cleandir depend lint \
maninstall obj objlink
.if !target(${__target})
+.if (defined(PMAKESUBDIR) && !defined(NOPMAKESUBDIR))
+${__target}: ${SUBDIR:S/$/.${__target}__D/}
+
+.for entry in ${SUBDIR}
+${entry}.${__target}__D: .PHONY
+ @if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
+ ${ECHODIR} "===> ${DIRPRFX}${entry}.${MACHINE}"; \
+ cd ${.CURDIR}/${entry}.${MACHINE}; \
+ else \
+ ${ECHODIR} "===> ${DIRPRFX}${entry}"; \
+ cd ${.CURDIR}/${entry}; \
+ fi; \
+ ${MAKE} -B ${__target}
+.endfor
+.else
${__target}: _SUBDIRUSE
+.endif
.endif
.endfor
Index: usr.bin/Makefile
===================================================================
RCS file: /usr/cvs/src/usr.bin/Makefile,v
retrieving revision 1.91
diff -u -r1.91 Makefile
--- Makefile 1997/12/06 05:23:59 1.91
+++ Makefile 1997/12/18 15:47:18
@@ -61,4 +61,6 @@
SUBDIR+=f77 pascal systat vmstat
.endif
+PMAKESUBDIR= t
+
.include <bsd.subdir.mk>
Index: usr.sbin/Makefile
===================================================================
RCS file: /usr/cvs/src/usr.sbin/Makefile,v
retrieving revision 1.114
diff -u -r1.114 Makefile
--- Makefile 1997/12/07 02:27:48 1.114
+++ Makefile 1997/12/18 15:47:19
@@ -33,5 +33,7 @@
.elif ${MACHINE} == "tahoe"
SUBDIR+=config iostat
.endif
+
+PMAKESUBDIR= t
.include <bsd.subdir.mk>
===
(I had to edit the patches by hand to remove other local mods, sorry
if I screwed up.)
As you can see in bsd.subdir.mk, you can define NOPMAKESUBDIR in the
environment to get the current behavior (leaf branching for most, with
toplevel branching for clean, obj and depend). Without NOPMAKESUBDIR,
you will get my custom branching (try to branch at the thickest part
of the tree).
Satoshi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712241120.DAA27011>
