Makefile revision 16591
1169689Skan# 2169689Skan# $Id: Makefile,v 1.83 1996/06/20 18:47:04 jkh Exp $ 3169689Skan# 4169689Skan# Make command line options: 5169689Skan# -DCLOBBER will remove /usr/include 6169689Skan# -DMAKE_LOCAL to add ./local to the SUBDIR list 7169689Skan# -DMAKE_PORTS to add ./ports to the SUBDIR list 8169689Skan# -DMAKE_EBONES to build eBones (KerberosIV) 9169689Skan# 10169689Skan# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir 11169689Skan# -DNOCLEAN do not clean at all 12169689Skan# -DNOCRYPT will prevent building of crypt versions 13169689Skan# -DNOLKM do not build loadable kernel modules 14169689Skan# -DNOOBJDIR do not run ``${MAKE} obj'' 15169689Skan# -DNOPROFILE do not build profiled libraries 16169689Skan# -DNOSECURE do not go into secure subdir 17169689Skan 18169689Skan# Put initial settings here. 19169689SkanSUBDIR= 20169689Skan 21169689Skan# We must do include and lib first so that the perl *.ph generation 22169689Skan# works correctly as it uses the header files installed by this. 23169689Skan.if exists(include) 24169689SkanSUBDIR+= include 25169689Skan.endif 26169689Skan.if exists(lib) 27169689SkanSUBDIR+= lib 28169689Skan.endif 29169689Skan 30169689Skan.if exists(bin) 31169689SkanSUBDIR+= bin 32169689Skan.endif 33169689Skan.if exists(contrib) 34169689SkanSUBDIR+= contrib 35169689Skan.endif 36169689Skan.if exists(games) 37169689SkanSUBDIR+= games 38169689Skan.endif 39169689Skan.if exists(gnu) 40169689SkanSUBDIR+= gnu 41169689Skan.endif 42169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 43169689SkanSUBDIR+= eBones 44169689Skan.endif 45169689Skan.if exists(libexec) 46169689SkanSUBDIR+= libexec 47169689Skan.endif 48169689Skan.if exists(sbin) 49169689SkanSUBDIR+= sbin 50169689Skan.endif 51169689Skan.if exists(share) 52169689SkanSUBDIR+= share 53169689Skan.endif 54169689Skan.if exists(sys) 55169689SkanSUBDIR+= sys 56169689Skan.endif 57169689Skan.if exists(usr.bin) 58169689SkanSUBDIR+= usr.bin 59169689Skan.endif 60169689Skan.if exists(usr.sbin) 61169689SkanSUBDIR+= usr.sbin 62169689Skan.endif 63169689Skan.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 64169689SkanSUBDIR+= secure 65169689Skan.endif 66169689Skan.if exists(lkm) && !defined(NOLKM) 67169689SkanSUBDIR+= lkm 68169689Skan.endif 69169689Skan 70169689Skan# etc must be last for "distribute" to work 71169689Skan.if exists(etc) && make(distribute) 72169689SkanSUBDIR+= etc 73169689Skan.endif 74169689Skan 75169689Skan# These are last, since it is nice to at least get the base system 76169689Skan# rebuilt before you do them. 77169689Skan.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 78169689SkanSUBDIR+= local 79169689Skan.endif 80169689Skan.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 81169689SkanSUBDIR+= ports 82169689Skan.endif 83169689Skan 84169689Skan# Handle the -DNOOBJDIR and -DNOCLEANDIR 85169689Skan.if defined(NOOBJDIR) 86169689SkanOBJDIR= 87169689Skan.else 88169689SkanOBJDIR= obj 89169689Skan.endif 90169689Skan 91169689Skan.if defined(NOCLEAN) 92169689SkanCLEANDIR= 93169689SkanWORLD_CLEANDIST=obj 94169689Skan.else 95169689SkanWORLD_CLEANDIST=cleandist 96169689Skan.if defined(NOCLEANDIR) 97169689SkanCLEANDIR= clean 98169689Skan.else 99169689SkanCLEANDIR= cleandir 100169689Skan.endif 101169689Skan.endif 102169689Skan 103169689SkanMK_FLAGS= -DNOMAN -DNOPROFILE 104169689Skan 105169689Skan.if !target(pre-world) 106169689Skanpre-world: 107169689Skan @/usr/bin/true 108169689Skan.endif 109169689Skan 110169689Skanworld: pre-world hierarchy mk $(WORLD_CLEANDIST) bootstrap include-tools includes lib-tools libraries build-tools 111169689Skan @echo "--------------------------------------------------------------" 112169689Skan @echo " Rebuilding ${DESTDIR} The whole thing" 113169689Skan @echo "--------------------------------------------------------------" 114169689Skan @echo 115169689Skan ${MAKE} depend all install 116169689Skan cd ${.CURDIR}/share/man && ${MAKE} makedb 117169689Skan.if target(post-world) 118169689Skan cd ${.CURDIR} && ${MAKE} post-world 119169689Skan.endif 120169689Skan @echo "make world completed on `date`" 121169689Skan 122169689Skanbootstrap: 123169689Skan cd ${.CURDIR}/usr.bin/xlint && ${MAKE} ${MK_FLAGS} lint1 lint2 xlint 124169689Skan cd ${.CURDIR}/usr.bin/xlint/lint1 && ${MAKE} ${MK_FLAGS} install 125169689Skan cd ${.CURDIR}/usr.bin/xlint/lint2 && ${MAKE} ${MK_FLAGS} install 126169689Skan cd ${.CURDIR}/usr.bin/xlint/xlint && ${MAKE} ${MK_FLAGS} install 127169689Skan cd ${.CURDIR}/usr.bin/lex && ${MAKE} ${MK_FLAGS} bootstrap && \ 128169689Skan ${MAKE} ${MK_FLAGS} all install 129169689Skan 130169689Skanreinstall: hierarchy mk includes 131169689Skan @echo "--------------------------------------------------------------" 132169689Skan @echo " Reinstall ${DESTDIR} The whole thing" 133169689Skan @echo "--------------------------------------------------------------" 134169689Skan @echo 135169689Skan ${MAKE} install 136169689Skan cd ${.CURDIR}/share/man && ${MAKE} makedb 137169689Skan 138169689Skanhierarchy: 139169689Skan @echo "--------------------------------------------------------------" 140169689Skan @echo " Making hierarchy" 141169689Skan @echo "--------------------------------------------------------------" 142169689Skan cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 143169689Skan 144169689Skanupdate: 145169689Skan.if defined(SUP_UPDATE) 146169689Skan @echo "--------------------------------------------------------------" 147169689Skan @echo "Running sup" 148169689Skan @echo "--------------------------------------------------------------" 149169689Skan @sup -v ${SUPFILE} 150169689Skan.if defined(SUPFILE1) 151169689Skan @sup -v ${SUPFILE1} 152169689Skan.endif 153169689Skan.if defined(SUPFILE2) 154169689Skan @sup -v ${SUPFILE2} 155169689Skan.endif 156169689Skan.endif 157169689Skan.if defined(CVS_UPDATE) 158169689Skan @echo "--------------------------------------------------------------" 159169689Skan @echo "Updating /usr/src from cvs repository" ${CVSROOT} 160169689Skan @echo "--------------------------------------------------------------" 161169689Skan cd ${.CURDIR} && cvs -q update -P -d 162169689Skan.endif 163169689Skan 164169689Skancleandist: 165169689Skan.if !defined(NOCLEANDIR) 166169689Skan @echo "--------------------------------------------------------------" 167169689Skan @echo " Cleaning up the source tree, and rebuilding the obj tree" 168169689Skan @echo "--------------------------------------------------------------" 169169689Skan @echo 170169689Skan here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 171169689Skan if test -d /usr/obj -a ! -d $$dest; then \ 172169689Skan mkdir -p $$dest; \ 173169689Skan else \ 174169689Skan true; \ 175169689Skan fi; \ 176169689Skan cd $$dest && rm -rf ${SUBDIR} 177169689Skan find . -name obj | xargs rm -rf 178169689Skan.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 179169689Skan # The cd is done as local may well be a symbolic link 180169689Skan -cd local && find . -name obj | xargs rm -rf 181169689Skan.endif 182169689Skan.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 183169689Skan # The cd is done as local may well be a symbolic link 184169689Skan -cd ports && find . -name obj | xargs rm -rf 185169689Skan.endif 186169689Skan ${MAKE} cleandir 187169689Skan ${MAKE} obj 188169689Skan.endif 189169689Skan 190169689Skaninstallmost: 191169689Skan @echo "--------------------------------------------------------------" 192169689Skan @echo " Installing programs only" 193169689Skan @echo "--------------------------------------------------------------" 194169689Skan cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} install 195169689Skan cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} install 196169689Skan cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} install 197169689Skan cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} install 198169689Skan cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 199169689Skan cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} install 200169689Skan cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} install 201169689Skan cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 202169689Skan#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 203169689Skan# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} installmost 204169689Skan#.endif 205169689Skan#.if !defined(NOSECURE) && !defined(NOCRYPT) 206169689Skan# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} installmost 207169689Skan#.endif 208169689Skan 209169689Skanmost: 210169689Skan @echo "--------------------------------------------------------------" 211169689Skan @echo " Building programs only" 212169689Skan @echo "--------------------------------------------------------------" 213169689Skan cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} all 214169689Skan cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} all 215169689Skan cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} all 216169689Skan cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} all 217169689Skan cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 218169689Skan cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} all 219169689Skan cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} all 220169689Skan cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 221169689Skan#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 222169689Skan# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} most 223169689Skan#.endif 224169689Skan#.if !defined(NOSECURE) && !defined(NOCRYPT) 225169689Skan# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} most 226169689Skan#.endif 227169689Skan 228169689Skanmk: 229169689Skan @echo "--------------------------------------------------------------" 230169689Skan @echo " Rebuilding ${DESTDIR}/usr/share/mk" 231169689Skan @echo "--------------------------------------------------------------" 232169689Skan cd ${.CURDIR}/share/mk && ${MAKE} install 233169689Skan 234169689Skanincludes: 235169689Skan @echo "--------------------------------------------------------------" 236169689Skan @echo " Rebuilding ${DESTDIR}/usr/include" 237169689Skan @echo "--------------------------------------------------------------" 238169689Skan @echo 239169689Skan.if defined(CLOBBER) 240169689Skan rm -rf ${DESTDIR}/usr/include/* 241169689Skan mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ 242169689Skan -p ${DESTDIR}/usr/include 243169689Skan.endif 244169689Skan cd ${.CURDIR}/include && ${MAKE} install 245169689Skan cd ${.CURDIR}/gnu/include && ${MAKE} install 246169689Skan cd ${.CURDIR}/gnu/lib/libreadline && ${MAKE} beforeinstall 247169689Skan cd ${.CURDIR}/gnu/lib/libregex && ${MAKE} beforeinstall 248169689Skan cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 249169689Skan cd ${.CURDIR}/gnu/lib/libdialog && ${MAKE} beforeinstall 250169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 251169689Skan cd ${.CURDIR}/eBones/include && ${MAKE} beforeinstall 252169689Skan cd ${.CURDIR}/eBones/lib/libkrb && ${MAKE} beforeinstall 253169689Skan cd ${.CURDIR}/eBones/lib/libkadm && ${MAKE} beforeinstall 254169689Skan.endif 255169689Skan cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 256169689Skan cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 257169689Skan cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 258169689Skan cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall 259169689Skan cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall 260169689Skan cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall 261169689Skan.if !defined(WANT_CSRG_LIBM) 262169689Skan cd ${.CURDIR}/lib/msun && ${MAKE} beforeinstall 263169689Skan.endif 264169689Skan cd ${.CURDIR}/lib/libpcap && ${MAKE} beforeinstall 265169689Skan cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 266169689Skan cd ${.CURDIR}/lib/libskey && ${MAKE} beforeinstall 267169689Skan cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall 268169689Skan cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall 269169689Skan cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall 270169689Skan cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall 271169689Skan cd ${.CURDIR}/lib/libutil && ${MAKE} beforeinstall 272169689Skan 273169689Skanlib-tools: 274169689Skan @echo "--------------------------------------------------------------" 275169689Skan @echo " Rebuilding tools needed to build the libraries" 276169689Skan @echo "--------------------------------------------------------------" 277169689Skan @echo 278169689Skan cd ${.CURDIR}/usr.bin/xinstall && \ 279169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 280169689Skan cd ${.CURDIR}/gnu/usr.bin/ld && \ 281169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 282169689Skan cd ${.CURDIR}/usr.bin/ar && \ 283169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 284169689Skan cd ${.CURDIR}/usr.bin/ranlib && \ 285169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 286169689Skan cd ${.CURDIR}/usr.bin/nm && \ 287169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 288169689Skan cd ${.CURDIR}/usr.bin/lex/lib && \ 289169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 290169689Skan cd ${.CURDIR}/usr.bin/compile_et && \ 291169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} && \ 292169689Skan rm -f /usr/sbin/compile_et 293169689Skan cd ${.CURDIR}/usr.bin/mk_cmds && \ 294169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 295169689Skan 296169689Skanlibraries: 297169689Skan @echo "--------------------------------------------------------------" 298169689Skan @echo " Rebuilding ${DESTDIR}/usr/lib" 299169689Skan @echo "--------------------------------------------------------------" 300169689Skan @echo 301169689Skan.if exists(lib/libcompat) 302169689Skan cd ${.CURDIR}/lib/libcompat && \ 303169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 304169689Skan.endif 305169689Skan.if exists(lib/libncurses) 306169689Skan cd ${.CURDIR}/lib/libncurses && \ 307169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 308169689Skan.endif 309169689Skan.if exists(lib/libtermcap) 310169689Skan cd ${.CURDIR}/lib/libtermcap && \ 311169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 312169689Skan.endif 313169689Skan.if exists(gnu) 314169689Skan cd ${.CURDIR}/gnu/lib && \ 315169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 316169689Skan cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ 317169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 318169689Skan.endif 319169689Skan.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 320169689Skan cd ${.CURDIR}/secure/lib && \ 321169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 322169689Skan.endif 323169689Skan.if exists(lib) 324169689Skan cd ${.CURDIR}/lib/csu/i386 && \ 325169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 326169689Skan cd ${.CURDIR}/lib && \ 327169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 328169689Skan.endif 329169689Skan.if exists(usr.sbin/lex/lib) 330169689Skan cd ${.CURDIR}/usr.bin/lex/lib && \ 331169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 332169689Skan.endif 333169689Skan.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 334169689Skan cd ${.CURDIR}/eBones/lib && \ 335169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 336169689Skan.endif 337169689Skan.if exists(usr.sbin/pcvt/keycap) 338169689Skan cd ${.CURDIR}/usr.sbin/pcvt/keycap && \ 339169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 340169689Skan.endif 341169689Skan 342169689Skaninclude-tools: 343169689Skan @echo "--------------------------------------------------------------" 344169689Skan @echo " Rebuild tools necessary to build the include files" 345169689Skan @echo "--------------------------------------------------------------" 346169689Skan @echo 347169689Skan cd ${.CURDIR}/usr.bin/xinstall && \ 348169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 349169689Skan cd ${.CURDIR}/usr.bin/rpcgen && \ 350169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 351169689Skan 352169689Skanbuild-tools: 353169689Skan @echo "--------------------------------------------------------------" 354169689Skan @echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)" 355169689Skan @echo "--------------------------------------------------------------" 356169689Skan @echo 357169689Skan cd ${.CURDIR}/gnu/usr.bin/cc && \ 358169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 359169689Skan cd ${.CURDIR}/usr.bin/make && \ 360169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 361169689Skan cd ${.CURDIR}/usr.bin/symorder && \ 362169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 363169689Skan cd ${.CURDIR}/usr.bin/sgmlfmt && \ 364169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 365169689Skan cd ${.CURDIR}/share/sgml && \ 366169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 367169689Skan cd ${.CURDIR}/usr.sbin/zic && \ 368169689Skan ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 369169689Skan 370169689Skan.include <bsd.subdir.mk> 371169689Skan