Add -DNOCLEAN option which totally and utterly disables any form of

cleaning during a make.  This may give you more rope to hang yourself if
you are caught with some subtle dependency on installed binaries in your
build, but if you are doing daily 'make -DNOCLEAN world' it's not too bad
at all.  It could take as little as 30 minutes to do an entire sync-up of
your binaries if everything's up to date, especially if you are using
'INSTALL=install -C' in /etc/make.conf (highly recomended!).

Also, add a "reinstall" target. You can do a 'make DESTDIR=/mnt reinstall'
where /mnt is the nfs root of a machine and you get the install parts of
the make world run on it.

I saw this on -hackers quite some time ago and included it in my Makefile
and have been using it on and off for a while. Alas, I cannot find the
actual message with the author's name...
This commit is contained in:
Peter Wemm 1995-11-25 01:28:07 +00:00
parent 3c64c6ee8d
commit 4620010dfc

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.66 1995/11/05 18:42:23 jfieber Exp $
# $Id: Makefile,v 1.67 1995/11/09 09:58:17 jkh Exp $
#
# Make command line options:
# -DCLOBBER will remove /usr/include and MOST of /usr/lib
@ -8,6 +8,7 @@
# -DMAKE_EBONES to build eBones (KerberosIV)
#
# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
# -DNOCLEAN do not clean at all
# -DNOCRYPT will prevent building of crypt versions
# -DNOLKM do not build loadable kernel modules
# -DNOOBJDIR do not run ``${MAKE} obj''
@ -86,13 +87,20 @@ OBJDIR=
.else
OBJDIR= obj
.endif
.if defined(NOCLEAN)
CLEANDIR=
WORLD_CLEANDIST=obj
.else
WORLD_CLEANDIST=cleandist
.if defined(NOCLEANDIR)
CLEANDIR= clean
.else
CLEANDIR= cleandir
.endif
.endif
world: hierarchy mk cleandist includes lib-tools libraries build-tools
world: hierarchy mk $(WORLD_CLEANDIST) includes lib-tools libraries build-tools
@echo "--------------------------------------------------------------"
@echo " Rebuilding ${DESTDIR} The whole thing"
@echo "--------------------------------------------------------------"
@ -100,6 +108,14 @@ world: hierarchy mk cleandist includes lib-tools libraries build-tools
${MAKE} depend all install
cd ${.CURDIR}/share/man && ${MAKE} makedb
reinstall: hierarchy mk includes
@echo "--------------------------------------------------------------"
@echo " Reinstall ${DESTDIR} The whole thing"
@echo "--------------------------------------------------------------"
@echo
${MAKE} install
cd ${.CURDIR}/share/man && ${MAKE} makedb
hierarchy:
@echo "--------------------------------------------------------------"
@echo " Making hierarchy"