Makefile revision 18714
12061Sjkh#
218714Sache#	$Id: Makefile,v 1.104 1996/10/04 08:48:27 peter Exp $
32061Sjkh#
42061Sjkh# Make command line options:
515603Smarkm#	-DCLOBBER will remove /usr/include
62061Sjkh#	-DMAKE_LOCAL to add ./local to the SUBDIR list
72061Sjkh#	-DMAKE_PORTS to add ./ports to the SUBDIR list
83197Scsgr#	-DMAKE_EBONES to build eBones (KerberosIV)
93197Scsgr#
102061Sjkh#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
1112483Speter#	-DNOCLEAN do not clean at all
122160Scsgr#	-DNOCRYPT will prevent building of crypt versions
132834Swollman#	-DNOLKM do not build loadable kernel modules
142061Sjkh#	-DNOOBJDIR do not run ``${MAKE} obj''
152061Sjkh#	-DNOPROFILE do not build profiled libraries
162160Scsgr#	-DNOSECURE do not go into secure subdir
1717308Speter#	-DNOGAMES do not go into games subdir
181594Srgrimes
1917308Speter#
2017308Speter# The intended user-driven targets are:
2117308Speter# world       - rebuild *everything*, including glue to help do upgrades.
2217308Speter# reinstall   - use an existing (eg: NFS mounted) build to do an update.
2317308Speter# update      - convenient way to update your source tree (eg: sup/cvs)
2417308Speter# most        - build user commands, no libraries or include files
2517308Speter# installmost - install user commands, no libraries or include files
2617308Speter# all         - run through SUBDIR and build everything.  This is an implicit
2717308Speter#               rule, not particularly useful for everybody.  Use 'world'.
2817308Speter
2917308Speter
302061Sjkh# Put initial settings here.
312061SjkhSUBDIR=
321594Srgrimes
337407Srgrimes# We must do include and lib first so that the perl *.ph generation
347407Srgrimes# works correctly as it uses the header files installed by this.
357108Sphk.if exists(include)
367108SphkSUBDIR+= include
377108Sphk.endif
387407Srgrimes.if exists(lib)
397407SrgrimesSUBDIR+= lib
407407Srgrimes.endif
417108Sphk
422061Sjkh.if exists(bin)
432061SjkhSUBDIR+= bin
442061Sjkh.endif
4517308Speter.if exists(games) && !defined(NOGAMES)
462061SjkhSUBDIR+= games
472061Sjkh.endif
482061Sjkh.if exists(gnu)
492061SjkhSUBDIR+= gnu
502061Sjkh.endif
513197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
522626ScsgrSUBDIR+= eBones
532626Scsgr.endif
542061Sjkh.if exists(libexec)
552061SjkhSUBDIR+= libexec
562061Sjkh.endif
572061Sjkh.if exists(sbin)
582061SjkhSUBDIR+= sbin
592061Sjkh.endif
602061Sjkh.if exists(share)
612061SjkhSUBDIR+= share
622061Sjkh.endif
632061Sjkh.if exists(sys)
642061SjkhSUBDIR+= sys
652061Sjkh.endif
662061Sjkh.if exists(usr.bin)
672061SjkhSUBDIR+= usr.bin
682061Sjkh.endif
692061Sjkh.if exists(usr.sbin)
702061SjkhSUBDIR+= usr.sbin
712061Sjkh.endif
722834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
732834SwollmanSUBDIR+= secure
742834Swollman.endif
752834Swollman.if exists(lkm) && !defined(NOLKM)
762834SwollmanSUBDIR+= lkm
772834Swollman.endif
781594Srgrimes
794486Sphk# etc must be last for "distribute" to work
804486Sphk.if exists(etc) && make(distribute)
814486SphkSUBDIR+= etc
824486Sphk.endif
834486Sphk
842061Sjkh# These are last, since it is nice to at least get the base system
852061Sjkh# rebuilt before you do them.
862061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
872061SjkhSUBDIR+= local
882061Sjkh.endif
892061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
902061SjkhSUBDIR+= ports
912061Sjkh.endif
922061Sjkh
9317308Speter# Handle -DNOOBJDIR, -DNOCLEAN and -DNOCLEANDIR
942061Sjkh.if defined(NOOBJDIR)
952061SjkhOBJDIR=
962061Sjkh.else
972061SjkhOBJDIR=		obj
982061Sjkh.endif
9912483Speter
10012483Speter.if defined(NOCLEAN)
10112483SpeterCLEANDIR=
10212483Speter.else
1032061Sjkh.if defined(NOCLEANDIR)
1042061SjkhCLEANDIR=	clean
1058854Srgrimes.else
1062061SjkhCLEANDIR=	cleandir
1072061Sjkh.endif
10812483Speter.endif
1092061Sjkh
11018714SacheSUP?=           sup
11118714SacheSUPFLAGS?=      -v
11218714Sache
11317308Speter#
11417308Speter# While building tools for bootstrapping, we dont need to waste time on
11517308Speter# profiled libraries or man pages.  This speeds things up somewhat.
11617308Speter#
11715603SmarkmMK_FLAGS=	-DNOMAN -DNOPROFILE
11815603Smarkm
11917308Speter#
12017308Speter# world
12117308Speter#
12217308Speter# Attempt to rebuild and reinstall *everything*, with reasonable chance of
12317308Speter# success, regardless of how old your existing system is.
12417308Speter#
12517308Speter# >> Beware, it overwrites the local build environment! <<
12617308Speter#
12717308Speterworld:
12818362Sjkh	@echo "--------------------------------------------------------------"
12918434Sache	@echo "make world started on `LC_TIME= date`"
13018362Sjkh	@echo "--------------------------------------------------------------"
13117308Speter.if target(pre-world)
13217308Speter	@echo "--------------------------------------------------------------"
13317308Speter	@echo " Making 'pre-world' target"
13417308Speter	@echo "--------------------------------------------------------------"
13517308Speter	cd ${.CURDIR} && ${MAKE} pre-world
13617308Speter	@echo
13716550Sjkh.endif
1382061Sjkh	@echo "--------------------------------------------------------------"
13917308Speter	@echo " Making hierarchy"
1402061Sjkh	@echo "--------------------------------------------------------------"
14117308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
1422061Sjkh	@echo
14317308Speter	@echo "--------------------------------------------------------------"
14417308Speter	@echo " Rebuilding /usr/share/mk"
14517308Speter	@echo "--------------------------------------------------------------"
14617308Speter	cd ${.CURDIR} && ${MAKE} mk
14717308Speter	@echo
14817308Speter	@echo "--------------------------------------------------------------"
14917308Speter	@echo " Cleaning up the source tree"
15017308Speter	@echo "--------------------------------------------------------------"
15117308Speter.if defined(NOCLEAN)
15217308Speter	@echo "Not cleaning anything! I sure hope you know what you are doing!"
15317308Speter.else
15417466Speter	cd ${.CURDIR} && ${MAKE} ${CLEANDIR}
15517308Speter.endif
15617308Speter	@echo
15717466Speter.if !defined(NOOBJDIR)
15817308Speter	@echo "--------------------------------------------------------------"
15917308Speter	@echo " Rebuilding the obj tree"
16017308Speter	@echo "--------------------------------------------------------------"
16117308Speter	cd ${.CURDIR} && ${MAKE} obj
16217466Speter	@echo
16317308Speter.endif
16417308Speter	@echo "--------------------------------------------------------------"
16517308Speter	@echo " Rebuilding bootstrap tools"
16617308Speter	@echo "--------------------------------------------------------------"
16717308Speter	cd ${.CURDIR} && ${MAKE} bootstrap
16817308Speter	@echo
16917308Speter	@echo "--------------------------------------------------------------"
17017308Speter	@echo " Rebuilding tools necessary to build the include files"
17117308Speter	@echo "--------------------------------------------------------------"
17217308Speter	cd ${.CURDIR} && ${MAKE} include-tools
17317308Speter	@echo
17417308Speter	@echo "--------------------------------------------------------------"
17517308Speter	@echo " Rebuilding /usr/include"
17617308Speter	@echo "--------------------------------------------------------------"
17717308Speter	cd ${.CURDIR} && ${MAKE} includes
17817308Speter	@echo
17917308Speter	@echo "--------------------------------------------------------------"
18017308Speter	@echo " Rebuilding tools needed to build the libraries"
18117308Speter	@echo "--------------------------------------------------------------"
18217308Speter	cd ${.CURDIR} && ${MAKE} lib-tools
18317308Speter	@echo
18417308Speter	@echo "--------------------------------------------------------------"
18517308Speter	@echo " Rebuilding /usr/lib"
18617308Speter	@echo "--------------------------------------------------------------"
18717308Speter	cd ${.CURDIR} && ${MAKE} libraries
18817308Speter	@echo
18917308Speter	@echo "--------------------------------------------------------------"
19018392Speter	@echo " Rebuilding sgml tools, symorder, groff and zic(8)"
19117308Speter	@echo "--------------------------------------------------------------"
19217308Speter	cd ${.CURDIR} && ${MAKE} build-tools
19317308Speter	@echo
19417308Speter	@echo "--------------------------------------------------------------"
19517962Speter	@echo " Rebuilding dependencies"
19617308Speter	@echo "--------------------------------------------------------------"
19717962Speter	cd ${.CURDIR} && ${MAKE} depend
19817962Speter	@echo
19917962Speter	@echo "--------------------------------------------------------------"
20017962Speter	@echo " Building everything.."
20117962Speter	@echo "--------------------------------------------------------------"
20217962Speter	cd ${.CURDIR} && ${MAKE} all
20317962Speter	@echo
20417962Speter	@echo "--------------------------------------------------------------"
20517962Speter	@echo " Installing everything.."
20617962Speter	@echo "--------------------------------------------------------------"
20717962Speter	cd ${.CURDIR} && ${MAKE} install
20817962Speter	@echo
20917962Speter	@echo "--------------------------------------------------------------"
21017962Speter	@echo " Rebuilding man page indexes"
21117962Speter	@echo "--------------------------------------------------------------"
21217308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
21316550Sjkh.if target(post-world)
21417308Speter	@echo
21517308Speter	@echo "--------------------------------------------------------------"
21617308Speter	@echo " Making 'post-world' target"
21717308Speter	@echo "--------------------------------------------------------------"
21816550Sjkh	cd ${.CURDIR} && ${MAKE} post-world
21916550Sjkh.endif
22017308Speter	@echo
22117308Speter	@echo "--------------------------------------------------------------"
22218434Sache	@echo "make world completed on `LC_TIME= date`"
22317962Speter	@echo "--------------------------------------------------------------"
2242061Sjkh
22517308Speter#
22617308Speter# reinstall
22717308Speter#
22817308Speter# If you have a build server, you can NFS mount the source and obj directories
22917308Speter# and do a 'make reinstall' on the *client* to install new binaries from the
23017308Speter# most recent server build.
23117308Speter#
23217308Speterreinstall:
23312483Speter	@echo "--------------------------------------------------------------"
23417308Speter	@echo " Making hierarchy"
23512483Speter	@echo "--------------------------------------------------------------"
23617308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
23712483Speter	@echo
2382061Sjkh	@echo "--------------------------------------------------------------"
23917308Speter	@echo " Rebuilding /usr/share/mk"
2402061Sjkh	@echo "--------------------------------------------------------------"
24117308Speter	cd ${.CURDIR} && ${MAKE} mk
24217308Speter	@echo
24317308Speter	@echo "--------------------------------------------------------------"
24417308Speter	@echo " Rebuilding /usr/include"
24517308Speter	@echo "--------------------------------------------------------------"
24617308Speter	cd ${.CURDIR} && ${MAKE} includes
24717308Speter	@echo
24817308Speter	@echo "--------------------------------------------------------------"
24917962Speter	@echo " Rebuilding dependencies"
25017308Speter	@echo "--------------------------------------------------------------"
25117962Speter	cd ${.CURDIR} && ${MAKE} depend
25217308Speter	@echo
25317962Speter	@echo "--------------------------------------------------------------"
25417962Speter	@echo " Building everything.."
25517962Speter	@echo "--------------------------------------------------------------"
25617962Speter	cd ${.CURDIR} && ${MAKE} all
25717962Speter	@echo
25817962Speter	@echo "--------------------------------------------------------------"
25917962Speter	@echo " Installing everything.."
26017962Speter	@echo "--------------------------------------------------------------"
26117308Speter	cd ${.CURDIR} && ${MAKE} install
26217962Speter	@echo
26317962Speter	@echo "--------------------------------------------------------------"
26417962Speter	@echo " Rebuilding man page indexes"
26517962Speter	@echo "--------------------------------------------------------------"
26617308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
2672061Sjkh
26817308Speter
26917308Speter#
27017308Speter# update
27117308Speter#
27217308Speter# Update the source tree, by running sup and/or running cvs to update to the
27317308Speter# latest copy.
27417308Speter#
2752302Spaulupdate:
2762302Spaul.if defined(SUP_UPDATE)
2772302Spaul	@echo "--------------------------------------------------------------"
2782302Spaul	@echo "Running sup"
2792302Spaul	@echo "--------------------------------------------------------------"
28018714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE}
28110760Sache.if defined(SUPFILE1)
28218714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE1}
2832302Spaul.endif
28410760Sache.if defined(SUPFILE2)
28518714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE2}
28610760Sache.endif
28710760Sache.endif
2882302Spaul.if defined(CVS_UPDATE)
2892302Spaul	@echo "--------------------------------------------------------------"
2902302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
2912302Spaul	@echo "--------------------------------------------------------------"
29216591Spst	cd ${.CURDIR} &&  cvs -q update -P -d
2932302Spaul.endif
2942302Spaul
29517308Speter
29617308Speter#
29717308Speter# most
29817308Speter#
29917308Speter# Build most of the user binaries on the existing system libs and includes.
30017308Speter#
30117308Spetermost:
3022061Sjkh	@echo "--------------------------------------------------------------"
30317308Speter	@echo " Building programs only"
3042061Sjkh	@echo "--------------------------------------------------------------"
30517308Speter	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
30617308Speter	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
30717308Speter	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
30817308Speter	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
30917308Speter	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
31017308Speter	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
31117308Speter	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
31217308Speter	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
31317308Speter#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
31417308Speter#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
31517308Speter#.endif
31617308Speter#.if !defined(NOSECURE) && !defined(NOCRYPT)
31717308Speter#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
31817308Speter#.endif
3192061Sjkh
32017308Speter#
32117308Speter# installmost
32217308Speter#
32317308Speter# Install the binaries built by the 'most' target.  This does not include
32417308Speter# libraries or include files.
32517308Speter#
3263626Swollmaninstallmost:
3273626Swollman	@echo "--------------------------------------------------------------"
3283626Swollman	@echo " Installing programs only"
3293626Swollman	@echo "--------------------------------------------------------------"
3303626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
3313626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
3323626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
3333626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
3343626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
3353626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
3363626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
3377059Sroberto	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
3383626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
3393626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
3403626Swollman#.endif
3413626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
3423626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
3433626Swollman#.endif
3443626Swollman
34517308Speter#
34617308Speter# ------------------------------------------------------------------------
34717308Speter#
34817308Speter# From here onwards are utility targets used by the 'make world' and
34917308Speter# related targets.  If your 'world' breaks, you may like to try to fix
35017308Speter# the problem and manually run the following targets to attempt to
35117308Speter# complete the build.  Beware, this is *not* guaranteed to work, you
35217308Speter# need to have a pretty good grip on the current state of the system
35317308Speter# to attempt to manually finish it.  If in doubt, 'make world' again.
35417308Speter#
3553626Swollman
35617308Speter#
35717308Speter# heirarchy - ensure that all the needed directories are present
35817308Speter#
35917308Speterhierarchy:
36017308Speter	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
36117308Speter
36217308Speter#
36317308Speter# mk - update the /usr/share/mk makefiles.
36417308Speter#
3652061Sjkhmk:
36616663Sjkh	cd ${.CURDIR}/share/mk &&	${MAKE} install
3672061Sjkh
36817308Speter#
36917308Speter# bootstrap - [re]build tools needed to run the actual build, this includes
37017308Speter# tools needed by 'make depend', as some tools are needed to generate source
37117308Speter# for the dependency information to be gathered from.
37217308Speter#
37317308Speterbootstrap:
37417820Sjkh	cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
37517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
37617820Sjkh	cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
37717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
37817820Sjkh	cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
37917467Speter		${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR} ${OBJDIR}
38017308Speter
38117308Speter#
38217308Speter# include-tools - generally the same as 'bootstrap', except that it's for
38317308Speter# things that are specifically needed to generate include files.
38417308Speter#
38517308Speter# XXX should be merged with bootstrap, it's not worth keeeping them seperate
38617308Speter#
38717308Speterinclude-tools:
38817820Sjkh	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} depend && \
38917820Sjkh		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
39017308Speter
39117308Speter#
39217308Speter# includes - possibly generate and install the include files.
39317308Speter#
39414119Speterincludes:
3952061Sjkh.if defined(CLOBBER)
3967130Srgrimes	rm -rf ${DESTDIR}/usr/include/*
3977130Srgrimes	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
3987130Srgrimes		-p ${DESTDIR}/usr/include
3992061Sjkh.endif
40017962Speter	cd ${.CURDIR}/include/rpcsvc &&		${MAKE} all
4012061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
40217308Speter	cd ${.CURDIR}/gnu/include &&		${MAKE} install
4032685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
4046927Snate	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
40518674Speter	cd ${.CURDIR}/gnu/lib/libstdc++ &&      ${MAKE} beforeinstall
4062685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
4073518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
4083197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
4093197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
41012166Sjkh	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
41112485Sjkh	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
4123197Scsgr.endif
4132061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
4142061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
4152061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
41616786Snate	cd ${.CURDIR}/lib/libftpio &&		${MAKE} beforeinstall
4172883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
41817308Speter	cd ${.CURDIR}/lib/libmytinfo &&         ${MAKE} beforeinstall
41917308Speter	cd ${.CURDIR}/lib/libncurses &&		${MAKE} beforeinstall
4207281Srgrimes.if !defined(WANT_CSRG_LIBM)
4213242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
4223242Spaul.endif
4237171Sats	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
4242061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
4253213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
42617308Speter	cd ${.CURDIR}/lib/libtcl &&		${MAKE} beforeinstall
42717308Speter	cd ${.CURDIR}/lib/libtermcap &&		${MAKE} beforeinstall
4285749Swollman	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
4295772Swollman	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
43017308Speter	cd ${.CURDIR}/lib/libscsi &&		${MAKE} beforeinstall
43117308Speter	cd ${.CURDIR}/lib/libutil &&		${MAKE} beforeinstall
4322061Sjkh
43317308Speter#
43417308Speter# lib-tools - build tools to compile and install the libraries.
43517308Speter#
4365366Snatelib-tools:
43717820Sjkh	cd ${.CURDIR}/usr.bin/tsort && ${MAKE} depend && \
43817467Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43917820Sjkh	cd ${.CURDIR}/gnu/usr.bin/ld && ${MAKE} depend && \
44017308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44118674Speter	cd ${.CURDIR}/gnu/usr.bin/as && ${MAKE} depend && \
44218674Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44317820Sjkh	cd ${.CURDIR}/usr.bin/ar && ${MAKE} depend && \
44417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44517820Sjkh	cd ${.CURDIR}/usr.bin/ranlib && ${MAKE} depend && \
44617308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44717820Sjkh	cd ${.CURDIR}/usr.bin/nm && ${MAKE} depend && \
44817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44917820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
45017308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45117820Sjkh	cd ${.CURDIR}/usr.bin/compile_et && ${MAKE} depend && \
45217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} && \
4535728Swollman		rm -f /usr/sbin/compile_et
45417820Sjkh	cd ${.CURDIR}/usr.bin/mk_cmds && ${MAKE} depend && \
45517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45618392Speter	cd ${.CURDIR}/gnu/usr.bin/bison && ${MAKE} depend && \
45718392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45818392Speter	cd ${.CURDIR}/gnu/usr.bin/gperf && ${MAKE} depend && \
45918392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
46018392Speter	cd ${.CURDIR}/gnu/usr.bin/cc && ${MAKE} depend && \
46118392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4625366Snate
46317308Speter#
46417308Speter# libraries - build and install the libraries
46517308Speter#
4662061Sjkhlibraries:
4678295Srgrimes.if exists(lib/libcompat)
46817820Sjkh	cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
46917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4708295Srgrimes.endif
4718489Srgrimes.if exists(lib/libncurses)
47217820Sjkh	cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
47317308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4748489Srgrimes.endif
4758489Srgrimes.if exists(lib/libtermcap)
47617820Sjkh	cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
47717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4788489Srgrimes.endif
47917308Speter.if exists(lib)
48017820Sjkh	cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
48117308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
48217308Speter.endif
4838295Srgrimes.if exists(gnu)
48417820Sjkh	cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
48517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4868295Srgrimes.endif
4872160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
48817820Sjkh	cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
48917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4902160Scsgr.endif
4912279Spaul.if exists(lib)
49217820Sjkh	cd ${.CURDIR}/lib && ${MAKE} depend && \
49317308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4942279Spaul.endif
49517234Sjraynard.if exists(usr.bin/lex/lib)
49617820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
49717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
49811772Snate.endif
4993197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
50017820Sjkh	cd ${.CURDIR}/eBones/lib && ${MAKE} depend && \
50117308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5022626Scsgr.endif
5038304Srgrimes.if exists(usr.sbin/pcvt/keycap)
50417820Sjkh	cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
50517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5068304Srgrimes.endif
5072061Sjkh
50817308Speter#
50917308Speter# build-tools - build and install any other tools needed to complete the
51017308Speter# compile and install.
51117308Speter#
51211806Sphkbuild-tools:
51317820Sjkh	cd ${.CURDIR}/usr.bin/symorder && ${MAKE} depend && \
51417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
51518204Sjfieber	cd ${.CURDIR}/usr.bin/sgmls && ${MAKE} depend && \
51618204Sjfieber		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} 
51717820Sjkh	cd ${.CURDIR}/usr.bin/sgmlfmt && ${MAKE} depend && \
51817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} 
51917820Sjkh	cd ${.CURDIR}/share/sgml && ${MAKE} depend && \
52017308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} 
52117820Sjkh	cd ${.CURDIR}/usr.sbin/zic && ${MAKE} depend && \
52217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
52318362Sjkh	cd ${.CURDIR}/gnu/usr.bin/groff && ${MAKE} depend && \
52418362Sjkh		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5252061Sjkh
5261594Srgrimes.include <bsd.subdir.mk>
527