Makefile revision 2685
12061Sjkh#
22685Srgrimes#	$Id: Makefile,v 1.16 1994/09/09 20:29:20 csgr 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
82061Sjkh#	-DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
92160Scsgr#	-DNOCRYPT will prevent building of crypt versions
102160Scsgr# XXX2	-DNOKERBEROS do not build Kerberos
112061Sjkh#	-DNOOBJDIR do not run ``${MAKE} obj''
122061Sjkh#	-DNOPROFILE do not build profiled libraries
132160Scsgr#	-DNOSECURE do not go into secure subdir
142626Scsgr#	-DNOEBONES do not make eBones (kerberosIV)
152061Sjkh#
162160Scsgr# XXX2	Mandatory, and Kerberos will not build sucessfully yet
171594Srgrimes
182061Sjkh# Put initial settings here.
192160ScsgrNOKERBEROS=	yes
202061SjkhSUBDIR=
211594Srgrimes
222061Sjkh.if exists(bin)
232061SjkhSUBDIR+= bin
242061Sjkh.endif
252061Sjkh.if exists(contrib)
262061SjkhSUBDIR+= contrib
272061Sjkh.endif
282061Sjkh.if exists(etc)
292061SjkhSUBDIR+= etc
302061Sjkh.endif
312061Sjkh.if exists(games)
322061SjkhSUBDIR+= games
332061Sjkh.endif
342061Sjkh.if exists(gnu)
352061SjkhSUBDIR+= gnu
362061Sjkh.endif
372061Sjkh.if exists(include)
382061SjkhSUBDIR+= include
392061Sjkh.endif
402061Sjkh.if exists(lib)
412061SjkhSUBDIR+= lib
422061Sjkh.endif
432160Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
442061SjkhSUBDIR+= kerberosIV
452061Sjkh.endif
462626Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) \
472626Scsgr			&& !defined(NOEBONES)
482626ScsgrSUBDIR+= eBones
492626Scsgr.endif
502061Sjkh.if exists(libexec)
512061SjkhSUBDIR+= libexec
522061Sjkh.endif
532061Sjkh.if exists(sbin)
542061SjkhSUBDIR+= sbin
552061Sjkh.endif
562160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
572160ScsgrSUBDIR+= secure
582160Scsgr.endif
592061Sjkh.if exists(share)
602061SjkhSUBDIR+= share
612061Sjkh.endif
622061Sjkh.if exists(sys)
632061SjkhSUBDIR+= sys
642061Sjkh.endif
652061Sjkh.if exists(usr.bin)
662061SjkhSUBDIR+= usr.bin
672061Sjkh.endif
682061Sjkh.if exists(usr.sbin)
692061SjkhSUBDIR+= usr.sbin
702061Sjkh.endif
711594Srgrimes
722061Sjkh# These are last, since it is nice to at least get the base system
732061Sjkh# rebuilt before you do them.
742061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
752061SjkhSUBDIR+= local
762061Sjkh.endif
772061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
782061SjkhSUBDIR+= ports
792061Sjkh.endif
802061Sjkh
812061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR
822061Sjkh.if defined(NOOBJDIR)
832061SjkhOBJDIR=
842061Sjkh.else
852061SjkhOBJDIR=		obj
862061Sjkh.endif
872061Sjkh.if defined(NOCLEANDIR)
882061SjkhCLEANDIR=	clean
892061Sjkh.else 
902061SjkhCLEANDIR=	cleandir
912061Sjkh.endif
922061Sjkh
932468Spaulworld:	directories cleandist mk includes libraries tools
942061Sjkh	@echo "--------------------------------------------------------------"
952061Sjkh	@echo " Rebuilding ${DESTDIR} The whole thing"
962061Sjkh	@echo "--------------------------------------------------------------"
972061Sjkh	@echo
982061Sjkh	${MAKE} depend all install
992061Sjkh	cd ${.CURDIR}/share/man &&		${MAKE} makedb
1002061Sjkh
1012302Spaul
1022061Sjkhdirectories:
1032061Sjkh	@echo "--------------------------------------------------------------"
1042061Sjkh	@echo " Making directories"
1052061Sjkh	@echo "--------------------------------------------------------------"
1062302Spaul	cd ${.CURDIR}/etc &&			${MAKE} distrib-dirs
1072061Sjkh
1082302Spaulupdate:
1092302Spaul.if defined(SUP_UPDATE)
1102302Spaul	@echo "--------------------------------------------------------------"
1112302Spaul	@echo "Running sup"
1122302Spaul	@echo "--------------------------------------------------------------"
1132302Spaul	@sup -v ${SUPFILE}
1142302Spaul.endif
1152302Spaul.if defined(CVS_UPDATE)
1162302Spaul	@echo "--------------------------------------------------------------"
1172302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
1182302Spaul	@echo "--------------------------------------------------------------"
1192302Spaul	cd ${.CURDIR} &&  cvs update -P -d
1202302Spaul.endif
1212302Spaul
1222061Sjkhcleandist:
1232061Sjkh.if !defined(NOCLEANDIR)
1242061Sjkh	@echo "--------------------------------------------------------------"
1252061Sjkh	@echo " Cleaning up the source tree, and rebuilding the obj tree"
1262061Sjkh	@echo "--------------------------------------------------------------"
1272061Sjkh	@echo
1282061Sjkh	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
1292061Sjkh	if test -d /usr/obj -a ! -d $$dest; then \
1302061Sjkh		mkdir -p $$dest; \
1312061Sjkh	else \
1322061Sjkh		true; \
1332061Sjkh	fi; \
1342061Sjkh	cd $$dest && rm -rf ${SUBDIR}
1352061Sjkh	find . -name obj | xargs rm -rf
1362061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1372061Sjkh	# The cd is done as local may well be a symbolic link
1382061Sjkh	-cd local && find . -name obj | xargs rm -rf
1392061Sjkh.endif
1402061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1412061Sjkh	# The cd is done as local may well be a symbolic link
1422061Sjkh	-cd ports && find . -name obj | xargs rm -rf
1432061Sjkh.endif
1442061Sjkh	${MAKE} cleandir
1452061Sjkh	${MAKE} obj
1462061Sjkh.endif
1472061Sjkh
1482061Sjkhmk:
1492061Sjkh	@echo "--------------------------------------------------------------"
1502061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
1512061Sjkh	@echo "--------------------------------------------------------------"
1522061Sjkh	cd ${.CURDIR}/share/mk &&		${MAKE} install
1532061Sjkh
1542061Sjkhincludes:
1552061Sjkh	@echo "--------------------------------------------------------------"
1562061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/include"
1572061Sjkh	@echo "--------------------------------------------------------------"
1582061Sjkh	@echo
1592061Sjkh.if defined(CLOBBER)
1602061Sjkh	rm -rf ${DESTDIR}/usr/include
1612061Sjkh	mkdir ${DESTDIR}/usr/include
1622061Sjkh	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
1632061Sjkh	chmod 755 ${DESTDIR}/usr/include
1642061Sjkh.endif
1652061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
1662685Srgrimes	cd ${.CURDIR}/gnu/lib/libreadline &&	${MAKE} beforeinstall
1672685Srgrimes	cd ${.CURDIR}/gnu/lib/libg++ &&         ${MAKE} beforeinstall
1682626Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
1692061Sjkh	cd ${.CURDIR}/kerberosIV/include &&	${MAKE} install
1702061Sjkh.endif
1712061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
1722061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
1732061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
1742061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
1752626Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) && \
1762626Scsgr			!defined(NOEBONES)
1772626Scsgr	cd ${.CURDIR}/eBones/include &&		${MAKE} beforeinstall
1782626Scsgr.endif
1792061Sjkh
1802061Sjkhlibraries:
1812061Sjkh	@echo "--------------------------------------------------------------"
1822061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/lib"
1832061Sjkh	@echo "--------------------------------------------------------------"
1842061Sjkh	@echo
1852061Sjkh.if defined(CLOBBER)
1862061Sjkh	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
1872061Sjkh		xargs rm -rf
1882061Sjkh.endif
1892468Spaul	cd ${.CURDIR}/gnu/lib && \
1902061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1912273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
1922061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1932160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
1942160Scsgr	cd ${.CURDIR}/secure/lib && \
1952160Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1962160Scsgr.endif
1972279Spaul.if exists(lib)
1982061Sjkh	cd ${.CURDIR}/lib && \
1992061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2002279Spaul.endif
2012468Spaul	cd ${.CURDIR}/usr.bin/lex/lib && \
2022468Spaul		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2032626Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
2042061Sjkh	cd ${.CURDIR}/kerberosIV/acl && \
2052061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2062061Sjkh	cd ${.CURDIR}/kerberosIV/des && \
2072061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2082061Sjkh	cd ${.CURDIR}/kerberosIV/kdb && \
2092061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2102061Sjkh	cd ${.CURDIR}/kerberosIV/krb && \
2112061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2122061Sjkh.endif
2132626Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(NOKERBEROS) && \
2142626Scsgr			!defined(NOEBONES)
2152626Scsgr	cd ${.CURDIR}/eBones/des && \
2162626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2172626Scsgr	cd ${.CURDIR}/eBones/acl && \
2182626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2192626Scsgr	cd ${.CURDIR}/eBones/kdb && \
2202626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2212626Scsgr	cd ${.CURDIR}/eBones/krb && \
2222626Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2232626Scsgr.endif
2242061Sjkh
2252061Sjkhtools:
2262061Sjkh	@echo "--------------------------------------------------------------"
2272061Sjkh	@echo " Rebuilding ${DESTDIR} Compiler and Make"
2282061Sjkh	@echo "--------------------------------------------------------------"
2292061Sjkh	@echo
2302273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc && \
2312061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2322061Sjkh	cd ${.CURDIR}/usr.bin/make && \
2332061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2342061Sjkh
2351594Srgrimes.include <bsd.subdir.mk>
236