Index: Makefile.inc1 =================================================================== --- Makefile.inc1 +++ Makefile.inc1 @@ -1904,59 +1904,46 @@ specific library." .if !defined(BATCH_DELETE_OLD_FILES) -RM_I=-i -.else -RM_I=-v -.endif - -delete-old-files: - @echo ">>> Removing old files (only deletes safe to delete libs)" # Ask for every old file if the user really wants to remove it. # It's annoying, but better safe than sorry. -# NB: We cannot pass the list of OLD_FILES as a parameter because the -# argument list will get too long. Using .for/.endfor make "loops" will make -# the Makefile parser segfault. - @exec 3<&0; \ +RM_I=-i +.else +RM_I=-v +.endif + +delete-old-files: delete-check-old-files .PHONY +check-old-files: delete-check-old-files .PHONY + +.if make(delete-old-files) || make(delete-old) +REMOVE_FILE_COMMAND=sh -c 'chflags noschg $$0 2>/dev/null || true; \ + rm ${RM_I} $$0;' -- +PRE_MESSAGE=Removing old files (only deletes safe to delete libs) +.else +REMOVE_FILE_COMMAND=echo +PRE_MESSAGE=Checking for old files +.endif + +delete-check-old-files: .SILENT + echo ">>> ${PRE_MESSAGE}" +. for OFILE in ${OLD_FILES} +. if exists(${DESTDIR}/${OFILE}) + ${REMOVE_FILE_COMMAND} ${DESTDIR}/${OFILE} +. endif +. endfor + cd ${.CURDIR}; \ - ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ - -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \ - while read file; do \ - if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ - chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ - rm ${RM_I} "${DESTDIR}/$${file}" <&3; \ - fi; \ - done -# Remove catpages without corresponding manpages. - @exec 3<&0; \ + exec 3<&0; \ find ${DESTDIR}/usr/share/man/cat* ! -type d | \ sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \ while read catpage; do \ - read manpage; \ + read manpage; \ if [ ! -e "$${manpage}" ]; then \ - rm ${RM_I} $${catpage} <&3; \ - fi; \ - done - @echo ">>> Old files removed" - -check-old-files: - @echo ">>> Checking for old files" - @cd ${.CURDIR}; \ - ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ - -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \ - while read file; do \ - if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ - echo "${DESTDIR}/$${file}"; \ - fi; \ - done -# Check for catpages without corresponding manpages. - @find ${DESTDIR}/usr/share/man/cat* ! -type d | \ - sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \ - while read catpage; do \ - read manpage; \ - if [ ! -e "$${manpage}" ]; then \ - echo $${catpage}; \ + ${REMOVE_FILE_COMMAND} ${catpage} fi; \ done +.if make(delete-old-files) + echo ">>> Old files removed" +.endif delete-old-libs: @echo ">>> Removing old libraries" @@ -2030,7 +2017,7 @@ @echo "To remove old files and directories run '${MAKE} delete-old'." @echo "To remove old libraries run '${MAKE} delete-old-libs'." -.endif +.endif # delete-old* check-old* targets # # showconfig - show build configuration.