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 \
|
TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
|
||||||
check-old check-old-dirs check-old-files check-old-libs \
|
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 \
|
delete-old delete-old-dirs delete-old-files delete-old-libs \
|
||||||
depend distribute distributekernel distributekernel.debug \
|
depend distribute distributekernel distributekernel.debug \
|
||||||
distributeworld distrib-dirs distribution doxygen \
|
distributeworld distrib-dirs distribution doxygen \
|
||||||
@ -211,38 +211,6 @@ ${TGTS}: upgrade_checks
|
|||||||
buildworld: upgrade_checks
|
buildworld: upgrade_checks
|
||||||
.endif
|
.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.
|
# 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 defined(TARGET) && defined(TARGET_ARCH)
|
||||||
|
|
||||||
.if ${TARGET} == ${MACHINE} && ${TARGET_ARCH} == ${MACHINE_ARCH}
|
.if ${TARGET} == ${MACHINE} && ${TARGET_ARCH} == ${MACHINE_ARCH}
|
||||||
|
Loading…
Reference in New Issue
Block a user