Move 'make cleandir' from Makefile to Makefile.inc1.
This leads the way for fixing cross-build cleanup, and eventually replacing 'cleandir' with it during the build. Sponsored by: EMC / Isilon Storage Division MFC after: 2 weeks
This commit is contained in:
parent
32810cf3c6
commit
2753ba1ab6
34
Makefile
34
Makefile
@ -113,7 +113,7 @@
|
||||
|
||||
TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
|
||||
check-old check-old-dirs check-old-files check-old-libs \
|
||||
checkdpadd clean cleandepend cleandir \
|
||||
checkdpadd clean cleandepend cleandir cleanworld \
|
||||
delete-old delete-old-dirs delete-old-files delete-old-libs \
|
||||
depend distribute distributekernel distributekernel.debug \
|
||||
distributeworld distrib-dirs distribution doxygen \
|
||||
@ -211,38 +211,6 @@ ${TGTS}: upgrade_checks
|
||||
buildworld: upgrade_checks
|
||||
.endif
|
||||
|
||||
#
|
||||
# This 'cleanworld' target is not included in TGTS, because it is not a
|
||||
# recursive target. All of the work for it is done right here. It is
|
||||
# expected that BW_CANONICALOBJDIR == the CANONICALOBJDIR as would be
|
||||
# created by bsd.obj.mk, except that we don't want to .include that file
|
||||
# in this makefile.
|
||||
#
|
||||
# In the following, the first 'rm' in a series will usually remove all
|
||||
# files and directories. If it does not, then there are probably some
|
||||
# files with file flags set, so this unsets them and tries the 'rm' a
|
||||
# second time. There are situations where this target will be cleaning
|
||||
# some directories via more than one method, but that duplication is
|
||||
# needed to correctly handle all the possible situations. Removing all
|
||||
# files without file flags set in the first 'rm' instance saves time,
|
||||
# because 'chflags' will need to operate on fewer files afterwards.
|
||||
#
|
||||
BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
|
||||
cleanworld:
|
||||
.if ${.CURDIR} == ${.OBJDIR} || ${.CURDIR}/obj == ${.OBJDIR}
|
||||
.if exists(${BW_CANONICALOBJDIR}/)
|
||||
-rm -rf ${BW_CANONICALOBJDIR}/*
|
||||
-chflags -R 0 ${BW_CANONICALOBJDIR}
|
||||
rm -rf ${BW_CANONICALOBJDIR}/*
|
||||
.endif
|
||||
# To be safe in this case, fall back to a 'make cleandir'
|
||||
${_+_}@cd ${.CURDIR}; ${_MAKE} cleandir
|
||||
.else
|
||||
-rm -rf ${.OBJDIR}/*
|
||||
-chflags -R 0 ${.OBJDIR}
|
||||
rm -rf ${.OBJDIR}/*
|
||||
.endif
|
||||
|
||||
#
|
||||
# Handle the user-driven targets, using the source relative mk files.
|
||||
#
|
||||
|
@ -2205,6 +2205,36 @@ builddtb:
|
||||
|
||||
###############
|
||||
|
||||
# cleanworld
|
||||
# In the following, the first 'rm' in a series will usually remove all
|
||||
# files and directories. If it does not, then there are probably some
|
||||
# files with file flags set, so this unsets them and tries the 'rm' a
|
||||
# second time. There are situations where this target will be cleaning
|
||||
# some directories via more than one method, but that duplication is
|
||||
# needed to correctly handle all the possible situations. Removing all
|
||||
# files without file flags set in the first 'rm' instance saves time,
|
||||
# because 'chflags' will need to operate on fewer files afterwards.
|
||||
#
|
||||
# It is expected that BW_CANONICALOBJDIR == the CANONICALOBJDIR as would be
|
||||
# created by bsd.obj.mk, except that we don't want to .include that file
|
||||
# in this makefile.
|
||||
#
|
||||
BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
|
||||
cleanworld: .PHONY
|
||||
.if ${.CURDIR} == ${.OBJDIR} || ${.CURDIR}/obj == ${.OBJDIR}
|
||||
.if exists(${BW_CANONICALOBJDIR}/)
|
||||
-rm -rf ${BW_CANONICALOBJDIR}/*
|
||||
-chflags -R 0 ${BW_CANONICALOBJDIR}
|
||||
rm -rf ${BW_CANONICALOBJDIR}/*
|
||||
.endif
|
||||
# To be safe in this case, fall back to a 'make cleandir'
|
||||
${_+_}@cd ${.CURDIR}; ${MAKE} cleandir
|
||||
.else
|
||||
-rm -rf ${.OBJDIR}/*
|
||||
-chflags -R 0 ${.OBJDIR}
|
||||
rm -rf ${.OBJDIR}/*
|
||||
.endif
|
||||
|
||||
.if defined(TARGET) && defined(TARGET_ARCH)
|
||||
|
||||
.if ${TARGET} == ${MACHINE} && ${TARGET_ARCH} == ${MACHINE_ARCH}
|
||||
|
Loading…
Reference in New Issue
Block a user