Makefile revision 24754
12061Sjkh#
224754Sjdp#	$Id: Makefile,v 1.120 1997/04/02 17:10:16 ache 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)
920710Sasami#	-DALLLANG to build documentation for all languages
1020710Sasami#	  (where available -- see share/doc/Makefile)
113197Scsgr#
122061Sjkh#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
1312483Speter#	-DNOCLEAN do not clean at all
142160Scsgr#	-DNOCRYPT will prevent building of crypt versions
152834Swollman#	-DNOLKM do not build loadable kernel modules
162061Sjkh#	-DNOOBJDIR do not run ``${MAKE} obj''
172061Sjkh#	-DNOPROFILE do not build profiled libraries
182160Scsgr#	-DNOSECURE do not go into secure subdir
1917308Speter#	-DNOGAMES do not go into games subdir
2019320Sadam#	-DNOSHARE do not go into share subdir
2121536Sjmacd#       -DNOINFO do not make or install info files
221594Srgrimes
2317308Speter#
2417308Speter# The intended user-driven targets are:
2517308Speter# world       - rebuild *everything*, including glue to help do upgrades.
2617308Speter# reinstall   - use an existing (eg: NFS mounted) build to do an update.
2717308Speter# update      - convenient way to update your source tree (eg: sup/cvs)
2817308Speter# most        - build user commands, no libraries or include files
2917308Speter# installmost - install user commands, no libraries or include files
3019175Sbde#
3119175Sbde# Standard targets (not defined here) are documented in the makefiles in
3219175Sbde# /usr/share/mk.  These include:
3319175Sbde#		obj depend all install clean cleandepend cleanobj
3417308Speter
3517308Speter
362061Sjkh# Put initial settings here.
372061SjkhSUBDIR=
381594Srgrimes
397407Srgrimes# We must do include and lib first so that the perl *.ph generation
407407Srgrimes# works correctly as it uses the header files installed by this.
417108Sphk.if exists(include)
427108SphkSUBDIR+= include
437108Sphk.endif
447407Srgrimes.if exists(lib)
457407SrgrimesSUBDIR+= lib
467407Srgrimes.endif
477108Sphk
482061Sjkh.if exists(bin)
492061SjkhSUBDIR+= bin
502061Sjkh.endif
5117308Speter.if exists(games) && !defined(NOGAMES)
522061SjkhSUBDIR+= games
532061Sjkh.endif
542061Sjkh.if exists(gnu)
552061SjkhSUBDIR+= gnu
562061Sjkh.endif
573197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
582626ScsgrSUBDIR+= eBones
592626Scsgr.endif
602061Sjkh.if exists(libexec)
612061SjkhSUBDIR+= libexec
622061Sjkh.endif
632061Sjkh.if exists(sbin)
642061SjkhSUBDIR+= sbin
652061Sjkh.endif
6619320Sadam.if exists(share) && !defined(NOSHARE)
672061SjkhSUBDIR+= share
682061Sjkh.endif
692061Sjkh.if exists(sys)
702061SjkhSUBDIR+= sys
712061Sjkh.endif
722061Sjkh.if exists(usr.bin)
732061SjkhSUBDIR+= usr.bin
742061Sjkh.endif
752061Sjkh.if exists(usr.sbin)
762061SjkhSUBDIR+= usr.sbin
772061Sjkh.endif
782834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
792834SwollmanSUBDIR+= secure
802834Swollman.endif
812834Swollman.if exists(lkm) && !defined(NOLKM)
822834SwollmanSUBDIR+= lkm
832834Swollman.endif
841594Srgrimes
854486Sphk# etc must be last for "distribute" to work
864486Sphk.if exists(etc) && make(distribute)
874486SphkSUBDIR+= etc
884486Sphk.endif
894486Sphk
902061Sjkh# These are last, since it is nice to at least get the base system
912061Sjkh# rebuilt before you do them.
922061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
932061SjkhSUBDIR+= local
942061Sjkh.endif
952061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
962061SjkhSUBDIR+= ports
972061Sjkh.endif
982061Sjkh
9917308Speter# Handle -DNOOBJDIR, -DNOCLEAN and -DNOCLEANDIR
1002061Sjkh.if defined(NOOBJDIR)
1012061SjkhOBJDIR=
1022061Sjkh.else
1032061SjkhOBJDIR=		obj
1042061Sjkh.endif
10512483Speter
10612483Speter.if defined(NOCLEAN)
10712483SpeterCLEANDIR=
10812483Speter.else
1092061Sjkh.if defined(NOCLEANDIR)
1102061SjkhCLEANDIR=	clean
1118854Srgrimes.else
1122061SjkhCLEANDIR=	cleandir
1132061Sjkh.endif
11412483Speter.endif
1152061Sjkh
11618714SacheSUP?=           sup
11718714SacheSUPFLAGS?=      -v
11818714Sache
11917308Speter#
12017308Speter# While building tools for bootstrapping, we dont need to waste time on
12117308Speter# profiled libraries or man pages.  This speeds things up somewhat.
12217308Speter#
12321536SjmacdMK_FLAGS=	-DNOINFO -DNOMAN -DNOPROFILE
12415603Smarkm
12517308Speter#
12617308Speter# world
12717308Speter#
12817308Speter# Attempt to rebuild and reinstall *everything*, with reasonable chance of
12917308Speter# success, regardless of how old your existing system is.
13017308Speter#
13117308Speter# >> Beware, it overwrites the local build environment! <<
13217308Speter#
13317308Speterworld:
13418362Sjkh	@echo "--------------------------------------------------------------"
13519966Sache	@echo "make world started on `LC_TIME=C date`"
13618362Sjkh	@echo "--------------------------------------------------------------"
13717308Speter.if target(pre-world)
13817308Speter	@echo "--------------------------------------------------------------"
13917308Speter	@echo " Making 'pre-world' target"
14017308Speter	@echo "--------------------------------------------------------------"
14117308Speter	cd ${.CURDIR} && ${MAKE} pre-world
14217308Speter	@echo
14316550Sjkh.endif
1442061Sjkh	@echo "--------------------------------------------------------------"
14517308Speter	@echo " Making hierarchy"
1462061Sjkh	@echo "--------------------------------------------------------------"
14717308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
1482061Sjkh	@echo
14917308Speter	@echo "--------------------------------------------------------------"
15017308Speter	@echo " Rebuilding /usr/share/mk"
15117308Speter	@echo "--------------------------------------------------------------"
15217308Speter	cd ${.CURDIR} && ${MAKE} mk
15317308Speter	@echo
15417308Speter	@echo "--------------------------------------------------------------"
15517308Speter	@echo " Cleaning up the source tree"
15617308Speter	@echo "--------------------------------------------------------------"
15717308Speter.if defined(NOCLEAN)
15817308Speter	@echo "Not cleaning anything! I sure hope you know what you are doing!"
15917308Speter.else
16017466Speter	cd ${.CURDIR} && ${MAKE} ${CLEANDIR}
16117308Speter.endif
16217308Speter	@echo
16317466Speter.if !defined(NOOBJDIR)
16417308Speter	@echo "--------------------------------------------------------------"
16517308Speter	@echo " Rebuilding the obj tree"
16617308Speter	@echo "--------------------------------------------------------------"
16717308Speter	cd ${.CURDIR} && ${MAKE} obj
16817466Speter	@echo
16917308Speter.endif
17017308Speter	@echo "--------------------------------------------------------------"
17117308Speter	@echo " Rebuilding bootstrap tools"
17217308Speter	@echo "--------------------------------------------------------------"
17317308Speter	cd ${.CURDIR} && ${MAKE} bootstrap
17417308Speter	@echo
17517308Speter	@echo "--------------------------------------------------------------"
17617308Speter	@echo " Rebuilding tools necessary to build the include files"
17717308Speter	@echo "--------------------------------------------------------------"
17817308Speter	cd ${.CURDIR} && ${MAKE} include-tools
17917308Speter	@echo
18017308Speter	@echo "--------------------------------------------------------------"
18117308Speter	@echo " Rebuilding /usr/include"
18217308Speter	@echo "--------------------------------------------------------------"
18317308Speter	cd ${.CURDIR} && ${MAKE} includes
18417308Speter	@echo
18517308Speter	@echo "--------------------------------------------------------------"
18617308Speter	@echo " Rebuilding tools needed to build the libraries"
18717308Speter	@echo "--------------------------------------------------------------"
18817308Speter	cd ${.CURDIR} && ${MAKE} lib-tools
18917308Speter	@echo
19017308Speter	@echo "--------------------------------------------------------------"
19117308Speter	@echo " Rebuilding /usr/lib"
19217308Speter	@echo "--------------------------------------------------------------"
19317308Speter	cd ${.CURDIR} && ${MAKE} libraries
19417308Speter	@echo
19517308Speter	@echo "--------------------------------------------------------------"
19618392Speter	@echo " Rebuilding sgml tools, symorder, groff and zic(8)"
19717308Speter	@echo "--------------------------------------------------------------"
19817308Speter	cd ${.CURDIR} && ${MAKE} build-tools
19917308Speter	@echo
20017308Speter	@echo "--------------------------------------------------------------"
20117962Speter	@echo " Rebuilding dependencies"
20217308Speter	@echo "--------------------------------------------------------------"
20317962Speter	cd ${.CURDIR} && ${MAKE} depend
20417962Speter	@echo
20517962Speter	@echo "--------------------------------------------------------------"
20617962Speter	@echo " Building everything.."
20717962Speter	@echo "--------------------------------------------------------------"
20817962Speter	cd ${.CURDIR} && ${MAKE} all
20917962Speter	@echo
21017962Speter	@echo "--------------------------------------------------------------"
21117962Speter	@echo " Installing everything.."
21217962Speter	@echo "--------------------------------------------------------------"
21317962Speter	cd ${.CURDIR} && ${MAKE} install
21417962Speter	@echo
21517962Speter	@echo "--------------------------------------------------------------"
21617962Speter	@echo " Rebuilding man page indexes"
21717962Speter	@echo "--------------------------------------------------------------"
21817308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
21916550Sjkh.if target(post-world)
22017308Speter	@echo
22117308Speter	@echo "--------------------------------------------------------------"
22217308Speter	@echo " Making 'post-world' target"
22317308Speter	@echo "--------------------------------------------------------------"
22416550Sjkh	cd ${.CURDIR} && ${MAKE} post-world
22516550Sjkh.endif
22617308Speter	@echo
22717308Speter	@echo "--------------------------------------------------------------"
22819966Sache	@echo "make world completed on `LC_TIME=C date`"
22917962Speter	@echo "--------------------------------------------------------------"
2302061Sjkh
23117308Speter#
23217308Speter# reinstall
23317308Speter#
23417308Speter# If you have a build server, you can NFS mount the source and obj directories
23517308Speter# and do a 'make reinstall' on the *client* to install new binaries from the
23617308Speter# most recent server build.
23717308Speter#
23817308Speterreinstall:
23912483Speter	@echo "--------------------------------------------------------------"
24017308Speter	@echo " Making hierarchy"
24112483Speter	@echo "--------------------------------------------------------------"
24217308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
24312483Speter	@echo
2442061Sjkh	@echo "--------------------------------------------------------------"
24517308Speter	@echo " Rebuilding /usr/share/mk"
2462061Sjkh	@echo "--------------------------------------------------------------"
24717308Speter	cd ${.CURDIR} && ${MAKE} mk
24817308Speter	@echo
24917308Speter	@echo "--------------------------------------------------------------"
25017962Speter	@echo " Installing everything.."
25117962Speter	@echo "--------------------------------------------------------------"
25217308Speter	cd ${.CURDIR} && ${MAKE} install
25317962Speter	@echo
25417962Speter	@echo "--------------------------------------------------------------"
25517962Speter	@echo " Rebuilding man page indexes"
25617962Speter	@echo "--------------------------------------------------------------"
25717308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
2582061Sjkh
25917308Speter
26017308Speter#
26117308Speter# update
26217308Speter#
26317308Speter# Update the source tree, by running sup and/or running cvs to update to the
26417308Speter# latest copy.
26517308Speter#
2662302Spaulupdate:
2672302Spaul.if defined(SUP_UPDATE)
2682302Spaul	@echo "--------------------------------------------------------------"
2692302Spaul	@echo "Running sup"
2702302Spaul	@echo "--------------------------------------------------------------"
27118714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE}
27210760Sache.if defined(SUPFILE1)
27318714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE1}
2742302Spaul.endif
27510760Sache.if defined(SUPFILE2)
27618714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE2}
27710760Sache.endif
27810760Sache.endif
2792302Spaul.if defined(CVS_UPDATE)
2802302Spaul	@echo "--------------------------------------------------------------"
2812302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
2822302Spaul	@echo "--------------------------------------------------------------"
28316591Spst	cd ${.CURDIR} &&  cvs -q update -P -d
2842302Spaul.endif
2852302Spaul
28617308Speter
28717308Speter#
28817308Speter# most
28917308Speter#
29017308Speter# Build most of the user binaries on the existing system libs and includes.
29117308Speter#
29217308Spetermost:
2932061Sjkh	@echo "--------------------------------------------------------------"
29417308Speter	@echo " Building programs only"
2952061Sjkh	@echo "--------------------------------------------------------------"
29617308Speter	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
29717308Speter	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
29817308Speter	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
29917308Speter	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
30017308Speter	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
30117308Speter	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
30217308Speter	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
30317308Speter	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
30417308Speter#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
30517308Speter#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
30617308Speter#.endif
30717308Speter#.if !defined(NOSECURE) && !defined(NOCRYPT)
30817308Speter#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
30917308Speter#.endif
3102061Sjkh
31117308Speter#
31217308Speter# installmost
31317308Speter#
31417308Speter# Install the binaries built by the 'most' target.  This does not include
31517308Speter# libraries or include files.
31617308Speter#
3173626Swollmaninstallmost:
3183626Swollman	@echo "--------------------------------------------------------------"
3193626Swollman	@echo " Installing programs only"
3203626Swollman	@echo "--------------------------------------------------------------"
3213626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
3223626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
3233626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
3243626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
3253626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
3263626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
3273626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
3287059Sroberto	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
3293626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
3303626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
3313626Swollman#.endif
3323626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
3333626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
3343626Swollman#.endif
3353626Swollman
33617308Speter#
33717308Speter# ------------------------------------------------------------------------
33817308Speter#
33917308Speter# From here onwards are utility targets used by the 'make world' and
34017308Speter# related targets.  If your 'world' breaks, you may like to try to fix
34117308Speter# the problem and manually run the following targets to attempt to
34217308Speter# complete the build.  Beware, this is *not* guaranteed to work, you
34317308Speter# need to have a pretty good grip on the current state of the system
34417308Speter# to attempt to manually finish it.  If in doubt, 'make world' again.
34517308Speter#
3463626Swollman
34717308Speter#
34817308Speter# heirarchy - ensure that all the needed directories are present
34917308Speter#
35017308Speterhierarchy:
35117308Speter	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
35217308Speter
35317308Speter#
35417308Speter# mk - update the /usr/share/mk makefiles.
35517308Speter#
3562061Sjkhmk:
35716663Sjkh	cd ${.CURDIR}/share/mk &&	${MAKE} install
3582061Sjkh
35917308Speter#
36017308Speter# bootstrap - [re]build tools needed to run the actual build, this includes
36117308Speter# tools needed by 'make depend', as some tools are needed to generate source
36217308Speter# for the dependency information to be gathered from.
36317308Speter#
36417308Speterbootstrap:
36517820Sjkh	cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
36617308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
36717820Sjkh	cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
36817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
36917820Sjkh	cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
37017467Speter		${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR} ${OBJDIR}
37117308Speter
37217308Speter#
37317308Speter# include-tools - generally the same as 'bootstrap', except that it's for
37417308Speter# things that are specifically needed to generate include files.
37517308Speter#
37617308Speter# XXX should be merged with bootstrap, it's not worth keeeping them seperate
37717308Speter#
37817308Speterinclude-tools:
37917820Sjkh	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} depend && \
38017820Sjkh		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
38117308Speter
38217308Speter#
38317308Speter# includes - possibly generate and install the include files.
38417308Speter#
38514119Speterincludes:
3862061Sjkh.if defined(CLOBBER)
3877130Srgrimes	rm -rf ${DESTDIR}/usr/include/*
3887130Srgrimes	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
3897130Srgrimes		-p ${DESTDIR}/usr/include
3902061Sjkh.endif
39117962Speter	cd ${.CURDIR}/include/rpcsvc &&		${MAKE} all
3922061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
39317308Speter	cd ${.CURDIR}/gnu/include &&		${MAKE} install
3942685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
3956927Snate	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
39618674Speter	cd ${.CURDIR}/gnu/lib/libstdc++ &&      ${MAKE} beforeinstall
3972685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
3983518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
3993197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
4003197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
40112166Sjkh	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
40212485Sjkh	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
4033197Scsgr.endif
40424561Sache	cd ${.CURDIR}/lib/csu/i386 &&		${MAKE}	beforeinstall
4052061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
4062061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
4072061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
40816786Snate	cd ${.CURDIR}/lib/libftpio &&		${MAKE} beforeinstall
4092883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
41017308Speter	cd ${.CURDIR}/lib/libmytinfo &&         ${MAKE} beforeinstall
41117308Speter	cd ${.CURDIR}/lib/libncurses &&		${MAKE} beforeinstall
4127281Srgrimes.if !defined(WANT_CSRG_LIBM)
4133242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
4143242Spaul.endif
4157171Sats	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
4162061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
4173213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
41817308Speter	cd ${.CURDIR}/lib/libtcl &&		${MAKE} beforeinstall
41917308Speter	cd ${.CURDIR}/lib/libtermcap &&		${MAKE} beforeinstall
4205749Swollman	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
4215772Swollman	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
42217308Speter	cd ${.CURDIR}/lib/libscsi &&		${MAKE} beforeinstall
42317308Speter	cd ${.CURDIR}/lib/libutil &&		${MAKE} beforeinstall
4242061Sjkh
42517308Speter#
42617308Speter# lib-tools - build tools to compile and install the libraries.
42717308Speter#
4285366Snatelib-tools:
42917820Sjkh	cd ${.CURDIR}/usr.bin/tsort && ${MAKE} depend && \
43017467Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43117820Sjkh	cd ${.CURDIR}/gnu/usr.bin/ld && ${MAKE} depend && \
43217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43318674Speter	cd ${.CURDIR}/gnu/usr.bin/as && ${MAKE} depend && \
43418674Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43517820Sjkh	cd ${.CURDIR}/usr.bin/ar && ${MAKE} depend && \
43617308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43717820Sjkh	cd ${.CURDIR}/usr.bin/ranlib && ${MAKE} depend && \
43817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43917820Sjkh	cd ${.CURDIR}/usr.bin/nm && ${MAKE} depend && \
44017308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44117820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
44217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44317820Sjkh	cd ${.CURDIR}/usr.bin/compile_et && ${MAKE} depend && \
44417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} && \
4455728Swollman		rm -f /usr/sbin/compile_et
44617820Sjkh	cd ${.CURDIR}/usr.bin/mk_cmds && ${MAKE} depend && \
44717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44821922Sjkh	cd ${.CURDIR}/usr.bin/uudecode && ${MAKE} depend && \
44921922Sjkh		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45018392Speter	cd ${.CURDIR}/gnu/usr.bin/bison && ${MAKE} depend && \
45118392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45218392Speter	cd ${.CURDIR}/gnu/usr.bin/gperf && ${MAKE} depend && \
45318392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45418392Speter	cd ${.CURDIR}/gnu/usr.bin/cc && ${MAKE} depend && \
45518392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4565366Snate
45717308Speter#
45817308Speter# libraries - build and install the libraries
45917308Speter#
4602061Sjkhlibraries:
46124754Sjdp.if exists(lib/csu/i386)
46224754Sjdp	cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
46324754Sjdp		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
46424754Sjdp.endif
4658295Srgrimes.if exists(lib/libcompat)
46617820Sjkh	cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
46717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4688295Srgrimes.endif
4698489Srgrimes.if exists(lib/libncurses)
47017820Sjkh	cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
47117308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4728489Srgrimes.endif
4738489Srgrimes.if exists(lib/libtermcap)
47417820Sjkh	cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
47517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4768489Srgrimes.endif
4778295Srgrimes.if exists(gnu)
47817820Sjkh	cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
47917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4808295Srgrimes.endif
4812160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
48217820Sjkh	cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
48317308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4842160Scsgr.endif
4852279Spaul.if exists(lib)
48617820Sjkh	cd ${.CURDIR}/lib && ${MAKE} depend && \
48717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4882279Spaul.endif
48917234Sjraynard.if exists(usr.bin/lex/lib)
49017820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
49117308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
49211772Snate.endif
4933197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
49417820Sjkh	cd ${.CURDIR}/eBones/lib && ${MAKE} depend && \
49517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4962626Scsgr.endif
4978304Srgrimes.if exists(usr.sbin/pcvt/keycap)
49817820Sjkh	cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
49917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5008304Srgrimes.endif
5012061Sjkh
50217308Speter#
50317308Speter# build-tools - build and install any other tools needed to complete the
50417308Speter# compile and install.
50517308Speter#
50611806Sphkbuild-tools:
50719175Sbde.for d in				\
50821673Sjkh		share/info		\
50921536Sjmacd		gnu/usr.bin/texinfo     \
51019175Sbde		usr.bin/symorder	\
51119175Sbde		usr.bin/sgmls		\
51219175Sbde		usr.bin/sgmlfmt		\
51319175Sbde		share/sgml		\
51419175Sbde		usr.sbin/zic		\
51519175Sbde		gnu/usr.bin/awk		\
51619175Sbde		gnu/usr.bin/groff
51719175Sbde	cd ${.CURDIR}/$d && ${MAKE} depend && \
51817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
51919175Sbde.endfor
5202061Sjkh
5211594Srgrimes.include <bsd.subdir.mk>
522