Fix 'make cleanworld' to respect TARGET/TARGET_ARCH for cross-build objtrees.

This simplifies the logic to always try removing the objdir if it exists
and to fallback on a 'cleandir' if no objdir exists.  The reasoning for
this is to avoid rm -rf src/* (r126024)

Sponsored by:	EMC / Isilon Storage Division
MFC after:	2 weeks
This commit is contained in:
Bryan Drewery 2015-11-09 23:36:57 +00:00
parent 2753ba1ab6
commit ddd945c7b5

View File

@ -2219,20 +2219,16 @@ builddtb:
# created by bsd.obj.mk, except that we don't want to .include that file
# in this makefile.
#
BW_CANONICALOBJDIR:=${MAKEOBJDIRPREFIX}${.CURDIR}
BW_CANONICALOBJDIR:=${OBJTREE}${.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
.if ${.CURDIR} == ${.OBJDIR} || ${.CURDIR}/obj == ${.OBJDIR}
# 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)