Makefile revision 6927
12061Sjkh#
26927Snate#	$Id: Makefile,v 1.41 1995/02/26 01:27:27 phk Exp $
32061Sjkh#
42061Sjkh# Make command line options:
52061Sjkh#	-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
112160Scsgr#	-DNOCRYPT will prevent building of crypt versions
122834Swollman#	-DNOLKM do not build loadable kernel modules
132061Sjkh#	-DNOOBJDIR do not run ``${MAKE} obj''
142061Sjkh#	-DNOPROFILE do not build profiled libraries
152160Scsgr#	-DNOSECURE do not go into secure subdir
161594Srgrimes
172061Sjkh# Put initial settings here.
182061SjkhSUBDIR=
191594Srgrimes
202061Sjkh.if exists(bin)
212061SjkhSUBDIR+= bin
222061Sjkh.endif
232061Sjkh.if exists(contrib)
242061SjkhSUBDIR+= contrib
252061Sjkh.endif
262061Sjkh.if exists(games)
272061SjkhSUBDIR+= games
282061Sjkh.endif
292061Sjkh.if exists(gnu)
302061SjkhSUBDIR+= gnu
312061Sjkh.endif
322061Sjkh.if exists(include)
332061SjkhSUBDIR+= include
342061Sjkh.endif
352061Sjkh.if exists(lib)
362061SjkhSUBDIR+= lib
372061Sjkh.endif
383197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
392626ScsgrSUBDIR+= eBones
402626Scsgr.endif
412061Sjkh.if exists(libexec)
422061SjkhSUBDIR+= libexec
432061Sjkh.endif
442061Sjkh.if exists(sbin)
452061SjkhSUBDIR+= sbin
462061Sjkh.endif
472061Sjkh.if exists(share)
482061SjkhSUBDIR+= share
492061Sjkh.endif
502061Sjkh.if exists(sys)
512061SjkhSUBDIR+= sys
522061Sjkh.endif
532061Sjkh.if exists(usr.bin)
542061SjkhSUBDIR+= usr.bin
552061Sjkh.endif
562061Sjkh.if exists(usr.sbin)
572061SjkhSUBDIR+= usr.sbin
582061Sjkh.endif
592834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
602834SwollmanSUBDIR+= secure
612834Swollman.endif
622834Swollman.if exists(lkm) && !defined(NOLKM)
632834SwollmanSUBDIR+= lkm
642834Swollman.endif
651594Srgrimes
664486Sphk# etc must be last for "distribute" to work
674486Sphk.if exists(etc) && make(distribute)
684486SphkSUBDIR+= etc
694486Sphk.endif
704486Sphk
712061Sjkh# These are last, since it is nice to at least get the base system
722061Sjkh# rebuilt before you do them.
732061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
742061SjkhSUBDIR+= local
752061Sjkh.endif
762061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
772061SjkhSUBDIR+= ports
782061Sjkh.endif
792061Sjkh
802061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR
812061Sjkh.if defined(NOOBJDIR)
822061SjkhOBJDIR=
832061Sjkh.else
842061SjkhOBJDIR=		obj
852061Sjkh.endif
862061Sjkh.if defined(NOCLEANDIR)
872061SjkhCLEANDIR=	clean
882061Sjkh.else 
892061SjkhCLEANDIR=	cleandir
902061Sjkh.endif
912061Sjkh
925511Sjkhworld:	hierarchy mk cleandist includes lib-tools libraries tools
932061Sjkh	@echo "--------------------------------------------------------------"
942061Sjkh	@echo " Rebuilding ${DESTDIR} The whole thing"
952061Sjkh	@echo "--------------------------------------------------------------"
962061Sjkh	@echo
972061Sjkh	${MAKE} depend all install
982061Sjkh	cd ${.CURDIR}/share/man &&		${MAKE} makedb
992061Sjkh
1003030Srgrimeshierarchy:
1012061Sjkh	@echo "--------------------------------------------------------------"
1023030Srgrimes	@echo " Making hierarchy"
1032061Sjkh	@echo "--------------------------------------------------------------"
1046722Sphk	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
1052061Sjkh
1062302Spaulupdate:
1072302Spaul.if defined(SUP_UPDATE)
1082302Spaul	@echo "--------------------------------------------------------------"
1092302Spaul	@echo "Running sup"
1102302Spaul	@echo "--------------------------------------------------------------"
1112302Spaul	@sup -v ${SUPFILE}
1122302Spaul.endif
1132302Spaul.if defined(CVS_UPDATE)
1142302Spaul	@echo "--------------------------------------------------------------"
1152302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
1162302Spaul	@echo "--------------------------------------------------------------"
1172302Spaul	cd ${.CURDIR} &&  cvs update -P -d
1182302Spaul.endif
1192302Spaul
1202061Sjkhcleandist:
1212061Sjkh.if !defined(NOCLEANDIR)
1222061Sjkh	@echo "--------------------------------------------------------------"
1232061Sjkh	@echo " Cleaning up the source tree, and rebuilding the obj tree"
1242061Sjkh	@echo "--------------------------------------------------------------"
1252061Sjkh	@echo
1262061Sjkh	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
1272061Sjkh	if test -d /usr/obj -a ! -d $$dest; then \
1282061Sjkh		mkdir -p $$dest; \
1292061Sjkh	else \
1302061Sjkh		true; \
1312061Sjkh	fi; \
1322061Sjkh	cd $$dest && rm -rf ${SUBDIR}
1332061Sjkh	find . -name obj | xargs rm -rf
1342061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1352061Sjkh	# The cd is done as local may well be a symbolic link
1362061Sjkh	-cd local && find . -name obj | xargs rm -rf
1372061Sjkh.endif
1382061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1392061Sjkh	# The cd is done as local may well be a symbolic link
1402061Sjkh	-cd ports && find . -name obj | xargs rm -rf
1412061Sjkh.endif
1422061Sjkh	${MAKE} cleandir
1432061Sjkh	${MAKE} obj
1442061Sjkh.endif
1452061Sjkh
1463626Swollmaninstallmost:
1473626Swollman	@echo "--------------------------------------------------------------"
1483626Swollman	@echo " Installing programs only"
1493626Swollman	@echo "--------------------------------------------------------------"
1503626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
1513626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
1523626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
1533626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
1543626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
1553626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
1563626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
1573626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
1583626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
1593626Swollman#.endif
1603626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
1613626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
1623626Swollman#.endif
1633626Swollman
1643626Swollmanmost:
1653626Swollman	@echo "--------------------------------------------------------------"
1663626Swollman	@echo " Building programs only"
1673626Swollman	@echo "--------------------------------------------------------------"
1683626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
1693626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
1703626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
1713626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
1723626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
1733626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
1743626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
1753626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
1763626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
1773626Swollman#.endif
1783626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
1793626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
1803626Swollman#.endif
1813626Swollman
1822061Sjkhmk:
1832061Sjkh	@echo "--------------------------------------------------------------"
1842061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
1852061Sjkh	@echo "--------------------------------------------------------------"
1862061Sjkh	cd ${.CURDIR}/share/mk &&		${MAKE} install
1872061Sjkh
1882061Sjkhincludes:
1892061Sjkh	@echo "--------------------------------------------------------------"
1902061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/include"
1912061Sjkh	@echo "--------------------------------------------------------------"
1922061Sjkh	@echo
1932061Sjkh.if defined(CLOBBER)
1942061Sjkh	rm -rf ${DESTDIR}/usr/include
1952061Sjkh	mkdir ${DESTDIR}/usr/include
1962061Sjkh	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
1972061Sjkh	chmod 755 ${DESTDIR}/usr/include
1982061Sjkh.endif
1992061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
2004249Sache	cd ${.CURDIR}/gnu/include &&		${MAKE}	install
2012685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
2026927Snate	cd ${.CURDIR}/gnu/lib/libregex &&	${MAKE} beforeinstall
2032685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
2043518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
2053197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
2063197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
2073197Scsgr.endif
2082061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
2092061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
2102061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
2112883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
2123429Sache	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
2133429Sache	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
2143242Spaul.if defined(WANT_MSUN)
2153242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
2163242Spaul.endif
2172061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
2183213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
2194942Sache	cd ${.CURDIR}/lib/libtermcap &&		${MAKE}	beforeinstall
2205749Swollman	cd ${.CURDIR}/lib/libcom_err &&		${MAKE} beforeinstall
2215772Swollman	cd ${.CURDIR}/lib/libss &&		${MAKE} beforeinstall
2225865Sache	cd ${.CURDIR}/lib/libforms &&		${MAKE}	beforeinstall
2235866Sache	cd ${.CURDIR}/lib/libscsi &&		${MAKE}	beforeinstall
2242061Sjkh
2255366Snatelib-tools:
2265366Snate	@echo "--------------------------------------------------------------"
2275366Snate	@echo " Rebuilding tools needed to build the libraries
2285366Snate	@echo "--------------------------------------------------------------"
2295366Snate	@echo
2305366Snate	cd ${.CURDIR}/usr.bin/ar && \
2315366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2325366Snate	cd ${.CURDIR}/usr.bin/ranlib && \
2335366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2345366Snate	cd ${.CURDIR}/usr.bin/nm && \
2355366Snate		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2365772Swollman	cd ${.CURDIR}/usr.bin/lex/lib && \
2375772Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2385728Swollman	cd ${.CURDIR}/usr.bin/compile_et && \
2395728Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR} && \
2405728Swollman		rm -f /usr/sbin/compile_et
2415728Swollman	cd ${.CURDIR}/usr.bin/mk_cmds && \
2425728Swollman		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2435366Snate
2442061Sjkhlibraries:
2452061Sjkh	@echo "--------------------------------------------------------------"
2462061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/lib"
2472061Sjkh	@echo "--------------------------------------------------------------"
2482061Sjkh	@echo
2492061Sjkh.if defined(CLOBBER)
2502061Sjkh	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
2512061Sjkh		xargs rm -rf
2522061Sjkh.endif
2532468Spaul	cd ${.CURDIR}/gnu/lib && \
2542061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2552273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
2562061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2572160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
2582160Scsgr	cd ${.CURDIR}/secure/lib && \
2592160Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2602160Scsgr.endif
2612279Spaul.if exists(lib)
2624054Spst	cd ${.CURDIR}/lib/csu/i386 && \
2634054Spst		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2642061Sjkh	cd ${.CURDIR}/lib && \
2652061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2662279Spaul.endif
2672468Spaul	cd ${.CURDIR}/usr.bin/lex/lib && \
2682468Spaul		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2693197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
2702626Scsgr	cd ${.CURDIR}/eBones/des && \
2712626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2722626Scsgr	cd ${.CURDIR}/eBones/acl && \
2732626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2742626Scsgr	cd ${.CURDIR}/eBones/kdb && \
2752626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2762626Scsgr	cd ${.CURDIR}/eBones/krb && \
2772626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2782626Scsgr.endif
2792061Sjkh
2802061Sjkhtools:
2812061Sjkh	@echo "--------------------------------------------------------------"
2822061Sjkh	@echo " Rebuilding ${DESTDIR} Compiler and Make"
2832061Sjkh	@echo "--------------------------------------------------------------"
2842061Sjkh	@echo
2852273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc && \
2862061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2872061Sjkh	cd ${.CURDIR}/usr.bin/make && \
2882061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2892061Sjkh
2901594Srgrimes.include <bsd.subdir.mk>
291