Makefile revision 12483
1145519Sdarrenr# 2145510Sdarrenr# $Id: Makefile,v 1.67 1995/11/09 09:58:17 jkh Exp $ 3170268Sdarrenr# 4255332Scy# Make command line options: 5170268Sdarrenr# -DCLOBBER will remove /usr/include and MOST of /usr/lib 6170268Sdarrenr# -DMAKE_LOCAL to add ./local to the SUBDIR list 7170268Sdarrenr# -DMAKE_PORTS to add ./ports to the SUBDIR list 8145510Sdarrenr# -DMAKE_EBONES to build eBones (KerberosIV) 9145510Sdarrenr# 10145510Sdarrenr# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir 11145510Sdarrenr# -DNOCLEAN do not clean at all 12145510Sdarrenr# -DNOCRYPT will prevent building of crypt versions 13145510Sdarrenr# -DNOLKM do not build loadable kernel modules 14145510Sdarrenr# -DNOOBJDIR do not run ``${MAKE} obj'' 15145510Sdarrenr# -DNOPROFILE do not build profiled libraries 16255332Scy# -DNOSECURE do not go into secure subdir 17255332Scy 18145510Sdarrenr# Put initial settings here. 19145510SdarrenrSUBDIR= 20145510Sdarrenr 21145510Sdarrenr# We must do include and lib first so that the perl *.ph generation 22145510Sdarrenr# works correctly as it uses the header files installed by this. 23145510Sdarrenr.if exists(include) 24145510SdarrenrSUBDIR+= include 25145510Sdarrenr.endif 26255332Scy.if exists(lib) 27145510SdarrenrSUBDIR+= lib 28255332Scy.endif 29255332Scy 30145510Sdarrenr.if exists(bin) 31145510SdarrenrSUBDIR+= bin 32145510Sdarrenr.endif 33145510Sdarrenr.if exists(contrib) 34145510SdarrenrSUBDIR+= contrib 35255332Scy.endif 36255332Scy.if exists(games) 37145510SdarrenrSUBDIR+= games 38145510Sdarrenr.endif 39255332Scy.if exists(gnu) 40145510SdarrenrSUBDIR+= gnu 41145510Sdarrenr.endif 42255332Scy.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 43255332ScySUBDIR+= eBones 44255332Scy.endif 45255332Scy.if exists(libexec) 46255332ScySUBDIR+= libexec 47145510Sdarrenr.endif 48145510Sdarrenr.if exists(sbin) 49255332ScySUBDIR+= sbin 50255332Scy.endif 51145510Sdarrenr.if exists(share) 52145510SdarrenrSUBDIR+= share 53145510Sdarrenr.endif 54145510Sdarrenr.if exists(sys) 55145510SdarrenrSUBDIR+= sys 56145510Sdarrenr.endif 57255332Scy.if exists(usr.bin) 58145510SdarrenrSUBDIR+= usr.bin 59255332Scy.endif 60145510Sdarrenr.if exists(usr.sbin) 61145510SdarrenrSUBDIR+= usr.sbin 62145510Sdarrenr.endif 63145510Sdarrenr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 64145510SdarrenrSUBDIR+= secure 65255332Scy.endif 66145510Sdarrenr.if exists(lkm) && !defined(NOLKM) 67145510SdarrenrSUBDIR+= lkm 68145510Sdarrenr.endif 69145510Sdarrenr 70255332Scy# etc must be last for "distribute" to work 71145510Sdarrenr.if exists(etc) && make(distribute) 72145510SdarrenrSUBDIR+= etc 73255332Scy.endif 74145510Sdarrenr 75145510Sdarrenr# These are last, since it is nice to at least get the base system 76255332Scy# rebuilt before you do them. 77145510Sdarrenr.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 78255332ScySUBDIR+= local 79255332Scy.endif 80255332Scy.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 81145510SdarrenrSUBDIR+= ports 82145510Sdarrenr.endif 83255332Scy 84255332Scy# Handle the -DNOOBJDIR and -DNOCLEANDIR 85145510Sdarrenr.if defined(NOOBJDIR) 86145510SdarrenrOBJDIR= 87255332Scy.else 88255332ScyOBJDIR= obj 89145510Sdarrenr.endif 90145510Sdarrenr 91145510Sdarrenr.if defined(NOCLEAN) 92145510SdarrenrCLEANDIR= 93255332ScyWORLD_CLEANDIST=obj 94255332Scy.else 95145510SdarrenrWORLD_CLEANDIST=cleandist 96255332Scy.if defined(NOCLEANDIR) 97255332ScyCLEANDIR= clean 98255332Scy.else 99255332ScyCLEANDIR= cleandir 100255332Scy.endif 101255332Scy.endif 102255332Scy 103255332Scyworld: hierarchy mk $(WORLD_CLEANDIST) includes lib-tools libraries build-tools 104145510Sdarrenr @echo "--------------------------------------------------------------" 105145510Sdarrenr @echo " Rebuilding ${DESTDIR} The whole thing" 106170268Sdarrenr @echo "--------------------------------------------------------------" 107255332Scy @echo 108145510Sdarrenr ${MAKE} depend all install 109145510Sdarrenr cd ${.CURDIR}/share/man && ${MAKE} makedb 110145510Sdarrenr 111145510Sdarrenrreinstall: hierarchy mk includes 112145510Sdarrenr @echo "--------------------------------------------------------------" 113145510Sdarrenr @echo " Reinstall ${DESTDIR} The whole thing" 114145510Sdarrenr @echo "--------------------------------------------------------------" 115145510Sdarrenr @echo 116145510Sdarrenr ${MAKE} install 117145510Sdarrenr cd ${.CURDIR}/share/man && ${MAKE} makedb 118145510Sdarrenr 119145510Sdarrenrhierarchy: 120145510Sdarrenr @echo "--------------------------------------------------------------" 121145510Sdarrenr @echo " Making hierarchy" 122145510Sdarrenr @echo "--------------------------------------------------------------" 123145510Sdarrenr cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 124145510Sdarrenr 125145510Sdarrenrupdate: 126145510Sdarrenr.if defined(SUP_UPDATE) 127145510Sdarrenr @echo "--------------------------------------------------------------" 128145510Sdarrenr @echo "Running sup" 129145510Sdarrenr @echo "--------------------------------------------------------------" 130145510Sdarrenr @sup -v ${SUPFILE} 131145510Sdarrenr.if defined(SUPFILE1) 132145510Sdarrenr @sup -v ${SUPFILE1} 133145510Sdarrenr.endif 134145510Sdarrenr.if defined(SUPFILE2) 135145510Sdarrenr @sup -v ${SUPFILE2} 136145510Sdarrenr.endif 137145510Sdarrenr.endif 138255332Scy.if defined(CVS_UPDATE) 139145510Sdarrenr @echo "--------------------------------------------------------------" 140145510Sdarrenr @echo "Updating /usr/src from cvs repository" ${CVSROOT} 141145510Sdarrenr @echo "--------------------------------------------------------------" 142255332Scy cd ${.CURDIR} && cvs update -P -d 143255332Scy.endif 144255332Scy 145255332Scycleandist: 146255332Scy.if !defined(NOCLEANDIR) 147255332Scy @echo "--------------------------------------------------------------" 148255332Scy @echo " Cleaning up the source tree, and rebuilding the obj tree" 149255332Scy @echo "--------------------------------------------------------------" 150255332Scy @echo 151255332Scy here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 152145510Sdarrenr if test -d /usr/obj -a ! -d $$dest; then \ 153145510Sdarrenr mkdir -p $$dest; \ 154145510Sdarrenr else \ 155145510Sdarrenr true; \ 156145510Sdarrenr fi; \ 157145510Sdarrenr cd $$dest && rm -rf ${SUBDIR} 158145510Sdarrenr find . -name obj | xargs rm -rf 159145510Sdarrenr.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 160145510Sdarrenr # The cd is done as local may well be a symbolic link 161145510Sdarrenr -cd local && find . -name obj | xargs rm -rf 162145510Sdarrenr.endif 163145510Sdarrenr.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 164145510Sdarrenr # The cd is done as local may well be a symbolic link 165145510Sdarrenr -cd ports && find . -name obj | xargs rm -rf 166145510Sdarrenr.endif 167145510Sdarrenr ${MAKE} cleandir 168145510Sdarrenr ${MAKE} obj 169145510Sdarrenr.endif 170145510Sdarrenr 171145510Sdarrenrinstallmost: 172145510Sdarrenr @echo "--------------------------------------------------------------" 173145510Sdarrenr @echo " Installing programs only" 174145510Sdarrenr @echo "--------------------------------------------------------------" 175145510Sdarrenr cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} install 176145510Sdarrenr cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} install 177145510Sdarrenr cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} install 178145510Sdarrenr cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} install 179145510Sdarrenr cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 180145510Sdarrenr cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} install 181145510Sdarrenr cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} install 182145510Sdarrenr cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 183145510Sdarrenr#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 184145510Sdarrenr# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} installmost 185145510Sdarrenr#.endif 186145510Sdarrenr#.if !defined(NOSECURE) && !defined(NOCRYPT) 187145510Sdarrenr# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} installmost 188145510Sdarrenr#.endif 189145510Sdarrenr 190145510Sdarrenrmost: 191145510Sdarrenr @echo "--------------------------------------------------------------" 192145510Sdarrenr @echo " Building programs only" 193145510Sdarrenr @echo "--------------------------------------------------------------" 194145510Sdarrenr cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} all 195145510Sdarrenr cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} all 196145510Sdarrenr cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} all 197145510Sdarrenr cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} all 198145510Sdarrenr cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 199145510Sdarrenr cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} all 200145510Sdarrenr cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} all 201145510Sdarrenr cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 202145510Sdarrenr#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 203145510Sdarrenr# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} most 204145510Sdarrenr#.endif 205145510Sdarrenr#.if !defined(NOSECURE) && !defined(NOCRYPT) 206145510Sdarrenr# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} most 207145510Sdarrenr#.endif 208145510Sdarrenr 209145510Sdarrenrmk: 210145510Sdarrenr @echo "--------------------------------------------------------------" 211145510Sdarrenr @echo " Rebuilding ${DESTDIR}/usr/share/mk" 212145510Sdarrenr @echo "--------------------------------------------------------------" 213145510Sdarrenr cd ${.CURDIR}/share/mk && ${MAKE} install 214145510Sdarrenr 215145510Sdarrenrincludes: 216145510Sdarrenr @echo "--------------------------------------------------------------" 217145510Sdarrenr @echo " Rebuilding ${DESTDIR}/usr/include" 218145510Sdarrenr @echo "--------------------------------------------------------------" 219145510Sdarrenr @echo 220145510Sdarrenr.if defined(CLOBBER) 221145510Sdarrenr rm -rf ${DESTDIR}/usr/include/* 222145510Sdarrenr mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ 223145510Sdarrenr -p ${DESTDIR}/usr/include 224145510Sdarrenr.endif 225145510Sdarrenr cd ${.CURDIR}/include && ${MAKE} install 226145510Sdarrenr cd ${.CURDIR}/gnu/include && ${MAKE} install 227145510Sdarrenr cd ${.CURDIR}/gnu/lib/libreadline && ${MAKE} beforeinstall 228145510Sdarrenr cd ${.CURDIR}/gnu/lib/libregex && ${MAKE} beforeinstall 229145510Sdarrenr cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 230145510Sdarrenr cd ${.CURDIR}/gnu/lib/libdialog && ${MAKE} beforeinstall 231145510Sdarrenr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 232145510Sdarrenr cd ${.CURDIR}/eBones/include && ${MAKE} beforeinstall 233145510Sdarrenr cd ${.CURDIR}/eBones/lib/libkrb && ${MAKE} beforeinstall 234145510Sdarrenr.endif 235145510Sdarrenr cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 236145510Sdarrenr cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 237145510Sdarrenr cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 238145510Sdarrenr cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall 239145510Sdarrenr cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall 240145510Sdarrenr cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall 241145510Sdarrenr.if !defined(WANT_CSRG_LIBM) 242145510Sdarrenr cd ${.CURDIR}/lib/msun && ${MAKE} beforeinstall 243145510Sdarrenr.endif 244145510Sdarrenr cd ${.CURDIR}/lib/libpcap && ${MAKE} beforeinstall 245145510Sdarrenr cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 246145510Sdarrenr cd ${.CURDIR}/lib/libskey && ${MAKE} beforeinstall 247145510Sdarrenr cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall 248145510Sdarrenr cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall 249145510Sdarrenr cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall 250145510Sdarrenr cd ${.CURDIR}/lib/libforms && ${MAKE} beforeinstall 251145510Sdarrenr cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall 252145510Sdarrenr 253145510Sdarrenrlib-tools: 254145510Sdarrenr @echo "--------------------------------------------------------------" 255145510Sdarrenr @echo " Rebuilding tools needed to build the libraries" 256145510Sdarrenr @echo "--------------------------------------------------------------" 257145510Sdarrenr @echo 258145510Sdarrenr cd ${.CURDIR}/gnu/usr.bin/ld && \ 259145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 260145510Sdarrenr cd ${.CURDIR}/usr.bin/ar && \ 261145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 262145510Sdarrenr cd ${.CURDIR}/usr.bin/ranlib && \ 263255332Scy ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 264145510Sdarrenr cd ${.CURDIR}/usr.bin/nm && \ 265145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 266145510Sdarrenr cd ${.CURDIR}/usr.bin/lex/lib && \ 267145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 268145510Sdarrenr cd ${.CURDIR}/usr.bin/compile_et && \ 269145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} && \ 270145510Sdarrenr rm -f /usr/sbin/compile_et 271145510Sdarrenr cd ${.CURDIR}/usr.bin/mk_cmds && \ 272145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 273145510Sdarrenr 274145510Sdarrenrlibraries: 275145510Sdarrenr @echo "--------------------------------------------------------------" 276145510Sdarrenr @echo " Rebuilding ${DESTDIR}/usr/lib" 277145510Sdarrenr @echo "--------------------------------------------------------------" 278145510Sdarrenr @echo 279145510Sdarrenr.if defined(CLOBBER) 280145510Sdarrenr find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | \ 281145510Sdarrenr xargs rm -rf 282145510Sdarrenr.endif 283145510Sdarrenr.if exists(lib/libcompat) 284145510Sdarrenr cd ${.CURDIR}/lib/libcompat && \ 285145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 286145510Sdarrenr.endif 287145510Sdarrenr.if exists(lib/libncurses) 288145510Sdarrenr cd ${.CURDIR}/lib/libncurses && \ 289145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 290145510Sdarrenr.endif 291145510Sdarrenr.if exists(lib/libtermcap) 292145510Sdarrenr cd ${.CURDIR}/lib/libtermcap && \ 293145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 294145510Sdarrenr.endif 295145510Sdarrenr.if exists(gnu) 296145510Sdarrenr cd ${.CURDIR}/gnu/lib && \ 297145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 298145510Sdarrenr cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ 299145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 300145510Sdarrenr.endif 301145510Sdarrenr.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 302145510Sdarrenr cd ${.CURDIR}/secure/lib && \ 303145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 304255332Scy.endif 305255332Scy.if exists(lib) 306255332Scy cd ${.CURDIR}/lib/csu/i386 && \ 307145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 308145510Sdarrenr cd ${.CURDIR}/lib && \ 309145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 310255332Scy.endif 311145510Sdarrenr.if exists(usr.sbin/lex/lib) 312145510Sdarrenr cd ${.CURDIR}/usr.bin/lex/lib && \ 313255332Scy ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 314255332Scy.endif 315145510Sdarrenr.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 316145510Sdarrenr cd ${.CURDIR}/eBones/des && \ 317145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 318255332Scy cd ${.CURDIR}/eBones/lib && \ 319255332Scy ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 320255332Scy.endif 321255332Scy.if exists(usr.sbin/pcvt/keycap) 322145510Sdarrenr cd ${.CURDIR}/usr.sbin/pcvt/keycap && \ 323145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 324145510Sdarrenr.endif 325145510Sdarrenr 326145510Sdarrenrbuild-tools: 327145510Sdarrenr @echo "--------------------------------------------------------------" 328145510Sdarrenr @echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)" 329145510Sdarrenr @echo "--------------------------------------------------------------" 330255332Scy @echo 331145510Sdarrenr cd ${.CURDIR}/gnu/usr.bin/cc && \ 332145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 333145510Sdarrenr cd ${.CURDIR}/usr.bin/make && \ 334145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 335145510Sdarrenr cd ${.CURDIR}/usr.bin/symorder && \ 336145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 337145510Sdarrenr cd ${.CURDIR}/usr.bin/sgmlfmt && \ 338145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 339145510Sdarrenr cd ${.CURDIR}/share/sgml && \ 340145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 341145510Sdarrenr cd ${.CURDIR}/usr.sbin/zic && \ 342145510Sdarrenr ${MAKE} depend all install ${CLEANDIR} ${OBJDIR} 343145510Sdarrenr 344145510Sdarrenr.include <bsd.subdir.mk> 345145510Sdarrenr