Makefile revision 2302
12061Sjkh#
22302Spaul#	$Id: Makefile,v 1.12 1994/08/25 14:45:46 paul 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
142061Sjkh#
152160Scsgr# XXX2	Mandatory, and Kerberos will not build sucessfully yet
161594Srgrimes
172061Sjkh# Put initial settings here.
182160ScsgrNOKERBEROS=	yes
192061SjkhSUBDIR=
201594Srgrimes
212061Sjkh.if exists(bin)
222061SjkhSUBDIR+= bin
232061Sjkh.endif
242061Sjkh.if exists(contrib)
252061SjkhSUBDIR+= contrib
262061Sjkh.endif
272061Sjkh.if exists(etc)
282061SjkhSUBDIR+= etc
292061Sjkh.endif
302061Sjkh.if exists(games)
312061SjkhSUBDIR+= games
322061Sjkh.endif
332061Sjkh.if exists(gnu)
342061SjkhSUBDIR+= gnu
352061Sjkh.endif
362061Sjkh.if exists(include)
372061SjkhSUBDIR+= include
382061Sjkh.endif
392061Sjkh.if exists(lib)
402061SjkhSUBDIR+= lib
412061Sjkh.endif
422160Scsgr.if exists(kerberosIV) && !defined(NOCRYPT) && !defined(NOKERBEROS)
432061SjkhSUBDIR+= kerberosIV
442061Sjkh.endif
452061Sjkh.if exists(libexec)
462061SjkhSUBDIR+= libexec
472061Sjkh.endif
482061Sjkh.if exists(sbin)
492061SjkhSUBDIR+= sbin
502061Sjkh.endif
512160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
522160ScsgrSUBDIR+= secure
532160Scsgr.endif
542061Sjkh.if exists(share)
552061SjkhSUBDIR+= share
562061Sjkh.endif
572061Sjkh.if exists(sys)
582061SjkhSUBDIR+= sys
592061Sjkh.endif
602061Sjkh.if exists(usr.bin)
612061SjkhSUBDIR+= usr.bin
622061Sjkh.endif
632061Sjkh.if exists(usr.sbin)
642061SjkhSUBDIR+= usr.sbin
652061Sjkh.endif
661594Srgrimes
672061Sjkh# These are last, since it is nice to at least get the base system
682061Sjkh# rebuilt before you do them.
692061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
702061SjkhSUBDIR+= local
712061Sjkh.endif
722061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
732061SjkhSUBDIR+= ports
742061Sjkh.endif
752061Sjkh
762061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR
772061Sjkh.if defined(NOOBJDIR)
782061SjkhOBJDIR=
792061Sjkh.else
802061SjkhOBJDIR=		obj
812061Sjkh.endif
822061Sjkh.if defined(NOCLEANDIR)
832061SjkhCLEANDIR=	clean
842061Sjkh.else 
852061SjkhCLEANDIR=	cleandir
862061Sjkh.endif
872061Sjkh
882302Spaulworld:	directories update cleandist mk includes libraries tools
892061Sjkh	@echo "--------------------------------------------------------------"
902061Sjkh	@echo " Rebuilding ${DESTDIR} The whole thing"
912061Sjkh	@echo "--------------------------------------------------------------"
922061Sjkh	@echo
932061Sjkh	${MAKE} depend all install
942061Sjkh	cd ${.CURDIR}/share/man &&		${MAKE} makedb
952061Sjkh
962302Spaul
972061Sjkhdirectories:
982061Sjkh	@echo "--------------------------------------------------------------"
992061Sjkh	@echo " Making directories"
1002061Sjkh	@echo "--------------------------------------------------------------"
1012061Sjkh	@echo " XXX Not yet ready in 2.0.0"
1022302Spaul	cd ${.CURDIR}/etc &&			${MAKE} distrib-dirs
1032061Sjkh
1042302Spaulupdate:
1052302Spaul.if defined(SUP_UPDATE)
1062302Spaul	@echo "--------------------------------------------------------------"
1072302Spaul	@echo "Running sup"
1082302Spaul	@echo "--------------------------------------------------------------"
1092302Spaul	@sup -v ${SUPFILE}
1102302Spaul.endif
1112302Spaul.if defined(CVS_UPDATE)
1122302Spaul	@echo "--------------------------------------------------------------"
1132302Spaul	@echo "Updating /usr/src from cvs repository" ${CVSROOT}
1142302Spaul	@echo "--------------------------------------------------------------"
1152302Spaul	cd ${.CURDIR} &&  cvs update -P -d
1162302Spaul.endif
1172302Spaul
1182061Sjkhcleandist:
1192061Sjkh.if !defined(NOCLEANDIR)
1202061Sjkh	@echo "--------------------------------------------------------------"
1212061Sjkh	@echo " Cleaning up the source tree, and rebuilding the obj tree"
1222061Sjkh	@echo "--------------------------------------------------------------"
1232061Sjkh	@echo
1242061Sjkh	here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
1252061Sjkh	if test -d /usr/obj -a ! -d $$dest; then \
1262061Sjkh		mkdir -p $$dest; \
1272061Sjkh	else \
1282061Sjkh		true; \
1292061Sjkh	fi; \
1302061Sjkh	cd $$dest && rm -rf ${SUBDIR}
1312061Sjkh	find . -name obj | xargs rm -rf
1322061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
1332061Sjkh	# The cd is done as local may well be a symbolic link
1342061Sjkh	-cd local && find . -name obj | xargs rm -rf
1352061Sjkh.endif
1362061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
1372061Sjkh	# The cd is done as local may well be a symbolic link
1382061Sjkh	-cd ports && find . -name obj | xargs rm -rf
1392061Sjkh.endif
1402061Sjkh	${MAKE} cleandir
1412061Sjkh	${MAKE} obj
1422061Sjkh.endif
1432061Sjkh
1442061Sjkhmk:
1452061Sjkh	@echo "--------------------------------------------------------------"
1462061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/share/mk"
1472061Sjkh	@echo "--------------------------------------------------------------"
1482061Sjkh	cd ${.CURDIR}/share/mk &&		${MAKE} install
1492061Sjkh
1502061Sjkhincludes:
1512061Sjkh	@echo "--------------------------------------------------------------"
1522061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/include"
1532061Sjkh	@echo "--------------------------------------------------------------"
1542061Sjkh	@echo
1552061Sjkh.if defined(CLOBBER)
1562061Sjkh	rm -rf ${DESTDIR}/usr/include
1572061Sjkh	mkdir ${DESTDIR}/usr/include
1582061Sjkh	chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
1592061Sjkh	chmod 755 ${DESTDIR}/usr/include
1602061Sjkh.endif
1612061Sjkh	cd ${.CURDIR}/include &&		${MAKE} install
1622068Sjkh#XXX	cd ${.CURDIR}/gnu/lib/libg++ &&		${MAKE} beforeinstall
1632273Spaul#XXX	cd ${.CURDIR}/gnu/usr.bin/cc/libobjc &&	${MAKE} beforeinstall
1642160Scsgr.if !defined(NOCRYPT) && !defined(NOKERBEROS)
1652061Sjkh	cd ${.CURDIR}/kerberosIV/include &&	${MAKE} install
1662061Sjkh.endif
1672061Sjkh	cd ${.CURDIR}/lib/libc &&		${MAKE} beforeinstall
1682061Sjkh	cd ${.CURDIR}/lib/libcurses &&		${MAKE} beforeinstall
1692061Sjkh	cd ${.CURDIR}/lib/libedit &&		${MAKE} beforeinstall
1702061Sjkh	cd ${.CURDIR}/lib/librpcsvc &&		${MAKE} beforeinstall
1712061Sjkh
1722061Sjkhlibraries:
1732061Sjkh	@echo "--------------------------------------------------------------"
1742061Sjkh	@echo " Rebuilding ${DESTDIR}/usr/lib"
1752061Sjkh	@echo "--------------------------------------------------------------"
1762061Sjkh	@echo
1772061Sjkh.if defined(CLOBBER)
1782061Sjkh	find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \
1792061Sjkh		xargs rm -rf
1802061Sjkh.endif
1812061Sjkh	# XXX The whole GNU block should be doable in one command, as soon		# as libg++ works on FreeBSD 2.0 I will try that out
1822061Sjkh#XXX	cd ${.CURDIR}/gnu/lib/libg++ && \
1832061Sjkh#XXX		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1842061Sjkh	cd ${.CURDIR}/gnu/lib/libmalloc && \
1852061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1862061Sjkh	cd ${.CURDIR}/gnu/lib/libreadline && \
1872061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1882061Sjkh	cd ${.CURDIR}/gnu/lib/libregex && \
1892061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1902273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \
1912061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1922160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE)
1932160Scsgr	cd ${.CURDIR}/secure/lib && \
1942160Scsgr		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1952160Scsgr.endif
1962279Spaul.if exists(lib)
1972061Sjkh	cd ${.CURDIR}/lib && \
1982061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
1992279Spaul.endif
2002061Sjkh	# You need the lex lib before you can build kerberosIV
2012061Sjkh#XXX	# We don't have lex in the 2.0 tree yet!
2022061Sjkh#XXX	cd ${.CURDIR}/usr.bin/lex/lib && \
2032061Sjkh#XXX		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2042160Scsgr.if !defined(NOCRYPT) && !defined(NOKERBEROS)
2052061Sjkh	cd ${.CURDIR}/kerberosIV/acl && \
2062061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2072061Sjkh	cd ${.CURDIR}/kerberosIV/des && \
2082061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2092061Sjkh	cd ${.CURDIR}/kerberosIV/kdb && \
2102061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2112061Sjkh	cd ${.CURDIR}/kerberosIV/krb && \
2122061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2132061Sjkh.endif
2142061Sjkh
2152061Sjkhtools:
2162061Sjkh	@echo "--------------------------------------------------------------"
2172061Sjkh	@echo " Rebuilding ${DESTDIR} Compiler and Make"
2182061Sjkh	@echo "--------------------------------------------------------------"
2192061Sjkh	@echo
2202273Spaul	cd ${.CURDIR}/gnu/usr.bin/cc && \
2212061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2222061Sjkh	cd ${.CURDIR}/usr.bin/make && \
2232061Sjkh		${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
2242061Sjkh
2251594Srgrimes.include <bsd.subdir.mk>
226