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