Makefile revision 25313
12061Sjkh#
225313Sbde#	$Id: Makefile,v 1.121 1997/04/09 18:59:36 jdp 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
3925313Sbde# We must do share/info early so that installation of info `dir'
4025313Sbde# entries works correctly.  Do it first since it is less likely to
4125313Sbde# grow dependencies on include and lib than vice versa.
4225313Sbde.if exists(share/info)
4325313SbdeSUBDIR+= share/info
4425313Sbde.endif
4525313Sbde
4625313Sbde# We must do include and lib early so that the perl *.ph generation
477407Srgrimes# works correctly as it uses the header files installed by this.
487108Sphk.if exists(include)
497108SphkSUBDIR+= include
507108Sphk.endif
517407Srgrimes.if exists(lib)
527407SrgrimesSUBDIR+= lib
537407Srgrimes.endif
547108Sphk
552061Sjkh.if exists(bin)
562061SjkhSUBDIR+= bin
572061Sjkh.endif
5817308Speter.if exists(games) && !defined(NOGAMES)
592061SjkhSUBDIR+= games
602061Sjkh.endif
612061Sjkh.if exists(gnu)
622061SjkhSUBDIR+= gnu
632061Sjkh.endif
643197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
652626ScsgrSUBDIR+= eBones
662626Scsgr.endif
672061Sjkh.if exists(libexec)
682061SjkhSUBDIR+= libexec
692061Sjkh.endif
702061Sjkh.if exists(sbin)
712061SjkhSUBDIR+= sbin
722061Sjkh.endif
7319320Sadam.if exists(share) && !defined(NOSHARE)
742061SjkhSUBDIR+= share
752061Sjkh.endif
762061Sjkh.if exists(sys)
772061SjkhSUBDIR+= sys
782061Sjkh.endif
792061Sjkh.if exists(usr.bin)
802061SjkhSUBDIR+= usr.bin
812061Sjkh.endif
822061Sjkh.if exists(usr.sbin)
832061SjkhSUBDIR+= usr.sbin
842061Sjkh.endif
852834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
862834SwollmanSUBDIR+= secure
872834Swollman.endif
882834Swollman.if exists(lkm) && !defined(NOLKM)
892834SwollmanSUBDIR+= lkm
902834Swollman.endif
911594Srgrimes
924486Sphk# etc must be last for "distribute" to work
934486Sphk.if exists(etc) && make(distribute)
944486SphkSUBDIR+= etc
954486Sphk.endif
964486Sphk
972061Sjkh# These are last, since it is nice to at least get the base system
982061Sjkh# rebuilt before you do them.
992061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1002061SjkhSUBDIR+= local
1012061Sjkh.endif
1022061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1032061SjkhSUBDIR+= ports
1042061Sjkh.endif
1052061Sjkh
10617308Speter# Handle -DNOOBJDIR, -DNOCLEAN and -DNOCLEANDIR
1072061Sjkh.if defined(NOOBJDIR)
1082061SjkhOBJDIR=
1092061Sjkh.else
1102061SjkhOBJDIR=		obj
1112061Sjkh.endif
11212483Speter
11312483Speter.if defined(NOCLEAN)
11412483SpeterCLEANDIR=
11512483Speter.else
1162061Sjkh.if defined(NOCLEANDIR)
1172061SjkhCLEANDIR=	clean
1188854Srgrimes.else
1192061SjkhCLEANDIR=	cleandir
1202061Sjkh.endif
12112483Speter.endif
1222061Sjkh
12318714SacheSUP?=           sup
12418714SacheSUPFLAGS?=      -v
12518714Sache
12617308Speter#
12717308Speter# While building tools for bootstrapping, we dont need to waste time on
12817308Speter# profiled libraries or man pages.  This speeds things up somewhat.
12917308Speter#
13021536SjmacdMK_FLAGS=	-DNOINFO -DNOMAN -DNOPROFILE
13115603Smarkm
13217308Speter#
13317308Speter# world
13417308Speter#
13517308Speter# Attempt to rebuild and reinstall *everything*, with reasonable chance of
13617308Speter# success, regardless of how old your existing system is.
13717308Speter#
13817308Speter# >> Beware, it overwrites the local build environment! <<
13917308Speter#
14017308Speterworld:
14118362Sjkh	@echo "--------------------------------------------------------------"
14219966Sache	@echo "make world started on `LC_TIME=C date`"
14318362Sjkh	@echo "--------------------------------------------------------------"
14417308Speter.if target(pre-world)
14517308Speter	@echo "--------------------------------------------------------------"
14617308Speter	@echo " Making 'pre-world' target"
14717308Speter	@echo "--------------------------------------------------------------"
14817308Speter	cd ${.CURDIR} && ${MAKE} pre-world
14917308Speter	@echo
15016550Sjkh.endif
1512061Sjkh	@echo "--------------------------------------------------------------"
15217308Speter	@echo " Making hierarchy"
1532061Sjkh	@echo "--------------------------------------------------------------"
15417308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
1552061Sjkh	@echo
15617308Speter	@echo "--------------------------------------------------------------"
15717308Speter	@echo " Rebuilding /usr/share/mk"
15817308Speter	@echo "--------------------------------------------------------------"
15917308Speter	cd ${.CURDIR} && ${MAKE} mk
16017308Speter	@echo
16117308Speter	@echo "--------------------------------------------------------------"
16217308Speter	@echo " Cleaning up the source tree"
16317308Speter	@echo "--------------------------------------------------------------"
16417308Speter.if defined(NOCLEAN)
16517308Speter	@echo "Not cleaning anything! I sure hope you know what you are doing!"
16617308Speter.else
16717466Speter	cd ${.CURDIR} && ${MAKE} ${CLEANDIR}
16817308Speter.endif
16917308Speter	@echo
17017466Speter.if !defined(NOOBJDIR)
17117308Speter	@echo "--------------------------------------------------------------"
17217308Speter	@echo " Rebuilding the obj tree"
17317308Speter	@echo "--------------------------------------------------------------"
17417308Speter	cd ${.CURDIR} && ${MAKE} obj
17517466Speter	@echo
17617308Speter.endif
17717308Speter	@echo "--------------------------------------------------------------"
17817308Speter	@echo " Rebuilding bootstrap tools"
17917308Speter	@echo "--------------------------------------------------------------"
18017308Speter	cd ${.CURDIR} && ${MAKE} bootstrap
18117308Speter	@echo
18217308Speter	@echo "--------------------------------------------------------------"
18317308Speter	@echo " Rebuilding tools necessary to build the include files"
18417308Speter	@echo "--------------------------------------------------------------"
18517308Speter	cd ${.CURDIR} && ${MAKE} include-tools
18617308Speter	@echo
18717308Speter	@echo "--------------------------------------------------------------"
18817308Speter	@echo " Rebuilding /usr/include"
18917308Speter	@echo "--------------------------------------------------------------"
19017308Speter	cd ${.CURDIR} && ${MAKE} includes
19117308Speter	@echo
19217308Speter	@echo "--------------------------------------------------------------"
19317308Speter	@echo " Rebuilding tools needed to build the libraries"
19417308Speter	@echo "--------------------------------------------------------------"
19517308Speter	cd ${.CURDIR} && ${MAKE} lib-tools
19617308Speter	@echo
19717308Speter	@echo "--------------------------------------------------------------"
19817308Speter	@echo " Rebuilding /usr/lib"
19917308Speter	@echo "--------------------------------------------------------------"
20017308Speter	cd ${.CURDIR} && ${MAKE} libraries
20117308Speter	@echo
20217308Speter	@echo "--------------------------------------------------------------"
20318392Speter	@echo " Rebuilding sgml tools, symorder, groff and zic(8)"
20417308Speter	@echo "--------------------------------------------------------------"
20517308Speter	cd ${.CURDIR} && ${MAKE} build-tools
20617308Speter	@echo
20717308Speter	@echo "--------------------------------------------------------------"
20817962Speter	@echo " Rebuilding dependencies"
20917308Speter	@echo "--------------------------------------------------------------"
21017962Speter	cd ${.CURDIR} && ${MAKE} depend
21117962Speter	@echo
21217962Speter	@echo "--------------------------------------------------------------"
21317962Speter	@echo " Building everything.."
21417962Speter	@echo "--------------------------------------------------------------"
21517962Speter	cd ${.CURDIR} && ${MAKE} all
21617962Speter	@echo
21717962Speter	@echo "--------------------------------------------------------------"
21817962Speter	@echo " Installing everything.."
21917962Speter	@echo "--------------------------------------------------------------"
22017962Speter	cd ${.CURDIR} && ${MAKE} install
22117962Speter	@echo
22217962Speter	@echo "--------------------------------------------------------------"
22317962Speter	@echo " Rebuilding man page indexes"
22417962Speter	@echo "--------------------------------------------------------------"
22517308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
22616550Sjkh.if target(post-world)
22717308Speter	@echo
22817308Speter	@echo "--------------------------------------------------------------"
22917308Speter	@echo " Making 'post-world' target"
23017308Speter	@echo "--------------------------------------------------------------"
23116550Sjkh	cd ${.CURDIR} && ${MAKE} post-world
23216550Sjkh.endif
23317308Speter	@echo
23417308Speter	@echo "--------------------------------------------------------------"
23519966Sache	@echo "make world completed on `LC_TIME=C date`"
23617962Speter	@echo "--------------------------------------------------------------"
2372061Sjkh
23817308Speter#
23917308Speter# reinstall
24017308Speter#
24117308Speter# If you have a build server, you can NFS mount the source and obj directories
24217308Speter# and do a 'make reinstall' on the *client* to install new binaries from the
24317308Speter# most recent server build.
24417308Speter#
24517308Speterreinstall:
24612483Speter	@echo "--------------------------------------------------------------"
24717308Speter	@echo " Making hierarchy"
24812483Speter	@echo "--------------------------------------------------------------"
24917308Speter	cd ${.CURDIR} && ${MAKE} hierarchy
25012483Speter	@echo
2512061Sjkh	@echo "--------------------------------------------------------------"
25217308Speter	@echo " Rebuilding /usr/share/mk"
2532061Sjkh	@echo "--------------------------------------------------------------"
25417308Speter	cd ${.CURDIR} && ${MAKE} mk
25517308Speter	@echo
25617308Speter	@echo "--------------------------------------------------------------"
25717962Speter	@echo " Installing everything.."
25817962Speter	@echo "--------------------------------------------------------------"
25917308Speter	cd ${.CURDIR} && ${MAKE} install
26017962Speter	@echo
26117962Speter	@echo "--------------------------------------------------------------"
26217962Speter	@echo " Rebuilding man page indexes"
26317962Speter	@echo "--------------------------------------------------------------"
26417308Speter	cd ${.CURDIR}/share/man && ${MAKE} makedb
2652061Sjkh
26617308Speter
26717308Speter#
26817308Speter# update
26917308Speter#
27017308Speter# Update the source tree, by running sup and/or running cvs to update to the
27117308Speter# latest copy.
27217308Speter#
2732302Spaulupdate:
2742302Spaul.if defined(SUP_UPDATE)
2752302Spaul	@echo "--------------------------------------------------------------"
2762302Spaul	@echo "Running sup"
2772302Spaul	@echo "--------------------------------------------------------------"
27818714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE}
27910760Sache.if defined(SUPFILE1)
28018714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE1}
2812302Spaul.endif
28210760Sache.if defined(SUPFILE2)
28318714Sache	@${SUP} ${SUPFLAGS} ${SUPFILE2}
28410760Sache.endif
28510760Sache.endif
2862302Spaul.if defined(CVS_UPDATE)
2872302Spaul	@echo "--------------------------------------------------------------"
2882302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
2892302Spaul	@echo "--------------------------------------------------------------"
29016591Spst	cd ${.CURDIR} &&  cvs -q update -P -d
2912302Spaul.endif
2922302Spaul
29317308Speter
29417308Speter#
29517308Speter# most
29617308Speter#
29717308Speter# Build most of the user binaries on the existing system libs and includes.
29817308Speter#
29917308Spetermost:
3002061Sjkh	@echo "--------------------------------------------------------------"
30117308Speter	@echo " Building programs only"
3022061Sjkh	@echo "--------------------------------------------------------------"
30317308Speter	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
30417308Speter	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
30517308Speter	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
30617308Speter	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
30717308Speter	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
30817308Speter	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
30917308Speter	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
31017308Speter	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
31117308Speter#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
31217308Speter#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
31317308Speter#.endif
31417308Speter#.if !defined(NOSECURE) && !defined(NOCRYPT)
31517308Speter#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
31617308Speter#.endif
3172061Sjkh
31817308Speter#
31917308Speter# installmost
32017308Speter#
32117308Speter# Install the binaries built by the 'most' target.  This does not include
32217308Speter# libraries or include files.
32317308Speter#
3243626Swollmaninstallmost:
3253626Swollman	@echo "--------------------------------------------------------------"
3263626Swollman	@echo " Installing programs only"
3273626Swollman	@echo "--------------------------------------------------------------"
3283626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
3293626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
3303626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
3313626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
3323626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
3333626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
3343626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
3357059Sroberto	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
3363626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
3373626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
3383626Swollman#.endif
3393626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
3403626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
3413626Swollman#.endif
3423626Swollman
34317308Speter#
34417308Speter# ------------------------------------------------------------------------
34517308Speter#
34617308Speter# From here onwards are utility targets used by the 'make world' and
34717308Speter# related targets.  If your 'world' breaks, you may like to try to fix
34817308Speter# the problem and manually run the following targets to attempt to
34917308Speter# complete the build.  Beware, this is *not* guaranteed to work, you
35017308Speter# need to have a pretty good grip on the current state of the system
35117308Speter# to attempt to manually finish it.  If in doubt, 'make world' again.
35217308Speter#
3533626Swollman
35417308Speter#
35517308Speter# heirarchy - ensure that all the needed directories are present
35617308Speter#
35717308Speterhierarchy:
35817308Speter	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
35917308Speter
36017308Speter#
36117308Speter# mk - update the /usr/share/mk makefiles.
36217308Speter#
3632061Sjkhmk:
36416663Sjkh	cd ${.CURDIR}/share/mk &&	${MAKE} install
3652061Sjkh
36617308Speter#
36717308Speter# bootstrap - [re]build tools needed to run the actual build, this includes
36817308Speter# tools needed by 'make depend', as some tools are needed to generate source
36917308Speter# for the dependency information to be gathered from.
37017308Speter#
37117308Speterbootstrap:
37217820Sjkh	cd ${.CURDIR}/usr.bin/make && ${MAKE} depend && \
37317308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
37417820Sjkh	cd ${.CURDIR}/usr.bin/xinstall && ${MAKE} depend && \
37517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
37617820Sjkh	cd ${.CURDIR}/usr.bin/lex && ${MAKE} bootstrap && ${MAKE} depend && \
37717467Speter		${MAKE} ${MK_FLAGS} -DNOLIB all install ${CLEANDIR} ${OBJDIR}
37817308Speter
37917308Speter#
38017308Speter# include-tools - generally the same as 'bootstrap', except that it's for
38117308Speter# things that are specifically needed to generate include files.
38217308Speter#
38317308Speter# XXX should be merged with bootstrap, it's not worth keeeping them seperate
38417308Speter#
38517308Speterinclude-tools:
38617820Sjkh	cd ${.CURDIR}/usr.bin/rpcgen && ${MAKE} depend && \
38717820Sjkh		${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR}
38817308Speter
38917308Speter#
39017308Speter# includes - possibly generate and install the include files.
39117308Speter#
39214119Speterincludes:
3932061Sjkh.if defined(CLOBBER)
3947130Srgrimes	rm -rf ${DESTDIR}/usr/include/*
3957130Srgrimes	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
3967130Srgrimes		-p ${DESTDIR}/usr/include
3972061Sjkh.endif
39817962Speter	cd ${.CURDIR}/include/rpcsvc &&		${MAKE} all
3992061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
40017308Speter	cd ${.CURDIR}/gnu/include &&		${MAKE} install
4012685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
4026927Snate	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
40318674Speter	cd ${.CURDIR}/gnu/lib/libstdc++ &&      ${MAKE} beforeinstall
4042685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
4053518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
4063197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
4073197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
40812166Sjkh	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
40912485Sjkh	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
4103197Scsgr.endif
41125313Sbde	cd ${.CURDIR}/lib/csu/i386 &&		${MAKE} beforeinstall
4122061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
4132061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
4142061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
41516786Snate	cd ${.CURDIR}/lib/libftpio &&		${MAKE} beforeinstall
4162883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
41717308Speter	cd ${.CURDIR}/lib/libmytinfo &&         ${MAKE} beforeinstall
41817308Speter	cd ${.CURDIR}/lib/libncurses &&		${MAKE} beforeinstall
4197281Srgrimes.if !defined(WANT_CSRG_LIBM)
4203242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
4213242Spaul.endif
4227171Sats	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
4232061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
4243213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
42517308Speter	cd ${.CURDIR}/lib/libtcl &&		${MAKE} beforeinstall
42617308Speter	cd ${.CURDIR}/lib/libtermcap &&		${MAKE} beforeinstall
4275749Swollman	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
4285772Swollman	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
42917308Speter	cd ${.CURDIR}/lib/libscsi &&		${MAKE} beforeinstall
43017308Speter	cd ${.CURDIR}/lib/libutil &&		${MAKE} beforeinstall
4312061Sjkh
43217308Speter#
43317308Speter# lib-tools - build tools to compile and install the libraries.
43417308Speter#
4355366Snatelib-tools:
43617820Sjkh	cd ${.CURDIR}/usr.bin/tsort && ${MAKE} depend && \
43717467Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
43817820Sjkh	cd ${.CURDIR}/gnu/usr.bin/ld && ${MAKE} depend && \
43917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44018674Speter	cd ${.CURDIR}/gnu/usr.bin/as && ${MAKE} depend && \
44118674Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44217820Sjkh	cd ${.CURDIR}/usr.bin/ar && ${MAKE} depend && \
44317308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44417820Sjkh	cd ${.CURDIR}/usr.bin/ranlib && ${MAKE} depend && \
44517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44617820Sjkh	cd ${.CURDIR}/usr.bin/nm && ${MAKE} depend && \
44717308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
44817820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
44917308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45017820Sjkh	cd ${.CURDIR}/usr.bin/compile_et && ${MAKE} depend && \
45117308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR} && \
4525728Swollman		rm -f /usr/sbin/compile_et
45317820Sjkh	cd ${.CURDIR}/usr.bin/mk_cmds && ${MAKE} depend && \
45417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45521922Sjkh	cd ${.CURDIR}/usr.bin/uudecode && ${MAKE} depend && \
45621922Sjkh		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45718392Speter	cd ${.CURDIR}/gnu/usr.bin/bison && ${MAKE} depend && \
45818392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
45918392Speter	cd ${.CURDIR}/gnu/usr.bin/gperf && ${MAKE} depend && \
46018392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
46118392Speter	cd ${.CURDIR}/gnu/usr.bin/cc && ${MAKE} depend && \
46218392Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4635366Snate
46417308Speter#
46517308Speter# libraries - build and install the libraries
46617308Speter#
4672061Sjkhlibraries:
46824754Sjdp.if exists(lib/csu/i386)
46924754Sjdp	cd ${.CURDIR}/lib/csu/i386 && ${MAKE} depend && \
47024754Sjdp		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
47124754Sjdp.endif
4728295Srgrimes.if exists(lib/libcompat)
47317820Sjkh	cd ${.CURDIR}/lib/libcompat && ${MAKE} depend && \
47417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4758295Srgrimes.endif
4768489Srgrimes.if exists(lib/libncurses)
47717820Sjkh	cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
47817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4798489Srgrimes.endif
4808489Srgrimes.if exists(lib/libtermcap)
48117820Sjkh	cd ${.CURDIR}/lib/libtermcap && ${MAKE} depend && \
48217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4838489Srgrimes.endif
4848295Srgrimes.if exists(gnu)
48517820Sjkh	cd ${.CURDIR}/gnu/lib && ${MAKE} depend && \
48617308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4878295Srgrimes.endif
4882160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
48917820Sjkh	cd ${.CURDIR}/secure/lib && ${MAKE} depend && \
49017308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4912160Scsgr.endif
4922279Spaul.if exists(lib)
49317820Sjkh	cd ${.CURDIR}/lib && ${MAKE} depend && \
49417308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
4952279Spaul.endif
49617234Sjraynard.if exists(usr.bin/lex/lib)
49717820Sjkh	cd ${.CURDIR}/usr.bin/lex/lib && ${MAKE} depend && \
49817308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
49911772Snate.endif
5003197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
50117820Sjkh	cd ${.CURDIR}/eBones/lib && ${MAKE} depend && \
50217308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5032626Scsgr.endif
5048304Srgrimes.if exists(usr.sbin/pcvt/keycap)
50517820Sjkh	cd ${.CURDIR}/usr.sbin/pcvt/keycap && ${MAKE} depend && \
50617308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
5078304Srgrimes.endif
5082061Sjkh
50917308Speter#
51017308Speter# build-tools - build and install any other tools needed to complete the
51117308Speter# compile and install.
51217308Speter#
51311806Sphkbuild-tools:
51419175Sbde.for d in				\
51521673Sjkh		share/info		\
51621536Sjmacd		gnu/usr.bin/texinfo     \
51719175Sbde		usr.bin/symorder	\
51819175Sbde		usr.bin/sgmls		\
51919175Sbde		usr.bin/sgmlfmt		\
52019175Sbde		share/sgml		\
52119175Sbde		usr.sbin/zic		\
52219175Sbde		gnu/usr.bin/awk		\
52319175Sbde		gnu/usr.bin/groff
52419175Sbde	cd ${.CURDIR}/$d && ${MAKE} depend && \
52517308Speter		${MAKE} ${MK_FLAGS} all install ${CLEANDIR} ${OBJDIR}
52619175Sbde.endfor
5272061Sjkh
5281594Srgrimes.include <bsd.subdir.mk>
529