Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/pkgsrc/mk/bsd.pkg.clean.mk,v rcsdiff: /ftp/cvs/cvsroot/pkgsrc/mk/bsd.pkg.clean.mk,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.2 retrieving revision 1.13 diff -u -p -r1.2 -r1.13 --- pkgsrc/mk/bsd.pkg.clean.mk 2006/01/19 16:19:37 1.2 +++ pkgsrc/mk/bsd.pkg.clean.mk 2007/11/15 12:09:52 1.13 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.pkg.clean.mk,v 1.2 2006/01/19 16:19:37 jlam Exp $ +# $NetBSD: bsd.pkg.clean.mk,v 1.13 2007/11/15 12:09:52 rillig Exp $ # # This Makefile fragment is included to bsd.pkg.mk and defines the # relevant variables and targets for the "clean" phase. @@ -27,13 +27,17 @@ CLEANDEPENDS?= no +.if defined(PRIVILEGED_STAGES) && !empty(PRIVILEGED_STAGES:Mclean) +_MAKE_CLEAN_AS_ROOT=yes +.endif + .PHONY: clean-depends clean-depends: - ${_PKG_SILENT}${_PKG_DEBUG} \ + ${RUN} \ ${_DEPENDS_WALK_CMD} ${PKGPATH} | \ while read dir; do \ cd ${.CURDIR}/../../$$dir && \ - ${MAKE} ${MAKEFLAGS} CLEANDEPENDS=no clean; \ + ${RECURSIVE_MAKE} ${MAKEFLAGS} CLEANDEPENDS=no clean; \ done .PHONY: pre-clean @@ -50,21 +54,28 @@ post-clean: .PHONY: do-clean .if !target(do-clean) -do-clean: - @${ECHO_MSG} "${_PKGSRC_IN}> Cleaning for ${PKGNAME}" - ${_PKG_SILENT}${_PKG_DEBUG} \ - if ${TEST} -d ${WRKDIR:Q}; then \ - if ${TEST} -w ${WRKDIR:Q}; then \ - ${RM} -fr ${WRKDIR:Q}; \ +. if !empty(_MAKE_CLEAN_AS_ROOT:M[Yy][Ee][Ss]) +do-clean: su-target +. else +do-clean: su-do-clean +. endif +.endif + +su-do-clean: .PHONY + @${PHASE_MSG} "Cleaning for ${PKGNAME}" + ${RUN} \ + if ${TEST} -d ${WRKDIR}; then \ + if ${TEST} -w ${WRKDIR}; then \ + ${RM} -fr ${WRKDIR}; \ else \ - ${ECHO_MSG} "${_PKGSRC_IN}> "${WRKDIR:Q}" not writable, skipping"; \ + ${STEP_MSG} ${WRKDIR}" not writable, skipping"; \ fi; \ fi -. if defined(WRKOBJDIR) - -${_PKG_SILENT}${_PKG_DEBUG} \ - ${RMDIR} ${BUILD_DIR} 2>/dev/null; \ - ${RM} -f ${WRKDIR_BASENAME} -. endif +.if defined(WRKOBJDIR) + ${RUN} \ + ${RMDIR} ${BUILD_DIR} 2>/dev/null || ${TRUE}; \ + ${RMDIR} ${BUILD_DIR:H} 2>/dev/null || ${TRUE}; \ + ${RM} -f ${WRKDIR_BASENAME} 2>/dev/null || ${TRUE} .endif _CLEAN_TARGETS+= pre-clean @@ -74,8 +85,6 @@ _CLEAN_TARGETS+= clean-depends _CLEAN_TARGETS+= do-clean _CLEAN_TARGETS+= post-clean -.ORDER: ${_CLEAN_TARGETS} - .PHONY: clean .if !target(clean) clean: ${_CLEAN_TARGETS}