Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 04 Oct 1997 09:45:50 +0200
From:      Mark Murray <mark@grondar.za>
To:        current@freebsd.org
Subject:   Patches so parallel make works (on SMP)
Message-ID:  <199710040745.JAA28726@greenpeace.grondar.za>

next in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_6587434810
Content-Type: text/plain; charset=us-ascii

Hi

Some folks posted these patches some days (weeks?) ago, and they 
weren't really followed up. Seing that I have a brand new SMP-capable 
motherboard witrh 2xP5/200, I felt the need to make this work.

The original patches were fore an earlier CURRENT, and some of the bits 
have been applied.

Included in this are the diffs to my tree (as of CURRENT/3-Oct-1997), 
and these patches have been used (twice!) to do a

# make -j12 world

with /usr/obj _empty_to_start_with_.

There is a DRAMATIC improvement in the speed of a make world when you 
do this!!

I include the patches, and the README parts of the original authors' 
postings.

Enjoy!

M
-- 
Mark Murray
Join the anti-SPAM movement: http://www.cauce.org


--==_Exmh_6587434810
Content-Type: text/plain ; name="README2"; charset=us-ascii
Content-Description: README2
Content-Disposition: attachment; filename="README2"

Message-Id: <199709141740.CAA02407@peace.calm.imasy.or.jp>
To: nnd@itfs.nsk.su
Cc: current@FreeBSD.ORG
Cc: ume@calm.imasy.or.jp
Subject: Re: Make and SMP - what can be done ?
References: <5t64ts$7ae@news.itfs.nsk.su>
Date: Mon, 15 Sep 1997 02:40:10 +0900
From: Hajimu UMEMOTO <ume@calm.imasy.or.jp>

>>>>> On 17 Aug 1997 06:15:24 GMT,
	nnd@itfs.nsk.su said:

nnd> 	Here is a report of my experiments in "parallel"
nnd> world making.

I applied your patch with recent -current, and tried 
`make -j8 buildworld'.  It failed in sys/i386/boot/netboot.
sys/i386/boot/netboot/Makefile is seems to not parallel-safe.  Here is
a patch.

--==_Exmh_6587434810
Content-Type: text/plain ; name="README"; charset=us-ascii
Content-Description: README
Content-Disposition: attachment; filename="README"

From: nnd@itfs.nsk.su
To: current@FreeBSD.ORG
Subject: Re: Make and SMP - what can be done ?
Date: 25 Aug 1997 12:18:04 GMT
Message-ID: <5trt5s$kh1@news.itfs.nsk.su>
References: <199708130432.VAA06415@silvia.HIP.Berkeley.EDU> <5t64ts$7ae@news.it
fs.nsk.su>


	This weekend's results of "parallel buildworld"
investigations:

   To make 'buildworld' target making more "parallel" I try to
do 'make depend' step with '-j12' flag and fails (;-).

1) First reason to this fault is in 'bsd.dep.mk' where
'depend' target usually looks like:

depend: beforedepend .depend afterdepend _SUBDIR

which (from the names of 'before/after'depend targets)
assumes "sequential" evaluation.

   The patch (bsd.dep-patch) address this problem and
(nearly) solves it. The only unsolved case - if there is
'Makefile' wich sets dependencies for 'beforedepend' target
BUT not defines actions for such a rule.

   It turns out that all such cases in FreeBSD-3.0 src tree can
be solved by deleting such a rule for 'beforedepend' from
corresponding 'Makefile' and adding all the sources from this rule
to the SRCS variable (see the patches for Makefiles later in this
message).

2) The second source of troubles was presented by "functions with
many results" (;-) - i.e. ${YACC} or ${BISON} commands which
produces both <something.c> and <something.h> and have the following
sort of rules for them in Makefile(s):

foo.c bar.h: baz.y
	${YACC} ... baz.y
	mv y.tab.c foo.c
	mv y.tab.h bar.h

   Such a rules obviously presents problems when we try to
use "parallel making".

   All the reallife (i.e. from FreeBSD src tree) examples of
such rules can be made "parallel-safe" by adding the rule of the
form:

.ORDER: foo.c bar.h

to the corresponding Makefile. To be correct such an additional
rule must followed the requirement -

  "The first source of this rule must be required for all
those targets (all,install, depend ...) for which the second
one is necessary".


3) src/gnu/cc/cc_tools/Makefile is too complex (to me) to make
it "parallel safe" with respect to 'make -j12 depend' ;-(

   So I gave up and insert '.SINGLESHELL:' rule in this
Makefile which sets the 'compatMake' compatible mode ;-)

4) Some of the 'builworld' steps are too "sequential" -
f.e cleaning or rebuilding of the 'obj' tree. There is the
shell's 'for' loop through SUBDIRs and small number of the
(simple) commands for each of (sub)directory.

   To feed SMP system with more work I change some of such
steps (see the 'par-<something>" part in Makefile.patch).

   Such a construct must be used very carefully - it can
produce too many processes ;-).

   As a result my last successfull 'make -j12 buildworld'
produced 170.9% processor's usage and takes 2:54:00 as
opposed to 104.1% and 4:34:23 for 'make buildworld'
(without any patches).

	To achieve this I use following patches:
1) 'make-patch' - propagate '-B' flag to inner 'make's;
2) 'bsd.dep-patch' - to "order" depend's subtargets;
3) 'makefiles-patch' - to make various Makefiles "parallel-safe";
4) 'Makefile-patch' - patch to src/Makefile to restrict "parallelism"
    in some cases and to "broaden" it in other steps.


--==_Exmh_6587434810
Content-Type: text/plain; name="SMP.diff"; charset=us-ascii
Content-Description: SMP.diff
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="SMP.diff"

Index: Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/Makefile,v
retrieving revision 1.148
diff -u -d -r1.148 Makefile
--- Makefile	1997/09/28 16:25:28	1.148
+++ Makefile	1997/10/03 05:58:33
@@ -154,7 +154,7 @@
 	cd ${.CURDIR} && ${MAKE} pre-world
 .endif
 	cd ${.CURDIR} && ${MAKE} buildworld
-	cd ${.CURDIR} && ${MAKE} installworld
+	cd ${.CURDIR} && ${MAKE} -B installworld
 .if target(post-world)
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -224,9 +224,10 @@
 	mkdir -p ${WORLDTMP}/usr/bin
 	cd ${.CURDIR}/usr.bin/make && \
 		${IBMAKE} -I${.CURDIR}/share/mk \
-			${CLEANDIR} ${OBJDIR} depend && \
+			-B ${CLEANDIR} ${OBJDIR} depend && \
+ 		${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} all && \
 		${IBMAKE} -I${.CURDIR}/share/mk ${MK_FLAGS} \
-			all install clean cleandepend
+			-B all install clean cleandepend
 	@echo
 	@echo "--------------------------------------------------------------"
 	@echo " Making hierarchy"
@@ -237,14 +238,14 @@
 	@echo "--------------------------------------------------------------"
 	@echo " Cleaning up the obj tree"
 	@echo "--------------------------------------------------------------"
-	cd ${.CURDIR} && ${BMAKE} ${CLEANDIR}
+	cd ${.CURDIR} && ${BMAKE} par-${CLEANDIR}
 .endif
 .if !defined(NOOBJDIR)
 	@echo
 	@echo "--------------------------------------------------------------"
 	@echo " Rebuilding the obj tree"
 	@echo "--------------------------------------------------------------"
-	cd ${.CURDIR} && ${BMAKE} obj
+	cd ${.CURDIR} && ${BMAKE} par-obj
 .endif
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -280,7 +281,7 @@
 	@echo "--------------------------------------------------------------"
 	@echo " Rebuilding dependencies"
 	@echo "--------------------------------------------------------------"
-	cd ${.CURDIR} && ${XMAKE} depend
+	cd ${.CURDIR} && ${XMAKE} -j4 par-depend
 	@echo
 	@echo "--------------------------------------------------------------"
 	@echo " Building everything.."
@@ -423,11 +424,14 @@
 	cd ${.CURDIR}/include && make symlinks
 .endif
 	cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 	cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 	cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR}
+		${MAKE} ${MK_FLAGS} -DNOLIB && \
+		${MAKE} ${MK_FLAGS} -DNOLIB -B install ${CLEANDIR}
 .if !defined(NOOBJDIR)
 	cd ${.CURDIR}/usr.bin/lex && ${MAKE} obj
 .endif
@@ -441,8 +445,9 @@
 # on cleaned away headers in ${WORLDTMP}.
 #
 include-tools:
-	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} cleandepend depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} -B cleandepend depend && \
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 =

 #
 # includes - possibly generate and install the include files.
@@ -453,7 +458,7 @@
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
 		-p ${DESTDIR}/usr/include
 .endif
-	cd ${.CURDIR}/include &&		${MAKE} all install
+	cd ${.CURDIR}/include &&		${MAKE} -B all install
 	cd ${.CURDIR}/gnu/include &&		${MAKE} install
 	cd ${.CURDIR}/gnu/lib/libmp &&		${MAKE} beforeinstall
 	cd ${.CURDIR}/gnu/lib/libobjc &&	${MAKE} beforeinstall
@@ -528,7 +533,8 @@
 		usr.bin/ranlib		\
 		usr.bin/uudecode
 	cd ${.CURDIR}/$d && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endfor
 =

 #
@@ -537,43 +543,53 @@
 libraries:
 .if exists(lib/csu/i386)
 	cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(lib/libcompat)
 	cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(lib/libncurses)
 	cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(lib/libtermcap)
 	cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(gnu)
 	cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
 	cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(lib)
 	cd ${.CURDIR}/lib && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(usr.bin/lex/lib)
 	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if !defined(NOCRYPT) && defined(MAKE_KERBEROS4)
 	cd ${.CURDIR}/kerberosIV/lib && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 .if exists(usr.sbin/pcvt/keycap)
 	cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
 .endif
 =

 #
@@ -644,7 +660,25 @@
 		usr.sbin/mtree		\
 		usr.sbin/zic
 	cd ${.CURDIR}/$d && ${MAKE} depend && \
-		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
+		${MAKE} ${MK_FLAGS} all && \
+		${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
+.endfor
+
+.for __target in clean cleandir obj depend
+.for entry in ${SUBDIR}
+${entry}.${__target}__D: .PHONY
+	if test -d ${.CURDIR}/${entry}.${MACHINE}; then \
+		${ECHODIR} "=3D=3D=3D> ${DIRPRFX}${entry}.${MACHINE}"; \
+		edir=3D${entry}.${MACHINE}; \
+		cd ${.CURDIR}/$${edir}; \
+	else \
+		${ECHODIR} "=3D=3D=3D> ${DIRPRFX}${entry}"; \
+		edir=3D${entry}; \
+		cd ${.CURDIR}/$${edir}; \
+	fi; \
+	${MAKE} ${__target} DIRPRFX=3D${DIRPRFX}$${edir}/
+.endfor
+par-${__target}: ${SUBDIR:S/$/.${__target}__D/}
 .endfor
 =

 .include <bsd.subdir.mk>
Index: bin/sh/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/bin/sh/Makefile,v
retrieving revision 1.22
diff -u -d -r1.22 Makefile
--- Makefile	1997/08/25 19:50:01	1.22
+++ Makefile	1997/10/02 22:03:09
@@ -7,7 +7,8 @@
 	mystring.c options.c output.c parser.c printf.c redir.c show.c \
 	trap.c var.c
 GENSRCS=3D arith.c arith_lex.c builtins.c init.c nodes.c syntax.c
-SRCS=3D	${SHSRCS} ${GENSRCS}
+GENHDRS=3D builtins.h nodes.h syntax.h token.h
+SRCS=3D ${SHSRCS} ${GENSRCS} ${GENHDRS}
 =

 DPADD+=3D ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
 LDADD+=3D -ll -ledit -ltermcap
@@ -19,13 +20,13 @@
 =

 .PATH:	${.CURDIR}/bltin ${.CURDIR}/../../usr.bin/printf
 =

-CLEANFILES+=3D builtins.h mkinit mkinit.o mknodes mknodes.o \
+CLEANFILES+=3D mkinit mkinit.o mknodes mknodes.o \
 	mksyntax mksyntax.o \
-	nodes.h syntax.h token.h y.tab.h
-CLEANFILES+=3D ${GENSRCS}
+	y.tab.h
+CLEANFILES+=3D ${GENSRCS} ${GENHDRS}
 =

-beforedepend: builtins.h nodes.h syntax.h token.h
 =

+.ORDER: builtins.c builtins.h
 builtins.c builtins.h: mkbuiltins builtins.def
 	cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
 =

@@ -45,9 +46,11 @@
 mksyntax: mksyntax.o
 mksyntax.o: mksyntax.c		# XXX and many headers
 =

+.ORDER: nodes.c nodes.h
 nodes.c nodes.h: mknodes nodetypes nodes.c.pat
 	./mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat
 =

+.ORDER: syntax.c syntax.h
 syntax.c syntax.h: mksyntax
 	./mksyntax
 =

Index: gnu/usr.bin/cc/cc1plus/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc1plus/Makefile,v
retrieving revision 1.12
diff -u -d -r1.12 Makefile
--- Makefile	1997/06/29 06:03:27	1.12
+++ Makefile	1997/10/02 22:01:17
@@ -6,7 +6,7 @@
 .PATH:	${.CURDIR}/../../../../contrib/gcc/cp
 =

 PROG =3D	cc1plus
-SRCS =3D	parse.c \
+SRCS =3D	parse.c parse.h \
 	call.c class.c cvt.c decl.c decl2.c edsel.c errfn.c \
 	error.c except.c expr.c gc.c init.c lex.c method.c pt.c \
 	ptree.c repo.c search.c sig.c spew.c tree.c typeck.c typeck2.c xref.c
@@ -17,6 +17,7 @@
 LDADD+=3D	${LIBCC_INT}
 CFLAGS+=3D -I.	# I mean it.
 =

+.ORDER: parse.c parse.h
 parse.c parse.h: parse.y
 	${BISON} -d ${GCCDIR}/cp/parse.y -o parse.c =

 	grep '^#define[   ]*YYEMPTY' parse.c >>parse.h
Index: gnu/usr.bin/cc/cc_tools/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc_tools/Makefile,v
retrieving revision 1.3
diff -u -d -r1.3 Makefile
--- Makefile	1997/02/22 15:44:58	1.3
+++ Makefile	1997/10/02 22:01:17
@@ -26,8 +26,9 @@
 =

 .endfor
 =

+.ORDER: bi-parser.c bi-parser.h
 bi-parser.c bi-parser.h:	bi-parser.y
-	${BISON} ${BISONFLAGS} -d ${.ALLSRC} -o ${.TARGET}
+	${BISON} ${BISONFLAGS} -d ${.ALLSRC} -o bi-parser.c
 =

 SRCS+=3D bi-parser.c bi-parser.h
 =

@@ -82,6 +83,7 @@
 =

 #-----------------------------------------------------------------------=

 # C parser
+.ORDER: c-parse.c c-parse.h
 c-parse.c c-parse.h: c-parse.in
 	sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \
 	    -e "/^ifc$$/d" -e "/^end ifc$$/d" \
@@ -94,6 +96,7 @@
 =

 #-----------------------------------------------------------------------=

 # objc parser
+.ORDER: objc-parse.c objc-parse.h
 objc-parse.c objc-parse.h: c-parse.in
 	sed -e "/^ifc$$/,/^end ifc$$/d" \
 	    -e "/^ifobjc$$/d" -e "/^end ifobjc$$/d" \
@@ -114,6 +117,12 @@
 =

 #-----------------------------------------------------------------------=

 all:		${BINFORMAT} ${SRCS}
+
+#-----------------------------------------------------------------------=

+# Make 'depend' in compat mode
+.if make(depend)
+.SINGLESHELL:
+.endif
 =

 beforedepend:	${BINFORMAT}
 =

Index: gnu/usr.bin/cc/cpp/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/gnu/usr.bin/cc/cpp/Makefile,v
retrieving revision 1.9
diff -u -d -r1.9 Makefile
--- Makefile	1997/02/22 15:44:59	1.9
+++ Makefile	1997/10/02 22:01:17
@@ -9,6 +9,7 @@
 MAN1=3D	cccp.1
 MLINKS=3D	cccp.1 cpp.1
 =

+.ORDER: cexp.c cexp.h
 cexp.c cexp.h: cexp.y
 	${BISON} -d ${GCCDIR}/cexp.y -o cexp.c
 =

Index: gnu/usr.bin/gdb/gdb/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/gnu/usr.bin/gdb/gdb/Makefile,v
retrieving revision 1.28
diff -u -d -r1.28 Makefile
--- Makefile	1997/05/02 11:22:51	1.28
+++ Makefile	1997/10/02 22:01:17
@@ -39,7 +39,8 @@
 #CFLAGS+=3D -g
 =

 CLEANFILES+=3D	c-exp.c f-exp.c m2-exp.c init.c y.tab.h init.c-tmp
-beforedepend:	c-exp.c f-exp.c m2-exp.c init.c
+#beforedepend:	c-exp.c f-exp.c m2-exp.c init.c
+.ORDER:	c-exp.c f-exp.c m2-exp.c
 =

 .if exists(${.OBJDIR}/../bfd)
 LDADD+=3D   -L${.OBJDIR}/../bfd -lbfd
Index: lib/libpcap/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/lib/libpcap/Makefile,v
retrieving revision 1.16
diff -u -d -r1.16 Makefile
--- Makefile	1997/05/27 00:08:01	1.16
+++ Makefile	1997/10/02 22:01:17
@@ -32,6 +32,7 @@
 		${DESTDIR}/usr/include
 .endfor
 =

+.ORDER: grammar.c tokdefs.h
 tokdefs.h grammar.c: grammar.y
 	${YACC} ${YACCFLAGS} -d ${PCAP_DISTDIR}/grammar.y
 	mv y.tab.c grammar.c
Index: libexec/ftpd/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/libexec/ftpd/Makefile,v
retrieving revision 1.22
diff -u -d -r1.22 Makefile
--- Makefile	1997/04/29 12:42:07	1.22
+++ Makefile	1997/07/31 06:58:53
@@ -5,7 +5,8 @@
 MAN8=3D	ftpd.8
 SRCS=3D	ftpd.c ftpcmd.c logwtmp.c popen.c skey-stuff.c
 =

-CFLAGS+=3D-DSETPROCTITLE -DSKEY -DLOGIN_CAP -DVIRTUAL_HOSTING -Wall
+CFLAGS+=3D-DSETPROCTITLE -DSKEY -DLOGIN_CAP -DVIRTUAL_HOSTING -Wall \
+	-I${.CURDIR}/../../contrib-crypto/telnet
 =

 LDADD=3D	-lskey -lmd -lcrypt -lutil
 DPADD=3D	${LIBSKEY} ${LIBMD} ${LIBCRYPT} ${LIBUTIL}
@@ -19,7 +20,7 @@
 CFLAGS+=3D-DINTERNAL_LS -Dmain=3Dls_main -I${.CURDIR}/${LSDIR}
 .endif
 =

-.if exists(${DESTDIR}/usr/lib/libkrb.a) && defined(MAKE_EBONES)
+.if exists(${DESTDIR}/usr/lib/libkrb.a) && defined(MAKE_KERBEROS4)
 .PATH:  ${.CURDIR}/../../usr.bin/login
 SRCS+=3D	klogin.c
 LDADD+=3D	-lkrb -ldes
Index: secure/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/secure/Makefile,v
retrieving revision 1.7
diff -u -d -r1.7 Makefile
--- Makefile	1996/05/04 08:33:51	1.7
+++ Makefile	1997/10/03 06:39:31
@@ -12,9 +12,9 @@
 	${MAKE} ${MFLAGS} obj; \
 	${MAKE} ${MFLAGS} depend all install
 =

-CODAD=3D	${MAKE} ${MFLAGS} MAKE_EBONES=3Dyes cleandir; \
-	${MAKE} ${MFLAGS} MAKE_EBONES=3Dyes obj; \
-	${MAKE} ${MFLAGS} MAKE_EBONES=3Dyes depend all distribute
+CODAD=3D	${MAKE} ${MFLAGS} cleandir; \
+	${MAKE} ${MFLAGS} obj; \
+	${MAKE} ${MFLAGS} depend all distribute
 =

 # These are the programs which depend on secure libs
 sprog:
Index: share/mk/bsd.dep.mk
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/share/mk/bsd.dep.mk,v
retrieving revision 1.14
diff -u -d -r1.14 bsd.dep.mk
--- bsd.dep.mk	1997/08/26 16:54:33	1.14
+++ bsd.dep.mk	1997/10/02 21:55:44
@@ -33,8 +33,8 @@
 =

 # some of the rules involve .h sources, so remove them from mkdep line
 .if !target(depend)
-depend: beforedepend ${DEPENDFILE} afterdepend _SUBDIR
 .if defined(SRCS)
+depend: beforedepend ${DEPENDFILE} afterdepend _SUBDIR
 =

 # .if defined ${SRCS:M*.[sS]} does not work
 __depend_s=3D	${SRCS:M*.[sS]}
@@ -60,11 +60,15 @@
 	cd ${.CURDIR}; ${MAKE} _EXTRADEPEND
 .endif
 =

+.ORDER: ${DEPENDFILE} afterdepend
 .else
-${DEPENDFILE}: _SUBDIR
+depend: beforedepend afterdepend _SUBDIR
 .endif
 .if !target(beforedepend)
 beforedepend:
+.else
+.ORDER: beforedepend ${DEPENDFILE}
+.ORDER: beforedepend afterdepend
 .endif
 .if !target(afterdepend)
 afterdepend:
Index: sys/i386/boot/netboot/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/i386/boot/netboot/Makefile,v
retrieving revision 1.12
diff -u -d -r1.12 Makefile
--- Makefile	1997/05/15 19:04:33	1.12
+++ Makefile	1997/10/02 22:07:39
@@ -72,16 +72,18 @@
 	${.OBJDIR}/makerom ${.TARGET}
 =

 nb8390.com:	makerom start2.ro ${SRCS:N*.h:R:S/$/.o/g} ns8390.o
-	${LD} ${LDFLAGS} -o netboot.com ${OBJS} ns8390.o
-	strip netboot.com
-	size netboot.com
-	dd ibs=3D32 skip=3D1 if=3Dnetboot.com of=3D${.TARGET}
+	${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} ns8390.o
+	strip ${.TARGET}.tmp
+	size ${.TARGET}.tmp
+	dd ibs=3D32 skip=3D1 if=3D${.TARGET}.tmp of=3D${.TARGET}
+	rm -f ${.TARGET}.tmp
 =

 nb3c509.com:	start2.o ${SRCS:N*.h:R:S/$/.o/g} 3c509.o
-	${LD} ${LDFLAGS} -o netboot.com ${OBJS} 3c509.o
-	strip netboot.com
-	size netboot.com
-	dd ibs=3D32 skip=3D1 if=3Dnetboot.com of=3D${.TARGET}
+	${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} 3c509.o
+	strip ${.TARGET}.tmp
+	size ${.TARGET}.tmp
+	dd ibs=3D32 skip=3D1 if=3D${.TARGET}.tmp of=3D${.TARGET}
+	rm -f ${.TARGET}.tmp
 =

 =

 .include <bsd.prog.mk>
Index: usr.bin/ftp/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/usr.bin/ftp/Makefile,v
retrieving revision 1.6
diff -u -d -r1.6 Makefile
--- Makefile	1997/06/25 08:56:33	1.6
+++ Makefile	1997/07/31 06:58:20
@@ -5,6 +5,7 @@
 PROG=3D	ftp
 SRCS=3D	cmds.c cmdtab.c complete.c domacro.c fetch.c ftp.c main.c ruserp=
ass.c \
 	util.c
+CFLAGS+=3D-I${.CURDIR}/../../contrib-crypto/telnet
 =

 LDADD+=3D	-ledit -ltermcap
 DPADD+=3D	${LIBEDIT} ${LIBTERMCAP}
Index: usr.bin/lex/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/usr.bin/lex/Makefile,v
retrieving revision 1.10
diff -u -d -r1.10 Makefile
--- Makefile	1997/02/22 19:55:34	1.10
+++ Makefile	1997/10/02 22:01:17
@@ -15,6 +15,7 @@
 LINKS+=3D	${BINDIR}/lex ${BINDIR}/flex++
 =

 SRCS=3D		scan.c ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.c \
+		parse.h \
 		skel.c sym.c tblcmp.c yylex.c
 LFLAGS+=3D	-is
 CFLAGS+=3D	-I. -I${.CURDIR}
@@ -34,6 +35,7 @@
 		${.CURDIR}/FlexLexer.h ${DESTDIR}/usr/include/g++
 =

 =

+.ORDER:	parse.c parse.h
 parse.c parse.h: parse.y
 	$(YACC) -d $(.CURDIR)/parse.y
 	mv -f y.tab.c parse.c
@@ -46,7 +48,6 @@
 		cp -f ${.CURDIR}/initscan.c scan.c ; \
 	}
 =

-beforedepend: parse.h
 scan.o:	parse.h
 =

 test: check
Index: usr.sbin/amd/fsinfo/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/usr.sbin/amd/fsinfo/Makefile,v
retrieving revision 1.5
diff -u -d -r1.5 Makefile
--- Makefile	1997/02/22 16:03:14	1.5
+++ Makefile	1997/10/02 22:01:17
@@ -3,7 +3,7 @@
 =

 PROG=3D	fsinfo
 MAN8=3D	fsinfo.8
-SRCS=3D	fsinfo.c fsi_gram.c fsi_lex.c \
+SRCS=3D	fsinfo.c fsi_gram.c fsi_gram.h fsi_lex.c \
 	fsi_util.c fsi_analyze.c fsi_dict.c \
 	wr_atab.c wr_bparam.c wr_dumpset.c \
 	wr_exportfs.c wr_fstab.c
@@ -16,6 +16,7 @@
 CFLAGS+=3D-DOS_HDR=3D\"os-bsd44.h\"
 =

 fsi_lex.o fsinfo.o: fsi_gram.h
+.ORDER: fsi_gram.c fsi_gram.h
 fsi_gram.c fsi_gram.h: ../fsinfo/fsi_gram.y
 	@echo "# expect 2 shift/reduce conflicts"
 	${YACC} -d ${.CURDIR}/fsi_gram.y
Index: usr.sbin/sendmail/src/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/usr.sbin/sendmail/src/Makefile,v
retrieving revision 1.13
diff -u -d -r1.13 Makefile
--- Makefile	1997/09/28 09:31:43	1.13
+++ Makefile	1997/09/28 12:42:09
@@ -22,8 +22,8 @@
 NIS=3D	-DNIS
 =

 # If you want tcp wrapper support, uncomment the following two lines
-#TCPWRAPPERSBASEDIR=3D	/usr/local
-#TCPWRAPPERS=3D		-DTCPWRAPPERS -I${TCPWRAPPERSBASEDIR}/include
+TCPWRAPPERSBASEDIR=3D	/usr/local
+TCPWRAPPERS=3D		-DTCPWRAPPERS -I${TCPWRAPPERSBASEDIR}/include
 =

 CFLAGS+=3D-I${.CURDIR} ${DBMDEF} ${NIS} ${TCPWRAPPERS} #-DNETISO
 =

Index: usr.sbin/vipw/pw_util.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/usr.sbin/vipw/pw_util.c,v
retrieving revision 1.7
diff -u -d -r1.7 pw_util.c
--- pw_util.c	1997/09/29 13:13:51	1.7
+++ pw_util.c	1997/10/02 06:32:47
@@ -32,7 +32,7 @@
  */
 =

 #ifndef lint
-static char sccsid[] =3D "@(#)pw_util.c	8.3 (Berkeley) 4/2/94";
+static const char sccsid[] =3D "@(#)pw_util.c	8.3 (Berkeley) 4/2/94";
 #endif /* not lint */
 =

 /*
@@ -126,7 +126,7 @@
 	int fd;
 	char *p;
 =

-	if (p =3D strrchr(path, '/'))
+	if ((p =3D strrchr(path, '/')))
 		++p;
 	else
 		p =3D path;
@@ -172,7 +172,7 @@
 =

 	if (!(editor =3D getenv("EDITOR")))
 		editor =3D _PATH_VI;
-	if (p =3D strrchr(editor, '/'))
+	if ((p =3D strrchr(editor, '/')))
 		++p;
 	else
 		p =3D editor;

--==_Exmh_6587434810--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710040745.JAA28726>