Makefile revision 16866
1139743Simp#
239212Sgibbs#	$Id: Makefile,v 1.88 1996/06/28 05:36:00 phk Exp $
339212Sgibbs#
439212Sgibbs# Make command line options:
539212Sgibbs#	-DCLOBBER will remove /usr/include
639212Sgibbs#	-DMAKE_LOCAL to add ./local to the SUBDIR list
739212Sgibbs#	-DMAKE_PORTS to add ./ports to the SUBDIR list
839212Sgibbs#	-DMAKE_EBONES to build eBones (KerberosIV)
939212Sgibbs#
1039212Sgibbs#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
1139212Sgibbs#	-DNOCLEAN do not clean at all
1239212Sgibbs#	-DNOCRYPT will prevent building of crypt versions
1339212Sgibbs#	-DNOLKM do not build loadable kernel modules
1439212Sgibbs#	-DNOOBJDIR do not run ``${MAKE} obj''
1539212Sgibbs#	-DNOPROFILE do not build profiled libraries
1639212Sgibbs#	-DNOSECURE do not go into secure subdir
1739212Sgibbs
1839212Sgibbs# Put initial settings here.
1939212SgibbsSUBDIR=
2039212Sgibbs
2139212Sgibbs# We must do include and lib first so that the perl *.ph generation
2239212Sgibbs# works correctly as it uses the header files installed by this.
2339212Sgibbs.if exists(include)
2439212SgibbsSUBDIR+= include
2539212Sgibbs.endif
2639212Sgibbs.if exists(lib)
2739212SgibbsSUBDIR+= lib
28116161Sobrien.endif
29116161Sobrien
30116161Sobrien.if exists(bin)
31116161SobrienSUBDIR+= bin
3239212Sgibbs.endif
3374840Sken#.if exists(contrib)
3474840Sken#SUBDIR+= contrib
3589114Smsmith#.endif
3689114Smsmith.if exists(games)
3774840SkenSUBDIR+= games
3874840Sken.endif
3974840Sken.if exists(gnu)
40216088SkenSUBDIR+= gnu
41194189Sed.endif
4274840Sken.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
4374840SkenSUBDIR+= eBones
4439212Sgibbs.endif
4574840Sken.if exists(libexec)
4674840SkenSUBDIR+= libexec
47216088Sken.endif
4874840Sken.if exists(sbin)
4939212SgibbsSUBDIR+= sbin
5074840Sken.endif
5174840Sken.if exists(share)
52195534SscottlSUBDIR+= share
5374840Sken.endif
54219028Snetchild.if exists(sys)
55219028SnetchildSUBDIR+= sys
56219028Snetchild.endif
5774840Sken.if exists(usr.bin)
5874840SkenSUBDIR+= usr.bin
5974840Sken.endif
6074840Sken.if exists(usr.sbin)
6174840SkenSUBDIR+= usr.sbin
6274840Sken.endif
6374840Sken.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
6474840SkenSUBDIR+= secure
6574840Sken.endif
6674840Sken.if exists(lkm) && !defined(NOLKM)
67210779SbcrSUBDIR+= lkm
6874840Sken.endif
6974840Sken
7074840Sken# etc must be last for "distribute" to work
7174840Sken.if exists(etc) && make(distribute)
7274840SkenSUBDIR+= etc
7374840Sken.endif
7474840Sken
7574840Sken# These are last, since it is nice to at least get the base system
7674840Sken# rebuilt before you do them.
7774840Sken.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
7874840SkenSUBDIR+= local
7974840Sken.endif
8074840Sken.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
8174840SkenSUBDIR+= ports
8274840Sken.endif
8374840Sken
8474840Sken# Handle the -DNOOBJDIR and -DNOCLEANDIR
8574840Sken.if defined(NOOBJDIR)
8674840SkenOBJDIR=
8774840Sken.else
8874840SkenOBJDIR=		obj
8974840Sken.endif
90195534Sscottl
91216088Sken.if defined(NOCLEAN)
92216088SkenCLEANDIR=
9374840SkenWORLD_CLEANDIST=obj
9474840Sken.else
9574840SkenWORLD_CLEANDIST=cleandist
9674840Sken.if defined(NOCLEANDIR)
9774840SkenCLEANDIR=	clean
9874840Sken.else
9974840SkenCLEANDIR=	cleandir
10074840Sken.endif
10174840Sken.endif
10274840Sken
10374840SkenMK_FLAGS=	-DNOMAN -DNOPROFILE
10474840Sken
10574840Sken.if !target(pre-world)
10674840Skenpre-world:
10774840Sken	@/usr/bin/true
10874840Sken.endif
10974840Sken
11074840Skenworld:	pre-world hierarchy mk $(WORLD_CLEANDIST) bootstrap include-tools includes lib-tools libraries build-tools
11189114Smsmith	@echo "--------------------------------------------------------------"
11289114Smsmith	@echo " Rebuilding ${DESTDIR} The whole thing"
113251301Ssmh	@echo "--------------------------------------------------------------"
114251301Ssmh	@echo
115251301Ssmh	cd ${.CURDIR} && ${MAKE} depend all install
11689114Smsmith	cd ${.CURDIR}/share/man &&		${MAKE} makedb
11789114Smsmith.if target(post-world)
118251301Ssmh	cd ${.CURDIR} && ${MAKE} post-world
119251301Ssmh.endif
120251301Ssmh	@echo "make world completed on `date`"
121251301Ssmh
122251301Ssmhbootstrap:
123251301Ssmh	cd ${.CURDIR}/usr.bin/make && ${MAKE} ${MK_FLAGS} all install
12439212Sgibbs	cd ${.CURDIR}/usr.bin/xlint && ${MAKE} ${MK_FLAGS} lint1 lint2 xlint
12539212Sgibbs	cd ${.CURDIR}/usr.bin/xlint/lint1 && ${MAKE} ${MK_FLAGS} install
12639212Sgibbs	cd ${.CURDIR}/usr.bin/xlint/lint2 && ${MAKE} ${MK_FLAGS} install
12739212Sgibbs	cd ${.CURDIR}/usr.bin/xlint/xlint && ${MAKE} ${MK_FLAGS} install
12839552Sgibbs	cd ${.CURDIR}/usr.bin/lex && ${MAKE} ${MK_FLAGS} bootstrap && \
12939212Sgibbs		${MAKE} ${MK_FLAGS} all install
13039212Sgibbs
13139552Sgibbsreinstall:	hierarchy mk includes
13239552Sgibbs	@echo "--------------------------------------------------------------"
13339212Sgibbs	@echo " Reinstall ${DESTDIR} The whole thing"
13439212Sgibbs	@echo "--------------------------------------------------------------"
13539212Sgibbs	@echo
13639212Sgibbs	cd ${.CURDIR} && ${MAKE} install
13739212Sgibbs	cd ${.CURDIR}/share/man &&		${MAKE} makedb
13839212Sgibbs
13939212Sgibbshierarchy:
14039212Sgibbs	@echo "--------------------------------------------------------------"
14139212Sgibbs	@echo " Making hierarchy"
14239212Sgibbs	@echo "--------------------------------------------------------------"
14339212Sgibbs	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
14439212Sgibbs
14539212Sgibbsupdate:
14639212Sgibbs.if defined(SUP_UPDATE)
14739212Sgibbs	@echo "--------------------------------------------------------------"
14839212Sgibbs	@echo "Running sup"
14939212Sgibbs	@echo "--------------------------------------------------------------"
15039212Sgibbs	@sup -v ${SUPFILE}
15139212Sgibbs.if defined(SUPFILE1)
15239212Sgibbs	@sup -v ${SUPFILE1}
15339212Sgibbs.endif
15439212Sgibbs.if defined(SUPFILE2)
15539212Sgibbs	@sup -v ${SUPFILE2}
15639212Sgibbs.endif
15739212Sgibbs.endif
15839212Sgibbs.if defined(CVS_UPDATE)
15939212Sgibbs	@echo "--------------------------------------------------------------"
16039212Sgibbs	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
16139212Sgibbs	@echo "--------------------------------------------------------------"
16239212Sgibbs	cd ${.CURDIR} &&  cvs -q update -P -d
16339212Sgibbs.endif
16439212Sgibbs
16539212Sgibbscleandist:
16639212Sgibbs.if !defined(NOCLEANDIR)
16739212Sgibbs	@echo "--------------------------------------------------------------"
16839212Sgibbs	@echo " Cleaning up the source tree, and rebuilding the obj tree"
16939212Sgibbs	@echo "--------------------------------------------------------------"
17039212Sgibbs	cd ${.CURDIR} && ${MAKE} cleandir
17139212Sgibbs	cd ${.CURDIR} && ${MAKE} obj
17239212Sgibbs.endif
17339212Sgibbs
17439212Sgibbsinstallmost:
17539212Sgibbs	@echo "--------------------------------------------------------------"
17639212Sgibbs	@echo " Installing programs only"
17739212Sgibbs	@echo "--------------------------------------------------------------"
17839212Sgibbs	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
17939212Sgibbs	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
18039212Sgibbs	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
18139212Sgibbs	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
18239212Sgibbs	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
18339212Sgibbs	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
184199178Smav	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
185199178Smav	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
18639212Sgibbs#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
187199178Smav#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
188199178Smav#.endif
189199178Smav#.if !defined(NOSECURE) && !defined(NOCRYPT)
19039212Sgibbs#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
19139212Sgibbs#.endif
19239212Sgibbs
19339212Sgibbsmost:
19439212Sgibbs	@echo "--------------------------------------------------------------"
19539212Sgibbs	@echo " Building programs only"
19639212Sgibbs	@echo "--------------------------------------------------------------"
19739212Sgibbs	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
19839212Sgibbs	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
19939212Sgibbs	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
20039212Sgibbs	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
20139212Sgibbs	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
20239212Sgibbs	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
20339212Sgibbs	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
20474840Sken	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
20574840Sken#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
20674840Sken#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
20774840Sken#.endif
20874840Sken#.if !defined(NOSECURE) && !defined(NOCRYPT)
20974840Sken#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
21074840Sken#.endif
21174840Sken
21274840Skenmk:
21374840Sken	@echo "--------------------------------------------------------------"
21474840Sken	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
21574840Sken	@echo "--------------------------------------------------------------"
21674840Sken	cd ${.CURDIR}/share/mk &&	${MAKE} install
21774840Sken
21874840Skenincludes:
21974840Sken	@echo "--------------------------------------------------------------"
22074840Sken	@echo " Rebuilding ${DESTDIR}/usr/include"
22174840Sken	@echo "--------------------------------------------------------------"
22274840Sken	@echo
22374840Sken.if defined(CLOBBER)
22474840Sken	rm -rf ${DESTDIR}/usr/include/*
22574840Sken	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
22674840Sken		-p ${DESTDIR}/usr/include
22774840Sken.endif
22874840Sken	cd ${.CURDIR}/include &&		${MAKE} install
22974840Sken	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
23074840Sken	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
23174840Sken	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
23274840Sken	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
23374840Sken	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
23474840Sken.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
23574840Sken	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
23674840Sken	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
23774840Sken	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
23874840Sken.endif
23974840Sken	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
24074840Sken	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
24174840Sken	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
24274840Sken	cd ${.CURDIR}/lib/libftpio &&		${MAKE} beforeinstall
24374840Sken	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
24474840Sken	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
24574840Sken	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
24674840Sken.if !defined(WANT_CSRG_LIBM)
24774840Sken	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
24874840Sken.endif
24974840Sken	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
25074840Sken	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
25174840Sken	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
252198849Smav	cd ${.CURDIR}/lib/libtcl &&		${MAKE}	beforeinstall
253198849Smav	cd ${.CURDIR}/lib/libtermcap &&		${MAKE}	beforeinstall
254198849Smav	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
255198849Smav	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
256198849Smav	cd ${.CURDIR}/lib/libscsi &&		${MAKE}	beforeinstall
257198849Smav	cd ${.CURDIR}/lib/libutil &&		${MAKE}	beforeinstall
258198849Smav
259198849Smavlib-tools:
260198849Smav	@echo "--------------------------------------------------------------"
261198849Smav	@echo " Rebuilding tools needed to build the libraries"
262198849Smav	@echo "--------------------------------------------------------------"
263198849Smav	@echo
264198849Smav	cd ${.CURDIR}/usr.bin/xinstall && \
265198849Smav		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
266198849Smav	cd ${.CURDIR}/gnu/usr.bin/ld && \
26774840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
26874840Sken	cd ${.CURDIR}/usr.bin/ar && \
26974840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
27074840Sken	cd ${.CURDIR}/usr.bin/ranlib && \
27174840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
27274840Sken	cd ${.CURDIR}/usr.bin/nm && \
27374840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
27474840Sken	cd ${.CURDIR}/usr.bin/lex/lib && \
27574840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
27674840Sken	cd ${.CURDIR}/usr.bin/compile_et && \
277115562Sphk		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} && \
27874840Sken		rm -f /usr/sbin/compile_et
27974840Sken	cd ${.CURDIR}/usr.bin/mk_cmds && \
28074840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
28174840Sken
282216088Skenlibraries:
283216088Sken	@echo "--------------------------------------------------------------"
284216088Sken	@echo " Rebuilding ${DESTDIR}/usr/lib"
285216088Sken	@echo "--------------------------------------------------------------"
286216088Sken	@echo
287216088Sken.if exists(lib/libcompat)
288216088Sken	cd ${.CURDIR}/lib/libcompat && \
289216088Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
290216088Sken.endif
291216088Sken.if exists(lib/libncurses)
292216088Sken	cd ${.CURDIR}/lib/libncurses && \
293216088Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
294216088Sken.endif
295216088Sken.if exists(lib/libtermcap)
296216088Sken	cd ${.CURDIR}/lib/libtermcap && \
29774840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
29874840Sken.endif
29974840Sken.if exists(gnu)
30074840Sken	cd ${.CURDIR}/gnu/lib && \
30174840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
30274840Sken	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
30374840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
30474840Sken.endif
30574840Sken.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
30674840Sken	cd ${.CURDIR}/secure/lib && \
30774840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
30874840Sken.endif
30974840Sken.if exists(lib)
31074840Sken	cd ${.CURDIR}/lib/csu/i386 && \
311198849Smav		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
312198849Smav	cd ${.CURDIR}/lib && \
313198849Smav		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
314198849Smav.endif
31574840Sken.if exists(usr.sbin/lex/lib)
31674840Sken	cd ${.CURDIR}/usr.bin/lex/lib && \
31774840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
31874840Sken.endif
31974840Sken.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
32074840Sken	cd ${.CURDIR}/eBones/lib && \
32174840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
32274840Sken.endif
323216088Sken.if exists(usr.sbin/pcvt/keycap)
324216088Sken	cd ${.CURDIR}/usr.sbin/pcvt/keycap && \
325216088Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
326216088Sken.endif
327216088Sken
328216088Skeninclude-tools:
32974840Sken	@echo "--------------------------------------------------------------"
33074840Sken	@echo " Rebuild tools necessary to build the include files"
33174840Sken	@echo "--------------------------------------------------------------"
33274840Sken	@echo
33374840Sken	cd ${.CURDIR}/usr.bin/xinstall && \
33474840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
33574840Sken	cd ${.CURDIR}/usr.bin/rpcgen && \
33674840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
33774840Sken
33874840Skenbuild-tools:
33974840Sken	@echo "--------------------------------------------------------------"
34074840Sken	@echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)"
34174840Sken	@echo "--------------------------------------------------------------"
34274840Sken	@echo
34374840Sken	cd ${.CURDIR}/gnu/usr.bin/cc && \
34474840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
345203108Smav	cd ${.CURDIR}/usr.bin/make && \
34674840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
34774840Sken	cd ${.CURDIR}/usr.bin/symorder && \
348203108Smav		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
34974840Sken	cd ${.CURDIR}/usr.bin/sgmlfmt && \
35074840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 
35174840Sken	cd ${.CURDIR}/share/sgml && \
35274840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 
35374840Sken	cd ${.CURDIR}/usr.sbin/zic && \
35474840Sken		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
355198849Smav
356198849Smav.include <bsd.subdir.mk>
357198849Smav