Makefile revision 12485
12061Sjkh#
212485Sjkh#	$Id: Makefile,v 1.68 1995/11/25 01:28:07 peter Exp $
32061Sjkh#
42061Sjkh# Make command line options:
58854Srgrimes#	-DCLOBBER will remove /usr/include and MOST of /usr/lib
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
171594Srgrimes
182061Sjkh# Put initial settings here.
192061SjkhSUBDIR=
201594Srgrimes
217407Srgrimes# We must do include and lib first so that the perl *.ph generation
227407Srgrimes# works correctly as it uses the header files installed by this.
237108Sphk.if exists(include)
247108SphkSUBDIR+= include
257108Sphk.endif
267407Srgrimes.if exists(lib)
277407SrgrimesSUBDIR+= lib
287407Srgrimes.endif
297108Sphk
302061Sjkh.if exists(bin)
312061SjkhSUBDIR+= bin
322061Sjkh.endif
332061Sjkh.if exists(contrib)
342061SjkhSUBDIR+= contrib
352061Sjkh.endif
362061Sjkh.if exists(games)
372061SjkhSUBDIR+= games
382061Sjkh.endif
392061Sjkh.if exists(gnu)
402061SjkhSUBDIR+= gnu
412061Sjkh.endif
423197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
432626ScsgrSUBDIR+= eBones
442626Scsgr.endif
452061Sjkh.if exists(libexec)
462061SjkhSUBDIR+= libexec
472061Sjkh.endif
482061Sjkh.if exists(sbin)
492061SjkhSUBDIR+= sbin
502061Sjkh.endif
512061Sjkh.if exists(share)
522061SjkhSUBDIR+= share
532061Sjkh.endif
542061Sjkh.if exists(sys)
552061SjkhSUBDIR+= sys
562061Sjkh.endif
572061Sjkh.if exists(usr.bin)
582061SjkhSUBDIR+= usr.bin
592061Sjkh.endif
602061Sjkh.if exists(usr.sbin)
612061SjkhSUBDIR+= usr.sbin
622061Sjkh.endif
632834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
642834SwollmanSUBDIR+= secure
652834Swollman.endif
662834Swollman.if exists(lkm) && !defined(NOLKM)
672834SwollmanSUBDIR+= lkm
682834Swollman.endif
691594Srgrimes
704486Sphk# etc must be last for "distribute" to work
714486Sphk.if exists(etc) && make(distribute)
724486SphkSUBDIR+= etc
734486Sphk.endif
744486Sphk
752061Sjkh# These are last, since it is nice to at least get the base system
762061Sjkh# rebuilt before you do them.
772061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
782061SjkhSUBDIR+= local
792061Sjkh.endif
802061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
812061SjkhSUBDIR+= ports
822061Sjkh.endif
832061Sjkh
842061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR
852061Sjkh.if defined(NOOBJDIR)
862061SjkhOBJDIR=
872061Sjkh.else
882061SjkhOBJDIR=		obj
892061Sjkh.endif
9012483Speter
9112483Speter.if defined(NOCLEAN)
9212483SpeterCLEANDIR=
9312483SpeterWORLD_CLEANDIST=obj
9412483Speter.else
9512483SpeterWORLD_CLEANDIST=cleandist
962061Sjkh.if defined(NOCLEANDIR)
972061SjkhCLEANDIR=	clean
988854Srgrimes.else
992061SjkhCLEANDIR=	cleandir
1002061Sjkh.endif
10112483Speter.endif
1022061Sjkh
10312483Speterworld:	hierarchy mk $(WORLD_CLEANDIST) includes lib-tools libraries build-tools
1042061Sjkh	@echo "--------------------------------------------------------------"
1052061Sjkh	@echo " Rebuilding ${DESTDIR} The whole thing"
1062061Sjkh	@echo "--------------------------------------------------------------"
1072061Sjkh	@echo
1082061Sjkh	${MAKE} depend all install
1092061Sjkh	cd ${.CURDIR}/share/man &&		${MAKE} makedb
1102061Sjkh
11112483Speterreinstall:	hierarchy mk includes
11212483Speter	@echo "--------------------------------------------------------------"
11312483Speter	@echo " Reinstall ${DESTDIR} The whole thing"
11412483Speter	@echo "--------------------------------------------------------------"
11512483Speter	@echo
11612483Speter	${MAKE} install
11712483Speter	cd ${.CURDIR}/share/man &&		${MAKE} makedb
11812483Speter
1193030Srgrimeshierarchy:
1202061Sjkh	@echo "--------------------------------------------------------------"
1213030Srgrimes	@echo " Making hierarchy"
1222061Sjkh	@echo "--------------------------------------------------------------"
1236722Sphk	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
1242061Sjkh
1252302Spaulupdate:
1262302Spaul.if defined(SUP_UPDATE)
1272302Spaul	@echo "--------------------------------------------------------------"
1282302Spaul	@echo "Running sup"
1292302Spaul	@echo "--------------------------------------------------------------"
1302302Spaul	@sup -v ${SUPFILE}
13110760Sache.if defined(SUPFILE1)
13210760Sache	@sup -v ${SUPFILE1}
1332302Spaul.endif
13410760Sache.if defined(SUPFILE2)
13510760Sache	@sup -v ${SUPFILE2}
13610760Sache.endif
13710760Sache.endif
1382302Spaul.if defined(CVS_UPDATE)
1392302Spaul	@echo "--------------------------------------------------------------"
1402302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
1412302Spaul	@echo "--------------------------------------------------------------"
1422302Spaul	cd ${.CURDIR} &&  cvs update -P -d
1432302Spaul.endif
1442302Spaul
1452061Sjkhcleandist:
1462061Sjkh.if !defined(NOCLEANDIR)
1472061Sjkh	@echo "--------------------------------------------------------------"
1482061Sjkh	@echo " Cleaning up the source tree, and rebuilding the obj tree"
1492061Sjkh	@echo "--------------------------------------------------------------"
1502061Sjkh	@echo
1512061Sjkh	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
1522061Sjkh	if test -d /usr/obj -a ! -d $$dest; then \
1532061Sjkh		mkdir -p $$dest; \
1542061Sjkh	else \
1552061Sjkh		true; \
1562061Sjkh	fi; \
1572061Sjkh	cd $$dest && rm -rf ${SUBDIR}
1582061Sjkh	find . -name obj | xargs rm -rf
1592061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1602061Sjkh	# The cd is done as local may well be a symbolic link
1612061Sjkh	-cd local && find . -name obj | xargs rm -rf
1622061Sjkh.endif
1632061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1642061Sjkh	# The cd is done as local may well be a symbolic link
1652061Sjkh	-cd ports && find . -name obj | xargs rm -rf
1662061Sjkh.endif
1672061Sjkh	${MAKE} cleandir
1682061Sjkh	${MAKE} obj
1692061Sjkh.endif
1702061Sjkh
1713626Swollmaninstallmost:
1723626Swollman	@echo "--------------------------------------------------------------"
1733626Swollman	@echo " Installing programs only"
1743626Swollman	@echo "--------------------------------------------------------------"
1753626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
1763626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
1773626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
1783626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
1793626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
1803626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
1813626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
1827059Sroberto	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} install
1833626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
1843626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
1853626Swollman#.endif
1863626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
1873626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
1883626Swollman#.endif
1893626Swollman
1903626Swollmanmost:
1913626Swollman	@echo "--------------------------------------------------------------"
1923626Swollman	@echo " Building programs only"
1933626Swollman	@echo "--------------------------------------------------------------"
1943626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
1953626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
1963626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
1973626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
1983626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
1993626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
2003626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
2017446Ssos	cd ${.CURDIR}/gnu/usr.sbin &&	${MAKE} ${.MAKEFLAGS} all
2023626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
2033626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
2043626Swollman#.endif
2053626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
2063626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
2073626Swollman#.endif
2083626Swollman
2092061Sjkhmk:
2102061Sjkh	@echo "--------------------------------------------------------------"
2112061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
2122061Sjkh	@echo "--------------------------------------------------------------"
2132061Sjkh	cd ${.CURDIR}/share/mk &&		${MAKE} install
2142061Sjkh
2152061Sjkhincludes:
2162061Sjkh	@echo "--------------------------------------------------------------"
2172061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/include"
2182061Sjkh	@echo "--------------------------------------------------------------"
2192061Sjkh	@echo
2202061Sjkh.if defined(CLOBBER)
2217130Srgrimes	rm -rf ${DESTDIR}/usr/include/*
2227130Srgrimes	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
2237130Srgrimes		-p ${DESTDIR}/usr/include
2242061Sjkh.endif
2252061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
2264249Sache	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
2272685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
2286927Snate	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
2292685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
2303518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
2313197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
2323197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
23312166Sjkh	cd ${.CURDIR}/eBones/lib/libkrb &&	${MAKE} beforeinstall
23412485Sjkh	cd ${.CURDIR}/eBones/lib/libkadm &&	${MAKE} beforeinstall
2353197Scsgr.endif
2362061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
2372061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
2382061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
2392883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
2403429Sache	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
2413429Sache	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
2427281Srgrimes.if !defined(WANT_CSRG_LIBM)
2433242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
2443242Spaul.endif
2457171Sats	cd ${.CURDIR}/lib/libpcap &&		${MAKE} beforeinstall
2462061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
2473213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
2484942Sache	cd ${.CURDIR}/lib/libtermcap &&		${MAKE}	beforeinstall
2495749Swollman	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
2505772Swollman	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
2515865Sache	cd ${.CURDIR}/lib/libforms &&		${MAKE}	beforeinstall
2525866Sache	cd ${.CURDIR}/lib/libscsi &&		${MAKE}	beforeinstall
2532061Sjkh
2545366Snatelib-tools:
2555366Snate	@echo "--------------------------------------------------------------"
2566934Sse	@echo " Rebuilding tools needed to build the libraries"
2575366Snate	@echo "--------------------------------------------------------------"
2585366Snate	@echo
2597292Srgrimes	cd ${.CURDIR}/gnu/usr.bin/ld && \
2607292Srgrimes		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2615366Snate	cd ${.CURDIR}/usr.bin/ar && \
2625366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2635366Snate	cd ${.CURDIR}/usr.bin/ranlib && \
2645366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2655366Snate	cd ${.CURDIR}/usr.bin/nm && \
2665366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2675772Swollman	cd ${.CURDIR}/usr.bin/lex/lib && \
2685772Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2695728Swollman	cd ${.CURDIR}/usr.bin/compile_et && \
2705728Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR} && \
2715728Swollman		rm -f /usr/sbin/compile_et
2725728Swollman	cd ${.CURDIR}/usr.bin/mk_cmds && \
2735728Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2745366Snate
2752061Sjkhlibraries:
2762061Sjkh	@echo "--------------------------------------------------------------"
2772061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/lib"
2782061Sjkh	@echo "--------------------------------------------------------------"
2792061Sjkh	@echo
2802061Sjkh.if defined(CLOBBER)
2812061Sjkh	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
2822061Sjkh		xargs rm -rf
2832061Sjkh.endif
2848295Srgrimes.if exists(lib/libcompat)
2858295Srgrimes	cd ${.CURDIR}/lib/libcompat && \
28611772Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2878295Srgrimes.endif
2888489Srgrimes.if exists(lib/libncurses)
2898489Srgrimes	cd ${.CURDIR}/lib/libncurses && \
29011772Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2918489Srgrimes.endif
2928489Srgrimes.if exists(lib/libtermcap)
2938489Srgrimes	cd ${.CURDIR}/lib/libtermcap && \
29411772Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2958489Srgrimes.endif
2968295Srgrimes.if exists(gnu)
2972468Spaul	cd ${.CURDIR}/gnu/lib && \
2982061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2992273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
3002061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3018295Srgrimes.endif
3022160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
3032160Scsgr	cd ${.CURDIR}/secure/lib && \
3042160Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3052160Scsgr.endif
3062279Spaul.if exists(lib)
3074054Spst	cd ${.CURDIR}/lib/csu/i386 && \
3084054Spst		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3092061Sjkh	cd ${.CURDIR}/lib && \
3102061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3112279Spaul.endif
31211772Snate.if exists(usr.sbin/lex/lib)
3132468Spaul	cd ${.CURDIR}/usr.bin/lex/lib && \
3142468Spaul		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
31511772Snate.endif
3163197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
3172626Scsgr	cd ${.CURDIR}/eBones/des && \
3182626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
31910838Sjkh	cd ${.CURDIR}/eBones/lib && \
3202626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3212626Scsgr.endif
3228304Srgrimes.if exists(usr.sbin/pcvt/keycap)
3238304Srgrimes	cd ${.CURDIR}/usr.sbin/pcvt/keycap && \
32411772Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3258304Srgrimes.endif
3262061Sjkh
32711806Sphkbuild-tools:
3282061Sjkh	@echo "--------------------------------------------------------------"
32912106Sjfieber	@echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)"
3302061Sjkh	@echo "--------------------------------------------------------------"
3312061Sjkh	@echo
3322273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc && \
3332061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3342061Sjkh	cd ${.CURDIR}/usr.bin/make && \
3352061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
33611769Sphk	cd ${.CURDIR}/usr.bin/symorder && \
33711769Sphk		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
33812106Sjfieber	cd ${.CURDIR}/usr.bin/sgmlfmt && \
33912106Sjfieber		${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 
34012106Sjfieber	cd ${.CURDIR}/share/sgml && \
34112106Sjfieber		${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 
34210479Sdg	cd ${.CURDIR}/usr.sbin/zic && \
34310479Sdg		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
3442061Sjkh
3451594Srgrimes.include <bsd.subdir.mk>
346