1# 2# $Id: Makefile,v 1.78 1996/03/24 13:16:45 paul Exp $ 3# 4# Make command line options: 5# -DCLOBBER will remove /usr/include 6# -DMAKE_LOCAL to add ./local to the SUBDIR list 7# -DMAKE_PORTS to add ./ports to the SUBDIR list 8# -DMAKE_EBONES to build eBones (KerberosIV) 9# 10# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir 11# -DNOCLEAN do not clean at all 12# -DNOCRYPT will prevent building of crypt versions 13# -DNOLKM do not build loadable kernel modules 14# -DNOOBJDIR do not run ``${MAKE} obj'' 15# -DNOPROFILE do not build profiled libraries 16# -DNOSECURE do not go into secure subdir 17 18# Put initial settings here. 19SUBDIR= 20 21# We must do include and lib first so that the perl *.ph generation 22# works correctly as it uses the header files installed by this. 23.if exists(include) 24SUBDIR+= include 25.endif 26.if exists(lib) 27SUBDIR+= lib 28.endif 29 30.if exists(bin) 31SUBDIR+= bin 32.endif 33.if exists(contrib) 34SUBDIR+= contrib 35.endif 36.if exists(games) 37SUBDIR+= games 38.endif 39.if exists(gnu) 40SUBDIR+= gnu 41.endif 42.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 43SUBDIR+= eBones 44.endif 45.if exists(libexec) 46SUBDIR+= libexec 47.endif 48.if exists(sbin) 49SUBDIR+= sbin 50.endif 51.if exists(share) 52SUBDIR+= share 53.endif 54.if exists(sys) 55SUBDIR+= sys 56.endif 57.if exists(usr.bin) 58SUBDIR+= usr.bin 59.endif 60.if exists(usr.sbin) 61SUBDIR+= usr.sbin 62.endif 63.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 64SUBDIR+= secure 65.endif 66.if exists(lkm) && !defined(NOLKM) 67SUBDIR+= lkm 68.endif 69 70# etc must be last for "distribute" to work 71.if exists(etc) && make(distribute) 72SUBDIR+= etc 73.endif 74 75# These are last, since it is nice to at least get the base system 76# rebuilt before you do them. 77.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 78SUBDIR+= local 79.endif 80.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 81SUBDIR+= ports 82.endif 83 84# Handle the -DNOOBJDIR and -DNOCLEANDIR 85.if defined(NOOBJDIR) 86OBJDIR= 87.else 88OBJDIR= obj 89.endif 90 91.if defined(NOCLEAN) 92CLEANDIR= 93WORLD_CLEANDIST=obj 94.else 95WORLD_CLEANDIST=cleandist 96.if defined(NOCLEANDIR) 97CLEANDIR= clean 98.else 99CLEANDIR= cleandir 100.endif 101.endif 102 103MK_FLAGS= -DNOMAN -DNOPROFILE 104 105world: hierarchy mk $(WORLD_CLEANDIST) bootstrap include-tools includes lib-tools libraries build-tools 106 @echo "--------------------------------------------------------------" 107 @echo " Rebuilding ${DESTDIR} The whole thing" 108 @echo "--------------------------------------------------------------" 109 @echo 110 ${MAKE} depend all install 111 cd ${.CURDIR}/share/man && ${MAKE} makedb 112 @echo "make world completed on `date`" 113 114bootstrap: 115 cd ${.CURDIR}/usr.bin/xlint && ${MAKE} ${MK_FLAGS} lint1 lint2 xlint 116 cd ${.CURDIR}/usr.bin/xlint/lint1 && ${MAKE} ${MK_FLAGS} install 117 cd ${.CURDIR}/usr.bin/xlint/lint2 && ${MAKE} ${MK_FLAGS} install 118 cd ${.CURDIR}/usr.bin/xlint/xlint && ${MAKE} ${MK_FLAGS} install 119 120reinstall: hierarchy mk includes 121 @echo "--------------------------------------------------------------" 122 @echo " Reinstall ${DESTDIR} The whole thing" 123 @echo "--------------------------------------------------------------" 124 @echo 125 ${MAKE} install 126 cd ${.CURDIR}/share/man && ${MAKE} makedb 127 128hierarchy: 129 @echo "--------------------------------------------------------------" 130 @echo " Making hierarchy" 131 @echo "--------------------------------------------------------------" 132 cd ${.CURDIR}/etc && ${MAKE} distrib-dirs 133 134update: 135.if defined(SUP_UPDATE) 136 @echo "--------------------------------------------------------------" 137 @echo "Running sup" 138 @echo "--------------------------------------------------------------" 139 @sup -v ${SUPFILE} 140.if defined(SUPFILE1) 141 @sup -v ${SUPFILE1} 142.endif 143.if defined(SUPFILE2) 144 @sup -v ${SUPFILE2} 145.endif 146.endif 147.if defined(CVS_UPDATE) 148 @echo "--------------------------------------------------------------" 149 @echo "Updating /usr/src from cvs repository" ${CVSROOT} 150 @echo "--------------------------------------------------------------" 151 cd ${.CURDIR} && cvs update -P -d 152.endif 153 154cleandist: 155.if !defined(NOCLEANDIR) 156 @echo "--------------------------------------------------------------" 157 @echo " Cleaning up the source tree, and rebuilding the obj tree" 158 @echo "--------------------------------------------------------------" 159 @echo 160 here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \ 161 if test -d /usr/obj -a ! -d $$dest; then \ 162 mkdir -p $$dest; \ 163 else \ 164 true; \ 165 fi; \ 166 cd $$dest && rm -rf ${SUBDIR} 167 find . -name obj | xargs rm -rf 168.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile) 169 # The cd is done as local may well be a symbolic link 170 -cd local && find . -name obj | xargs rm -rf 171.endif 172.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile) 173 # The cd is done as local may well be a symbolic link 174 -cd ports && find . -name obj | xargs rm -rf 175.endif 176 ${MAKE} cleandir 177 ${MAKE} obj 178.endif 179 180installmost: 181 @echo "--------------------------------------------------------------" 182 @echo " Installing programs only" 183 @echo "--------------------------------------------------------------" 184 cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} install 185 cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} install 186 cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} install 187 cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} install 188 cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 189 cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} install 190 cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} install 191 cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} install 192#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 193# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} installmost 194#.endif 195#.if !defined(NOSECURE) && !defined(NOCRYPT) 196# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} installmost 197#.endif 198 199most: 200 @echo "--------------------------------------------------------------" 201 @echo " Building programs only" 202 @echo "--------------------------------------------------------------" 203 cd ${.CURDIR}/bin && ${MAKE} ${.MAKEFLAGS} all 204 cd ${.CURDIR}/sbin && ${MAKE} ${.MAKEFLAGS} all 205 cd ${.CURDIR}/libexec && ${MAKE} ${.MAKEFLAGS} all 206 cd ${.CURDIR}/usr.bin && ${MAKE} ${.MAKEFLAGS} all 207 cd ${.CURDIR}/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 208 cd ${.CURDIR}/gnu/libexec && ${MAKE} ${.MAKEFLAGS} all 209 cd ${.CURDIR}/gnu/usr.bin && ${MAKE} ${.MAKEFLAGS} all 210 cd ${.CURDIR}/gnu/usr.sbin && ${MAKE} ${.MAKEFLAGS} all 211#.if defined(MAKE_EBONES) && !defined(NOCRYPT) 212# cd ${.CURDIR}/eBones && ${MAKE} ${.MAKEFLAGS} most 213#.endif 214#.if !defined(NOSECURE) && !defined(NOCRYPT) 215# cd ${.CURDIR}/secure && ${MAKE} ${.MAKEFLAGS} most 216#.endif 217 218mk: 219 @echo "--------------------------------------------------------------" 220 @echo " Rebuilding ${DESTDIR}/usr/share/mk" 221 @echo "--------------------------------------------------------------" 222 cd ${.CURDIR}/share/mk && ${MAKE} install 223 224includes: 225 @echo "--------------------------------------------------------------" 226 @echo " Rebuilding ${DESTDIR}/usr/include" 227 @echo "--------------------------------------------------------------" 228 @echo 229.if defined(CLOBBER) 230 rm -rf ${DESTDIR}/usr/include/* 231 mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ 232 -p ${DESTDIR}/usr/include 233.endif 234 cd ${.CURDIR}/include && ${MAKE} install 235 cd ${.CURDIR}/gnu/include && ${MAKE} install 236 cd ${.CURDIR}/gnu/lib/libreadline && ${MAKE} beforeinstall 237 cd ${.CURDIR}/gnu/lib/libregex && ${MAKE} beforeinstall 238 cd ${.CURDIR}/gnu/lib/libg++ && ${MAKE} beforeinstall 239 cd ${.CURDIR}/gnu/lib/libdialog && ${MAKE} beforeinstall 240.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 241 cd ${.CURDIR}/eBones/include && ${MAKE} beforeinstall 242 cd ${.CURDIR}/eBones/lib/libkrb && ${MAKE} beforeinstall 243 cd ${.CURDIR}/eBones/lib/libkadm && ${MAKE} beforeinstall 244.endif 245 cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall 246 cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall 247 cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall 248 cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall 249 cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall 250 cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall 251.if !defined(WANT_CSRG_LIBM) 252 cd ${.CURDIR}/lib/msun && ${MAKE} beforeinstall 253.endif 254 cd ${.CURDIR}/lib/libpcap && ${MAKE} beforeinstall 255 cd ${.CURDIR}/lib/librpcsvc && ${MAKE} beforeinstall 256 cd ${.CURDIR}/lib/libskey && ${MAKE} beforeinstall 257 cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall 258 cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall 259 cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall 260 cd ${.CURDIR}/lib/libforms && ${MAKE} beforeinstall 261 cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall 262 cd ${.CURDIR}/lib/libutil && ${MAKE} beforeinstall 263 264lib-tools: 265 @echo "--------------------------------------------------------------" 266 @echo " Rebuilding tools needed to build the libraries" 267 @echo "--------------------------------------------------------------" 268 @echo 269 cd ${.CURDIR}/usr.bin/xinstall && \ 270 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 271 cd ${.CURDIR}/gnu/usr.bin/ld && \ 272 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 273 cd ${.CURDIR}/usr.bin/ar && \ 274 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 275 cd ${.CURDIR}/usr.bin/ranlib && \ 276 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 277 cd ${.CURDIR}/usr.bin/nm && \ 278 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 279 cd ${.CURDIR}/usr.bin/lex/lib && \ 280 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 281 cd ${.CURDIR}/usr.bin/compile_et && \ 282 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} && \ 283 rm -f /usr/sbin/compile_et 284 cd ${.CURDIR}/usr.bin/mk_cmds && \ 285 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 286 287libraries: 288 @echo "--------------------------------------------------------------" 289 @echo " Rebuilding ${DESTDIR}/usr/lib" 290 @echo "--------------------------------------------------------------" 291 @echo 292.if exists(lib/libcompat) 293 cd ${.CURDIR}/lib/libcompat && \ 294 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 295.endif 296.if exists(lib/libncurses) 297 cd ${.CURDIR}/lib/libncurses && \ 298 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 299.endif 300.if exists(lib/libtermcap) 301 cd ${.CURDIR}/lib/libtermcap && \ 302 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 303.endif 304.if exists(gnu) 305 cd ${.CURDIR}/gnu/lib && \ 306 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 307 cd ${.CURDIR}/gnu/usr.bin/cc/libgcc && \ 308 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 309.endif 310.if exists(secure) && !defined(NOCRYPT) && !defined(NOSECURE) 311 cd ${.CURDIR}/secure/lib && \ 312 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 313.endif 314.if exists(lib) 315 cd ${.CURDIR}/lib/csu/i386 && \ 316 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 317 cd ${.CURDIR}/lib && \ 318 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 319.endif 320.if exists(usr.sbin/lex/lib) 321 cd ${.CURDIR}/usr.bin/lex/lib && \ 322 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 323.endif 324.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES) 325 cd ${.CURDIR}/eBones/lib && \ 326 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 327.endif 328.if exists(usr.sbin/pcvt/keycap) 329 cd ${.CURDIR}/usr.sbin/pcvt/keycap && \ 330 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 331.endif 332 333include-tools: 334 @echo "--------------------------------------------------------------" 335 @echo " Rebuild tools necessary to build the include files" 336 @echo "--------------------------------------------------------------" 337 @echo 338 cd ${.CURDIR}/usr.bin/xinstall && \ 339 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 340 cd ${.CURDIR}/usr.bin/rpcgen && \ 341 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 342 343build-tools: 344 @echo "--------------------------------------------------------------" 345 @echo " Rebuilding ${DESTDIR} C compiler, make, symorder, sgmlfmt and zic(8)" 346 @echo "--------------------------------------------------------------" 347 @echo 348 cd ${.CURDIR}/gnu/usr.bin/cc && \ 349 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 350 cd ${.CURDIR}/usr.bin/make && \ 351 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 352 cd ${.CURDIR}/usr.bin/symorder && \ 353 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 354 cd ${.CURDIR}/usr.bin/sgmlfmt && \ 355 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 356 cd ${.CURDIR}/share/sgml && \ 357 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 358 cd ${.CURDIR}/usr.sbin/zic && \ 359 ${MAKE} ${MK_FLAGS} depend all install ${CLEANDIR} ${OBJDIR} 360 361.include <bsd.subdir.mk> 362