Makefile revision 16550
12061Sjkh# 216550Sjkh# $Id: Makefile,v 1.82 1996/06/20 13:38:15 adam Exp $ 32061Sjkh# 42061Sjkh# Make command line options: 515603Smarkm# -DCLOBBER will remove /usr/include 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 1112483Speter# -DNOCLEAN do not clean at all 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 171594Srgrimes 182061Sjkh# Put initial settings here. 192061SjkhSUBDIR= 201594Srgrimes 217407Srgrimes# We must do include and lib first so that the perl *.ph generation 227407Srgrimes# works correctly as it uses the header files installed by this. 237108Sphk.if exists(include) 247108SphkSUBDIR+= include 257108Sphk.endif 267407Srgrimes.if exists(lib) 277407SrgrimesSUBDIR+= lib 287407Srgrimes.endif 297108Sphk 302061Sjkh.if exists(bin) 312061SjkhSUBDIR+= bin 322061Sjkh.endif 332061Sjkh.if exists(contrib) 342061SjkhSUBDIR+= contrib 352061Sjkh.endif 362061Sjkh.if exists(games) 372061SjkhSUBDIR+= games 382061Sjkh.endif 392061Sjkh.if exists(gnu) 402061SjkhSUBDIR+= gnu 412061Sjkh.endif 423197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 432626ScsgrSUBDIR+= eBones 442626Scsgr.endif 452061Sjkh.if exists(libexec) 462061SjkhSUBDIR+= libexec 472061Sjkh.endif 482061Sjkh.if exists(sbin) 492061SjkhSUBDIR+= sbin 502061Sjkh.endif 512061Sjkh.if exists(share) 522061SjkhSUBDIR+= share 532061Sjkh.endif 542061Sjkh.if exists(sys) 552061SjkhSUBDIR+= sys 562061Sjkh.endif 572061Sjkh.if exists(usr.bin) 582061SjkhSUBDIR+= usr.bin 592061Sjkh.endif 602061Sjkh.if exists(usr.sbin) 612061SjkhSUBDIR+= usr.sbin 622061Sjkh.endif 632834Swollman.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 642834SwollmanSUBDIR+= secure 652834Swollman.endif 662834Swollman.if exists(lkm) && !defined(NOLKM) 672834SwollmanSUBDIR+= lkm 682834Swollman.endif 691594Srgrimes 704486Sphk# etc must be last for "distribute" to work 714486Sphk.if exists(etc) && make(distribute) 724486SphkSUBDIR+= etc 734486Sphk.endif 744486Sphk 752061Sjkh# These are last, since it is nice to at least get the base system 762061Sjkh# rebuilt before you do them. 772061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 782061SjkhSUBDIR+= local 792061Sjkh.endif 802061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 812061SjkhSUBDIR+= ports 822061Sjkh.endif 832061Sjkh 842061Sjkh# Handle the -DNOOBJDIR and -DNOCLEANDIR 852061Sjkh.if defined(NOOBJDIR) 862061SjkhOBJDIR= 872061Sjkh.else 882061SjkhOBJDIR= obj 892061Sjkh.endif 9012483Speter 9112483Speter.if defined(NOCLEAN) 9212483SpeterCLEANDIR= 9312483SpeterWORLD_CLEANDIST=obj 9412483Speter.else 9512483SpeterWORLD_CLEANDIST=cleandist 962061Sjkh.if defined(NOCLEANDIR) 972061SjkhCLEANDIR= clean 988854Srgrimes.else 992061SjkhCLEANDIR= cleandir 1002061Sjkh.endif 10112483Speter.endif 1022061Sjkh 10315603SmarkmMK_FLAGS= -DNOMAN -DNOPROFILE 10415603Smarkm 10516550Sjkh.if !target(pre-world) 10616550Sjkhpre-world: 10716550Sjkh @/usr/bin/true 10816550Sjkh.endif 10916550Sjkh 11016550Sjkhworld: pre-world hierarchy mk $(WORLD_CLEANDIST) bootstrap include-tools includes lib-tools libraries build-tools 1112061Sjkh @echo "--------------------------------------------------------------" 1122061Sjkh @echo " Rebuilding ${DESTDIR} The whole thing" 1132061Sjkh @echo "--------------------------------------------------------------" 1142061Sjkh @echo 1152061Sjkh ${MAKE} depend all install 1162061Sjkh cd ${.CURDIR}/share/man && ${MAKE} makedb 11716550Sjkh.if target(post-world) 11816550Sjkh cd ${.CURDIR} && ${MAKE} post-world 11916550Sjkh.endif 12014545Sjkh @echo "make world completed on `date`" 1212061Sjkh 12214787Spaulbootstrap: 12315603Smarkm cd ${.CURDIR}/usr.bin/xlint && ${MAKE} ${MK_FLAGS} lint1 lint2 xlint 12415603Smarkm cd ${.CURDIR}/usr.bin/xlint/lint1 && ${MAKE} ${MK_FLAGS} install 12515603Smarkm cd ${.CURDIR}/usr.bin/xlint/lint2 && ${MAKE} ${MK_FLAGS} install 12615603Smarkm cd ${.CURDIR}/usr.bin/xlint/xlint && ${MAKE} ${MK_FLAGS} install 12716526Snate cd ${.CURDIR}/usr.bin/lex && ${MAKE} ${MK_FLAGS} bootstrap && \ 12816526Snate ${MAKE} ${MK_FLAGS} all install 12914787Spaul 13012483Speterreinstall: hierarchy mk includes 13112483Speter @echo "--------------------------------------------------------------" 13212483Speter @echo " Reinstall ${DESTDIR} The whole thing" 13312483Speter @echo "--------------------------------------------------------------" 13412483Speter @echo 13512483Speter ${MAKE} install 13612483Speter cd ${.CURDIR}/share/man && ${MAKE} makedb 13712483Speter 1383030Srgrimeshierarchy: 1392061Sjkh @echo "--------------------------------------------------------------" 1403030Srgrimes @echo " Making hierarchy" 1412061Sjkh @echo "--------------------------------------------------------------" 1426722Sphk cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 1432061Sjkh 1442302Spaulupdate: 1452302Spaul.if defined(SUP_UPDATE) 1462302Spaul @echo "--------------------------------------------------------------" 1472302Spaul @echo "Running sup" 1482302Spaul @echo "--------------------------------------------------------------" 1492302Spaul @sup -v ${SUPFILE} 15010760Sache.if defined(SUPFILE1) 15110760Sache @sup -v ${SUPFILE1} 1522302Spaul.endif 15310760Sache.if defined(SUPFILE2) 15410760Sache @sup -v ${SUPFILE2} 15510760Sache.endif 15610760Sache.endif 1572302Spaul.if defined(CVS_UPDATE) 1582302Spaul @echo "--------------------------------------------------------------" 1592302Spaul @echo "Updating /usr/src from cvs repository" ${CVSROOT} 1602302Spaul @echo "--------------------------------------------------------------" 1612302Spaul cd ${.CURDIR} && cvs update -P -d 1622302Spaul.endif 1632302Spaul 1642061Sjkhcleandist: 1652061Sjkh.if !defined(NOCLEANDIR) 1662061Sjkh @echo "--------------------------------------------------------------" 1672061Sjkh @echo " Cleaning up the source tree, and rebuilding the obj tree" 1682061Sjkh @echo "--------------------------------------------------------------" 1692061Sjkh @echo 1702061Sjkh here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 1712061Sjkh if test -d /usr/obj -a ! -d $$dest; then \ 1722061Sjkh mkdir -p $$dest; \ 1732061Sjkh else \ 1742061Sjkh true; \ 1752061Sjkh fi; \ 1762061Sjkh cd $$dest && rm -rf ${SUBDIR} 1772061Sjkh find . -name obj | xargs rm -rf 1782061Sjkh.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 1792061Sjkh # The cd is done as local may well be a symbolic link 1802061Sjkh -cd local && find . -name obj | xargs rm -rf 1812061Sjkh.endif 1822061Sjkh.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 1832061Sjkh # The cd is done as local may well be a symbolic link 1842061Sjkh -cd ports && find . -name obj | xargs rm -rf 1852061Sjkh.endif 1862061Sjkh ${MAKE} cleandir 1872061Sjkh ${MAKE} obj 1882061Sjkh.endif 1892061Sjkh 1903626Swollmaninstallmost: 1913626Swollman @echo "--------------------------------------------------------------" 1923626Swollman @echo " Installing programs only" 1933626Swollman @echo "--------------------------------------------------------------" 1943626Swollman cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} install 1953626Swollman cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} install 1963626Swollman cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} install 1973626Swollman cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} install 1983626Swollman cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 1993626Swollman cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} install 2003626Swollman cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} install 2017059Sroberto cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 2023626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 2033626Swollman# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} installmost 2043626Swollman#.endif 2053626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT) 2063626Swollman# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} installmost 2073626Swollman#.endif 2083626Swollman 2093626Swollmanmost: 2103626Swollman @echo "--------------------------------------------------------------" 2113626Swollman @echo " Building programs only" 2123626Swollman @echo "--------------------------------------------------------------" 2133626Swollman cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} all 2143626Swollman cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} all 2153626Swollman cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} all 2163626Swollman cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} all 2173626Swollman cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 2183626Swollman cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} all 2193626Swollman cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} all 2207446Ssos cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 2213626Swollman#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 2223626Swollman# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} most 2233626Swollman#.endif 2243626Swollman#.if !defined(NOSECURE) && !defined(NOCRYPT) 2253626Swollman# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} most 2263626Swollman#.endif 2273626Swollman 2282061Sjkhmk: 2292061Sjkh @echo "--------------------------------------------------------------" 2302061Sjkh @echo " Rebuilding ${DESTDIR}/usr/share/mk" 2312061Sjkh @echo "--------------------------------------------------------------" 2322061Sjkh cd ${.CURDIR}/share/mk && ${MAKE} install 2332061Sjkh 23414119Speterincludes: 2352061Sjkh @echo "--------------------------------------------------------------" 2362061Sjkh @echo " Rebuilding ${DESTDIR}/usr/include" 2372061Sjkh @echo "--------------------------------------------------------------" 2382061Sjkh @echo 2392061Sjkh.if defined(CLOBBER) 2407130Srgrimes rm -rf ${DESTDIR}/usr/include/* 2417130Srgrimes mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ 2427130Srgrimes -p ${DESTDIR}/usr/include 2432061Sjkh.endif 2442061Sjkh cd ${.CURDIR}/include && ${MAKE} install 2454249Sache cd ${.CURDIR}/gnu/include && ${MAKE} install 2462685Srgrimes cd ${.CURDIR}/gnu/lib/libreadline && ${MAKE} beforeinstall 2476927Snate cd ${.CURDIR}/gnu/lib/libregex && ${MAKE} beforeinstall 2482685Srgrimes cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 2493518Sache cd ${.CURDIR}/gnu/lib/libdialog && ${MAKE} beforeinstall 2503197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 2513197Scsgr cd ${.CURDIR}/eBones/include && ${MAKE} beforeinstall 25212166Sjkh cd ${.CURDIR}/eBones/lib/libkrb && ${MAKE} beforeinstall 25312485Sjkh cd ${.CURDIR}/eBones/lib/libkadm && ${MAKE} beforeinstall 2543197Scsgr.endif 2552061Sjkh cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 2562061Sjkh cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 2572061Sjkh cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 2582883Sphk cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall 2593429Sache cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall 2603429Sache cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall 2617281Srgrimes.if !defined(WANT_CSRG_LIBM) 2623242Spaul cd ${.CURDIR}/lib/msun && ${MAKE} beforeinstall 2633242Spaul.endif 2647171Sats cd ${.CURDIR}/lib/libpcap && ${MAKE} beforeinstall 2652061Sjkh cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 2663213Spst cd ${.CURDIR}/lib/libskey && ${MAKE} beforeinstall 2674942Sache cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall 2685749Swollman cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall 2695772Swollman cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall 2705866Sache cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall 27113138Speter cd ${.CURDIR}/lib/libutil && ${MAKE} beforeinstall 2722061Sjkh 2735366Snatelib-tools: 2745366Snate @echo "--------------------------------------------------------------" 2756934Sse @echo " Rebuilding tools needed to build the libraries" 2765366Snate @echo "--------------------------------------------------------------" 2775366Snate @echo 27812507Snate cd ${.CURDIR}/usr.bin/xinstall && \ 27915603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2807292Srgrimes cd ${.CURDIR}/gnu/usr.bin/ld && \ 28115603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2825366Snate cd ${.CURDIR}/usr.bin/ar && \ 28315603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2845366Snate cd ${.CURDIR}/usr.bin/ranlib && \ 28515603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2865366Snate cd ${.CURDIR}/usr.bin/nm && \ 28715603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2885772Swollman cd ${.CURDIR}/usr.bin/lex/lib && \ 28915603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2905728Swollman cd ${.CURDIR}/usr.bin/compile_et && \ 29115603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} && \ 2925728Swollman rm -f /usr/sbin/compile_et 2935728Swollman cd ${.CURDIR}/usr.bin/mk_cmds && \ 29415603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 2955366Snate 2962061Sjkhlibraries: 2972061Sjkh @echo "--------------------------------------------------------------" 2982061Sjkh @echo " Rebuilding ${DESTDIR}/usr/lib" 2992061Sjkh @echo "--------------------------------------------------------------" 3002061Sjkh @echo 3018295Srgrimes.if exists(lib/libcompat) 3028295Srgrimes cd ${.CURDIR}/lib/libcompat && \ 30315603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3048295Srgrimes.endif 3058489Srgrimes.if exists(lib/libncurses) 3068489Srgrimes cd ${.CURDIR}/lib/libncurses && \ 30715603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3088489Srgrimes.endif 3098489Srgrimes.if exists(lib/libtermcap) 3108489Srgrimes cd ${.CURDIR}/lib/libtermcap && \ 31115603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3128489Srgrimes.endif 3138295Srgrimes.if exists(gnu) 3142468Spaul cd ${.CURDIR}/gnu/lib && \ 31515603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3162273Spaul cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ 31715603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3188295Srgrimes.endif 3192160Scsgr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 3202160Scsgr cd ${.CURDIR}/secure/lib && \ 32115603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3222160Scsgr.endif 3232279Spaul.if exists(lib) 3244054Spst cd ${.CURDIR}/lib/csu/i386 && \ 32515603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3262061Sjkh cd ${.CURDIR}/lib && \ 32715603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3282279Spaul.endif 32911772Snate.if exists(usr.sbin/lex/lib) 3302468Spaul cd ${.CURDIR}/usr.bin/lex/lib && \ 33115603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 33211772Snate.endif 3333197Scsgr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 33410838Sjkh cd ${.CURDIR}/eBones/lib && \ 33515603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3362626Scsgr.endif 3378304Srgrimes.if exists(usr.sbin/pcvt/keycap) 3388304Srgrimes cd ${.CURDIR}/usr.sbin/pcvt/keycap && \ 33915603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3408304Srgrimes.endif 3412061Sjkh 34213725Snateinclude-tools: 34313725Snate @echo "--------------------------------------------------------------" 34413725Snate @echo " Rebuild tools necessary to build the include files" 34513725Snate @echo "--------------------------------------------------------------" 34613725Snate @echo 34713726Snate cd ${.CURDIR}/usr.bin/xinstall && \ 34815603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 34913725Snate cd ${.CURDIR}/usr.bin/rpcgen && \ 35015603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 35113725Snate 35211806Sphkbuild-tools: 3532061Sjkh @echo "--------------------------------------------------------------" 35412106Sjfieber @echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)" 3552061Sjkh @echo "--------------------------------------------------------------" 3562061Sjkh @echo 3572273Spaul cd ${.CURDIR}/gnu/usr.bin/cc && \ 35815603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3592061Sjkh cd ${.CURDIR}/usr.bin/make && \ 36015603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 36111769Sphk cd ${.CURDIR}/usr.bin/symorder && \ 36215603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 36312106Sjfieber cd ${.CURDIR}/usr.bin/sgmlfmt && \ 36415603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 36512106Sjfieber cd ${.CURDIR}/share/sgml && \ 36615603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 36710479Sdg cd ${.CURDIR}/usr.sbin/zic && \ 36815603Smarkm ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 3692061Sjkh 3701594Srgrimes.include <bsd.subdir.mk> 371