+#
+# setenv NOCLEANDIR will prevent make cleandirs from being run
+#
+.if defined(NOCLEANDIR)
+CLEANDIR=
+.else
+CLEANDIR= cleandir
+.endif
+
+# Where is the c-compiler source. Change this, and gnu/usr.bin/Makefile if you
+# want to use another cc (gcc-2.5.8 for instance)
+CCDIR= ${.CURDIR}/gnu/usr.bin/cc
+#CCDIR= ${.CURDIR}/gnu/usr.bin/cc25
+
+world: directories cleandist mk includes libraries tools mdec
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR} The whole thing"
+ @echo "--------------------------------------------------------------"
+ @echo
+ make depend all install
+ cd ${.CURDIR}/share/man; make makedb
+
+directories:
+ @echo "--------------------------------------------------------------"
+ @echo " Making directories"
+ @echo "--------------------------------------------------------------"
+ cd ${.CURDIR}/etc; make distrib-dirs
+
+cleandist:
+.if !defined(NOCLEANDIR)
+ @echo "--------------------------------------------------------------"
+ @echo " Cleaning up the source tree, and rebuilding the obj tree"
+ @echo "--------------------------------------------------------------"
+ @echo
+ here=`pwd`; dest=/usr/obj`echo $$here | sed 's,^/usr/src,,'`; \
+ if test -d /usr/obj -a ! -d $$dest; then \
+ mkdir -p $$dest; \
+ else \
+ true; \
+ fi; \
+ cd $$dest; rm -rf ${SUBDIR}
+ find . -name obj | xargs -n30 rm -rf
+.if defined(MAKE_LOCAL) & exists(local) & exists(local/Makefile)
+ # The cd is done as local may well be a symbolic link
+ -cd local ; find . -name obj | xargs -n30 rm -rf
+.endif
+.if defined(MAKE_PORTS) & exists(ports) & exists(ports/Makefile)
+ # The cd is done as local may well be a symbolic link
+ -cd ports ; find . -name obj | xargs -n30 rm -rf
+.endif
+ make cleandir
+ make obj
+.endif
+
+mk:
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR}/usr/share/mk"
+ @echo "--------------------------------------------------------------"
+.if defined(CLOBBER)
+ # DONT DO THIS!! rm -rf ${DESTDIR}/usr/share/mk
+ # DONT DO THIS!! mkdir ${DESTDIR}/usr/share/mk
+ # DONT DO THIS!! chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/share/mk
+ # DONT DO THIS!! chmod 755 ${DESTDIR}/usr/share/mk
+.endif
+ cd ${.CURDIR}/share/mk; make clean all install;
+
+includes:
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR}/usr/include"
+ @echo "--------------------------------------------------------------"
+ @echo
+.if defined(CLOBBER)
+ rm -rf ${DESTDIR}/usr/include
+ mkdir ${DESTDIR}/usr/include
+ chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include
+ chmod 755 ${DESTDIR}/usr/include
+.endif
+ cd ${.CURDIR}/include; make clean all install
+ cd ${CCDIR}/libobjc; make beforeinstall
+ cd ${.CURDIR}/gnu/lib/libg++; make beforeinstall
+ cd ${.CURDIR}/gnu/lib/libreadline; make beforeinstall
+ cd ${.CURDIR}/lib/libcurses; make beforeinstall
+ cd ${.CURDIR}/lib/libc; make beforeinstall
+.if !defined(NOCRYPT) && exists(${.CURDIR}/kerberosIV)
+ cd ${.CURDIR}/kerberosIV/include; make clean all install
+.endif
+
+# You MUST run this the first time you get the new sources to boot strap
+# the shared library tools onto you system. This target should only
+# need to be run once on a system.
+
+bootstrapld: directories cleandist mk includes
+ @echo "--------------------------------------------------------------"
+ @echo " Building new shlib compiler tools"
+ @echo "--------------------------------------------------------------"
+ # These tools need to be built very early due to a.out.h changes:
+ # It is possible that ar is needed
+ cd ${.CURDIR}/usr.bin/mkdep; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/nm; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/ranlib; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/strip; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/usr.bin/ld; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/usr.bin/as; make depend all install ${CLEANDIR} obj
+ cd ${CCDIR}; make -DNOPIC depend all install ${CLEANDIR} obj
+ cd ${CCDIR}/libgcc; make all install ${CLEANDIR} obj
+ cd ${.CURDIR}/lib/csu.i386; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/lib/libc; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/usr.bin/ld/rtld; make depend all install ${CLEANDIR} obj
+
+# Standard database make routines are slow especially for big passwd files.
+# Moreover, *pwd.db bases are too big and waste root space. You can have
+# much faster routines with small *pwd.db, but loose binary compatibility
+# with previous versions and with other BSD-like systems. If you want to
+# setup much faster routines, define envirnoment variable (f.e. 'setenv
+# PW_COMPACT' in csh) and use target into /usr/src/Makefile. If you will
+# want to return this changes back, use the same target without defining
+# PW_COMPACT.
+
+bootstrappwd: #directories
+ -rm -f ${.CURDIR}/lib/libc/obj/getpwent.o ${.CURDIR}/lib/libc/getpwent.o
+ cd ${.CURDIR}/lib/libc; make all
+ -rm -f ${.CURDIR}/usr.sbin/pwd_mkdb/obj/pwd_mkdb.o ${.CURDIR}/usr.sbin/pwd_mkdb/pwd_mkdb.o
+ cd ${.CURDIR}/usr.sbin/pwd_mkdb; make all install ${CLEANDIR}
+ cp /etc/master.passwd /etc/mp.t; pwd_mkdb /etc/mp.t
+ SLIB=`basename ${.CURDIR}/lib/libc/obj/libc.so.*`; \
+ cp ${.CURDIR}/lib/libc/obj/$$SLIB /usr/lib/$$SLIB.tmp; \
+ mv /usr/lib/$$SLIB.tmp /usr/lib/$$SLIB
+ cd ${.CURDIR}/lib/libc; make install ${CLEANDIR}
+ cd ${.CURDIR}/usr.bin/passwd; make clean all install ${CLEANDIR}
+ cd ${.CURDIR}/usr.bin/chpass; make clean all install ${CLEANDIR}
+ cd ${.CURDIR}/bin; make clean all install ${CLEANDIR}
+ cd ${.CURDIR}/sbin; make clean all install ${CLEANDIR}
+ @echo "--------------------------------------------------------------"
+ @echo " Do a reboot now because all daemons need restarting"
+ @echo "--------------------------------------------------------------"
+
+libraries:
+ # setenv NOPROFILE if you do not want profiled libraries
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR}/usr/lib"
+ @echo "--------------------------------------------------------------"
+ @echo
+.if defined(CLOBBER)
+ find ${DESTDIR}/usr/lib \! -name '*.s[ao].*' -a \! -type d | xargs -n30 rm -rf
+.endif
+ cd ${.CURDIR}/lib; make depend all install ${CLEANDIR} obj
+ cd ${CCDIR}/libgcc; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/lib/libg++; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/lib/libregex; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/lib/libmalloc; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/gnu/lib/libreadline; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/lex; make depend all install ${CLEANDIR} obj
+.if exists(${.CURDIR}/kerberosIV) && !defined(NOCRYPT)
+ cd ${.CURDIR}/kerberosIV/des; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/kerberosIV/krb; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/kerberosIV/kdb; make depend all install ${CLEANDIR} obj
+.endif
+
+tools:
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR} Compiler and Make"
+ @echo "--------------------------------------------------------------"
+ @echo
+ cd ${CCDIR}; make depend all install ${CLEANDIR} obj
+ cd ${.CURDIR}/usr.bin/make; make depend all install ${CLEANDIR} obj
+
+MDEC_OPT?=
+mdec:
+ @echo "--------------------------------------------------------------"
+ @echo " Rebuilding ${DESTDIR}/usr/mdec"
+ @echo "--------------------------------------------------------------"
+ @echo
+.if ${MACHINE} == "i386"
+ cd ${.CURDIR}/sys/i386/boot; make ${MDEC_OPT} depend all install ${CLEANDIR}
+.if defined (DESTDIR)
+ cd /usr/mdec; find . | cpio -pdamuv ${DESTDIR}/usr/mdec
+.endif
+.endif
+