Makefile revision 3626
12061Sjkh#
23626Swollman#	$Id: Makefile,v 1.26 1994/10/11 23:33:00 ache 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# XXX1	-DMAKE_KERBEROS to build KerberosIV
93197Scsgr#	-DMAKE_EBONES to build eBones (KerberosIV)
103197Scsgr#
112061Sjkh#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
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
172061Sjkh#
183197Scsgr#
193197Scsgr# XXX1	The kerberos IV off the 4.4-Lite tape (src/kerberosIV)
203197Scsgr#	will not build successfully yet.  MAKE_KERBEROS should not be
213197Scsgr#	defined.
221594Srgrimes
232061Sjkh# Put initial settings here.
242061SjkhSUBDIR=
251594Srgrimes
262061Sjkh.if exists(bin)
272061SjkhSUBDIR+= bin
282061Sjkh.endif
292061Sjkh.if exists(contrib)
302061SjkhSUBDIR+= contrib
312061Sjkh.endif
322061Sjkh.if exists(etc)
333029Srgrimes# XXX until etc vs release conversion is done
343029Srgrimes# SUBDIR+= etc
352061Sjkh.endif
362061Sjkh.if exists(games)
372061SjkhSUBDIR+= games
382061Sjkh.endif
392061Sjkh.if exists(gnu)
402061SjkhSUBDIR+= gnu
412061Sjkh.endif
422061Sjkh.if exists(include)
432061SjkhSUBDIR+= include
442061Sjkh.endif
452061Sjkh.if exists(lib)
462061SjkhSUBDIR+= lib
472061Sjkh.endif
483197Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
492061SjkhSUBDIR+= kerberosIV
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
792061Sjkh# These are last, since it is nice to at least get the base system
802061Sjkh# rebuilt before you do them.
812061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
822061SjkhSUBDIR+= local
832061Sjkh.endif
842061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
852061SjkhSUBDIR+= ports
862061Sjkh.endif
872061Sjkh
882061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR
892061Sjkh.if defined(NOOBJDIR)
902061SjkhOBJDIR=
912061Sjkh.else
922061SjkhOBJDIR=		obj
932061Sjkh.endif
942061Sjkh.if defined(NOCLEANDIR)
952061SjkhCLEANDIR=	clean
962061Sjkh.else 
972061SjkhCLEANDIR=	cleandir
982061Sjkh.endif
992061Sjkh
1003030Srgrimesworld:	hierarchy cleandist mk includes libraries tools
1012061Sjkh	@echo "--------------------------------------------------------------"
1022061Sjkh	@echo " Rebuilding ${DESTDIR} The whole thing"
1032061Sjkh	@echo "--------------------------------------------------------------"
1042061Sjkh	@echo
1052061Sjkh	${MAKE} depend all install
1062061Sjkh	cd ${.CURDIR}/share/man &&		${MAKE} makedb
1072061Sjkh
1082302Spaul
1093030Srgrimeshierarchy:
1102061Sjkh	@echo "--------------------------------------------------------------"
1113030Srgrimes	@echo " Making hierarchy"
1122061Sjkh	@echo "--------------------------------------------------------------"
1133030Srgrimes	cd ${.CURDIR}/release &&		${MAKE} hierarchy
1142061Sjkh
1152302Spaulupdate:
1162302Spaul.if defined(SUP_UPDATE)
1172302Spaul	@echo "--------------------------------------------------------------"
1182302Spaul	@echo "Running sup"
1192302Spaul	@echo "--------------------------------------------------------------"
1202302Spaul	@sup -v ${SUPFILE}
1212302Spaul.endif
1222302Spaul.if defined(CVS_UPDATE)
1232302Spaul	@echo "--------------------------------------------------------------"
1242302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
1252302Spaul	@echo "--------------------------------------------------------------"
1262302Spaul	cd ${.CURDIR} &&  cvs update -P -d
1272302Spaul.endif
1282302Spaul
1292061Sjkhcleandist:
1302061Sjkh.if !defined(NOCLEANDIR)
1312061Sjkh	@echo "--------------------------------------------------------------"
1322061Sjkh	@echo " Cleaning up the source tree, and rebuilding the obj tree"
1332061Sjkh	@echo "--------------------------------------------------------------"
1342061Sjkh	@echo
1352061Sjkh	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
1362061Sjkh	if test -d /usr/obj -a ! -d $$dest; then \
1372061Sjkh		mkdir -p $$dest; \
1382061Sjkh	else \
1392061Sjkh		true; \
1402061Sjkh	fi; \
1412061Sjkh	cd $$dest && rm -rf ${SUBDIR}
1422061Sjkh	find . -name obj | xargs rm -rf
1432061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1442061Sjkh	# The cd is done as local may well be a symbolic link
1452061Sjkh	-cd local && find . -name obj | xargs rm -rf
1462061Sjkh.endif
1472061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1482061Sjkh	# The cd is done as local may well be a symbolic link
1492061Sjkh	-cd ports && find . -name obj | xargs rm -rf
1502061Sjkh.endif
1512061Sjkh	${MAKE} cleandir
1522061Sjkh	${MAKE} obj
1532061Sjkh.endif
1542061Sjkh
1553626Swollmaninstallmost:
1563626Swollman	@echo "--------------------------------------------------------------"
1573626Swollman	@echo " Installing programs only"
1583626Swollman	@echo "--------------------------------------------------------------"
1593626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} install
1603626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} install
1613626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} install
1623626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} install
1633626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} install
1643626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} install
1653626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} install
1663626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
1673626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} installmost
1683626Swollman#.endif
1693626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
1703626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} installmost
1713626Swollman#.endif
1723626Swollman
1733626Swollmanmost:
1743626Swollman	@echo "--------------------------------------------------------------"
1753626Swollman	@echo " Building programs only"
1763626Swollman	@echo "--------------------------------------------------------------"
1773626Swollman	cd ${.CURDIR}/bin	&&	${MAKE} ${.MAKEFLAGS} all
1783626Swollman	cd ${.CURDIR}/sbin	&&	${MAKE} ${.MAKEFLAGS} all
1793626Swollman	cd ${.CURDIR}/libexec	&&	${MAKE} ${.MAKEFLAGS} all
1803626Swollman	cd ${.CURDIR}/usr.bin	&&	${MAKE} ${.MAKEFLAGS} all
1813626Swollman	cd ${.CURDIR}/usr.sbin	&&	${MAKE} ${.MAKEFLAGS} all
1823626Swollman	cd ${.CURDIR}/gnu/libexec &&	${MAKE} ${.MAKEFLAGS} all
1833626Swollman	cd ${.CURDIR}/gnu/usr.bin &&	${MAKE} ${.MAKEFLAGS} all
1843626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT)
1853626Swollman#	cd ${.CURDIR}/eBones	&&	${MAKE} ${.MAKEFLAGS} most
1863626Swollman#.endif
1873626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT)
1883626Swollman#	cd ${.CURDIR}/secure	&&	${MAKE} ${.MAKEFLAGS} most
1893626Swollman#.endif
1903626Swollman
1912061Sjkhmk:
1922061Sjkh	@echo "--------------------------------------------------------------"
1932061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
1942061Sjkh	@echo "--------------------------------------------------------------"
1952061Sjkh	cd ${.CURDIR}/share/mk &&		${MAKE} install
1962061Sjkh
1972061Sjkhincludes:
1982061Sjkh	@echo "--------------------------------------------------------------"
1992061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/include"
2002061Sjkh	@echo "--------------------------------------------------------------"
2012061Sjkh	@echo
2022061Sjkh.if defined(CLOBBER)
2032061Sjkh	rm -rf ${DESTDIR}/usr/include
2042061Sjkh	mkdir ${DESTDIR}/usr/include
2052061Sjkh	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
2062061Sjkh	chmod 755 ${DESTDIR}/usr/include
2072061Sjkh.endif
2082061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
2092685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
2102685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
2113518Sache	cd ${.CURDIR}/gnu/lib/libdialog &&      ${MAKE} beforeinstall
2123197Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
2132061Sjkh	cd ${.CURDIR}/kerberosIV/include &&	${MAKE} install
2142061Sjkh.endif
2153197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
2163197Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
2173197Scsgr.endif
2182061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
2192061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
2202061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
2212883Sphk	cd ${.CURDIR}/lib/libmd &&		${MAKE} beforeinstall
2223429Sache	cd ${.CURDIR}/lib/libmytinfo &&		${MAKE}	beforeinstall
2233429Sache	cd ${.CURDIR}/lib/libncurses &&		${MAKE}	beforeinstall
2243242Spaul.if defined(WANT_MSUN)
2253242Spaul	cd ${.CURDIR}/lib/msun &&		${MAKE} beforeinstall
2263242Spaul.endif
2272061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
2283213Spst	cd ${.CURDIR}/lib/libskey &&		${MAKE} beforeinstall
2292061Sjkh
2302061Sjkhlibraries:
2312061Sjkh	@echo "--------------------------------------------------------------"
2322061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/lib"
2332061Sjkh	@echo "--------------------------------------------------------------"
2342061Sjkh	@echo
2352061Sjkh.if defined(CLOBBER)
2362061Sjkh	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
2372061Sjkh		xargs rm -rf
2382061Sjkh.endif
2392468Spaul	cd ${.CURDIR}/gnu/lib && \
2402061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2412273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
2422061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2432160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
2442160Scsgr	cd ${.CURDIR}/secure/lib && \
2452160Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2462160Scsgr.endif
2472279Spaul.if exists(lib)
2482061Sjkh	cd ${.CURDIR}/lib && \
2492061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2502279Spaul.endif
2512468Spaul	cd ${.CURDIR}/usr.bin/lex/lib && \
2522468Spaul		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2533197Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && defined(MAKE_KERBEROS)
2542061Sjkh	cd ${.CURDIR}/kerberosIV/acl && \
2552061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2562061Sjkh	cd ${.CURDIR}/kerberosIV/des && \
2572061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2582061Sjkh	cd ${.CURDIR}/kerberosIV/kdb && \
2592061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2602061Sjkh	cd ${.CURDIR}/kerberosIV/krb && \
2612061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2622061Sjkh.endif
2633197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
2642626Scsgr	cd ${.CURDIR}/eBones/des && \
2652626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2662626Scsgr	cd ${.CURDIR}/eBones/acl && \
2672626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2682626Scsgr	cd ${.CURDIR}/eBones/kdb && \
2692626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2702626Scsgr	cd ${.CURDIR}/eBones/krb && \
2712626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2722626Scsgr.endif
2732061Sjkh
2742061Sjkhtools:
2752061Sjkh	@echo "--------------------------------------------------------------"
2762061Sjkh	@echo " Rebuilding ${DESTDIR} Compiler and Make"
2772061Sjkh	@echo "--------------------------------------------------------------"
2782061Sjkh	@echo
2792273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc && \
2802061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2812061Sjkh	cd ${.CURDIR}/usr.bin/make && \
2822061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2832061Sjkh
2841594Srgrimes.include <bsd.subdir.mk>
285