Module Name:    src
Committed By:   apb
Date:           Sat Sep 10 16:57:36 UTC 2011

Modified Files:
        src/share/mk: bsd.README bsd.dep.mk bsd.files.mk bsd.hostlib.mk
            bsd.hostprog.mk bsd.info.mk bsd.kmodule.mk bsd.lib.mk bsd.man.mk
            bsd.nls.mk bsd.prog.mk bsd.rpc.mk bsd.test.mk bsd.x11.mk
Added Files:
        src/share/mk: bsd.clean.mk

Log Message:
Move all "clean" and "cleandir" processing to a new bsd.clean.mk
file, as proposed in tech-toolchain.


To generate a diff of this commit:
cvs rdiff -u -r1.285 -r1.286 src/share/mk/bsd.README
cvs rdiff -u -r0 -r1.1 src/share/mk/bsd.clean.mk
cvs rdiff -u -r1.72 -r1.73 src/share/mk/bsd.dep.mk
cvs rdiff -u -r1.41 -r1.42 src/share/mk/bsd.files.mk
cvs rdiff -u -r1.15 -r1.16 src/share/mk/bsd.hostlib.mk
cvs rdiff -u -r1.63 -r1.64 src/share/mk/bsd.hostprog.mk
cvs rdiff -u -r1.39 -r1.40 src/share/mk/bsd.info.mk
cvs rdiff -u -r1.31 -r1.32 src/share/mk/bsd.kmodule.mk
cvs rdiff -u -r1.315 -r1.316 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.108 -r1.109 src/share/mk/bsd.man.mk
cvs rdiff -u -r1.46 -r1.47 src/share/mk/bsd.nls.mk
cvs rdiff -u -r1.266 -r1.267 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.11 -r1.12 src/share/mk/bsd.rpc.mk
cvs rdiff -u -r1.18 -r1.19 src/share/mk/bsd.test.mk
cvs rdiff -u -r1.102 -r1.103 src/share/mk/bsd.x11.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/mk/bsd.README
diff -u src/share/mk/bsd.README:1.285 src/share/mk/bsd.README:1.286
--- src/share/mk/bsd.README:1.285	Fri Sep  9 10:08:14 2011
+++ src/share/mk/bsd.README	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.README,v 1.285 2011/09/09 10:08:14 apb Exp $
+#	$NetBSD: bsd.README,v 1.286 2011/09/10 16:57:35 apb Exp $
 #	@(#)bsd.README	8.2 (Berkeley) 4/2/94
 
 This is the README file for the make "include" files for the NetBSD
@@ -809,6 +809,33 @@
 they use the same default owners etc. as the rest of the tree.
 
 
+=-=-=-=-=   bsd.clean.mk   =-=-=-=-=
+
+The include file <bsd.clean.mk> defines the clean and cleandir
+targets.  It uses the following variables:
+
+CLEANFILES	Files to remove for both the clean and cleandir targets.
+
+CLEANDIRFILES	Files to remove for the cleandir target, but not for
+		the clean target.
+
+If ${.OBJDIR} and ${.CURDIR} are different, then the clean and cleandir
+targets will delete files from both those directories.  Deleting files
+from ${.OBJDIR} is the traditional behaviour.  Deleting files from
+${.CURDIR} is intended to remove output files that had been left in
+the source directory by an earlier build that had used ${.OBJDIR} ==
+${.CURDIR}.
+
+To use the clean and cleandir targets defined in <bsd.clean.mk>, other
+Makefiles or bsd.*.mk files should append file names to the CLEANFILES
+or CLEANDIRFILES variables.  For example:
+
+	    CLEANFILES+= a.out
+	    CLEANDIRFILES+= .depend
+
+	    .include <bsd.clean.mk>
+
+
 =-=-=-=-=   bsd.dep.mk   =-=-=-=-=
 
 The include file <bsd.dep.mk> contains the default targets for building
@@ -1253,6 +1280,8 @@
 
 BINMODE		Binary mode.
 
+CLEANDIRFILES	Additional files to remove for the cleandir target.
+
 CLEANFILES	Additional files to remove for the clean and cleandir targets.
 
 COPTS		Additional flags to the compiler when creating C objects.
@@ -1648,8 +1677,6 @@
 		If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
 		these rules convert from X11's manual page source
 		into an mdoc.old source file.
-	cleanx11man:
-		Clean up the mdoc.old files generated by the above.
 
 It sets the following variables:
 

Index: src/share/mk/bsd.dep.mk
diff -u src/share/mk/bsd.dep.mk:1.72 src/share/mk/bsd.dep.mk:1.73
--- src/share/mk/bsd.dep.mk:1.72	Sun Apr 10 16:52:36 2011
+++ src/share/mk/bsd.dep.mk	Sat Sep 10 16:57:35 2011
@@ -1,7 +1,6 @@
-#	$NetBSD: bsd.dep.mk,v 1.72 2011/04/10 16:52:36 joerg Exp $
+#	$NetBSD: bsd.dep.mk,v 1.73 2011/09/10 16:57:35 apb Exp $
 
 ##### Basic targets
-cleandir:	cleandepend
 realdepend:	beforedepend .depend afterdepend
 .ORDER:		beforedepend .depend afterdepend
 
@@ -62,9 +61,8 @@
 .endif # defined(SRCS)							# }
 
 ##### Clean rules
-cleandepend: .PHONY
 .if defined(SRCS)
-	rm -f .depend ${__DPSRCS.d} ${.CURDIR}/tags ${CLEANDEPEND}
+CLEANDIRFILES+= .depend ${__DPSRCS.d} ${.CURDIR}/tags ${CLEANDEPEND}
 .endif
 
 ##### Custom rules
@@ -75,3 +73,6 @@
 	    ${TOOL_SED} "s;\${.CURDIR}/;;" > tags
 .endif
 .endif
+
+##### Pull in related .mk logic
+.include <bsd.clean.mk>

Index: src/share/mk/bsd.files.mk
diff -u src/share/mk/bsd.files.mk:1.41 src/share/mk/bsd.files.mk:1.42
--- src/share/mk/bsd.files.mk:1.41	Wed Feb  3 15:34:44 2010
+++ src/share/mk/bsd.files.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.files.mk,v 1.41 2010/02/03 15:34:44 roy Exp $
+#	$NetBSD: bsd.files.mk,v 1.42 2011/09/10 16:57:35 apb Exp $
 
 .if !defined(_BSD_FILES_MK_)
 _BSD_FILES_MK_=1
@@ -118,9 +118,7 @@
 
 realall: ${BUILDSYMLINKS.t}
 
-cleandir: cleanbuildsymlinks
-cleanbuildsymlinks: .PHONY
-	rm -f ${BUILDSYMLINKS.t}
+CLEANDIRFILES+= ${BUILDSYMLINKS.t}
 
 .endif								# }
 
@@ -149,13 +147,12 @@
 CLEANUUDECODE_FILES+=${UUDECODE_FILES_RENAME_${i}}
 .endfor
 
-clean: cleanuudecodefiles
-cleanuudecodefiles: .PHONY
-	rm -f ${CLEANUUDECODE_FILES}
+CLEANFILES+= ${CLEANUUDECODE_FILES}
 .endif								# }
 
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
 .include <bsd.sys.mk>
+.include <bsd.clean.mk>
 
 .endif	# !defined(_BSD_FILES_MK_)

Index: src/share/mk/bsd.hostlib.mk
diff -u src/share/mk/bsd.hostlib.mk:1.15 src/share/mk/bsd.hostlib.mk:1.16
--- src/share/mk/bsd.hostlib.mk:1.15	Fri Aug  5 09:36:28 2011
+++ src/share/mk/bsd.hostlib.mk	Sat Sep 10 16:57:35 2011
@@ -1,10 +1,9 @@
-#	$NetBSD: bsd.hostlib.mk,v 1.15 2011/08/05 09:36:28 plunky Exp $
+#	$NetBSD: bsd.hostlib.mk,v 1.16 2011/09/10 16:57:35 apb Exp $
 
 .include <bsd.init.mk>
 .include <bsd.sys.mk>
 
 ##### Basic targets
-clean:		cleanlib
 
 ##### Default values
 CFLAGS+=	${COPTS}
@@ -44,9 +43,7 @@
 
 realall: lib${HOSTLIB}.a
 
-cleanlib: .PHONY
-	rm -f a.out [Ee]rrs mklog core *.core \
-	    lib${HOSTLIB}.a ${OBJS} ${CLEANFILES}
+CLEANFILES+= a.out [Ee]rrs mklog core *.core lib${HOSTLIB}.a ${OBJS}
 
 beforedepend:
 CFLAGS:=	${HOST_CFLAGS}
@@ -55,5 +52,6 @@
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
 .include <bsd.dep.mk>
+.include <bsd.clean.mk>
 
 ${TARGETS}:	# ensure existence

Index: src/share/mk/bsd.hostprog.mk
diff -u src/share/mk/bsd.hostprog.mk:1.63 src/share/mk/bsd.hostprog.mk:1.64
--- src/share/mk/bsd.hostprog.mk:1.63	Sun Jun  5 23:09:15 2011
+++ src/share/mk/bsd.hostprog.mk	Sat Sep 10 16:57:35 2011
@@ -1,11 +1,10 @@
-#	$NetBSD: bsd.hostprog.mk,v 1.63 2011/06/05 23:09:15 christos Exp $
+#	$NetBSD: bsd.hostprog.mk,v 1.64 2011/09/10 16:57:35 apb Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .include <bsd.init.mk>
 .include <bsd.sys.mk>
 
 ##### Basic targets
-clean:		cleanprog
 
 ##### Default values
 LIBATF_C?=	/usr/lib/libatf-c.a
@@ -123,9 +122,7 @@
 
 realall: ${HOSTPROG}
 
-cleanprog: .PHONY
-	rm -f a.out [Ee]rrs mklog core *.core \
-	    ${HOSTPROG} ${OBJS} ${LOBJS} ${CLEANFILES}
+CLEANFILES+= a.out [Ee]rrs mklog core *.core ${HOSTPROG} ${OBJS} ${LOBJS}
 
 beforedepend:
 CFLAGS:=	${HOST_CFLAGS}
@@ -144,6 +141,7 @@
 .include <bsd.inc.mk>
 .include <bsd.links.mk>
 .include <bsd.dep.mk>
+.include <bsd.clean.mk>
 
 ${TARGETS}:	# ensure existence
 

Index: src/share/mk/bsd.info.mk
diff -u src/share/mk/bsd.info.mk:1.39 src/share/mk/bsd.info.mk:1.40
--- src/share/mk/bsd.info.mk:1.39	Sat Feb 28 19:18:52 2009
+++ src/share/mk/bsd.info.mk	Sat Sep 10 16:57:35 2011
@@ -1,9 +1,8 @@
-#	$NetBSD: bsd.info.mk,v 1.39 2009/02/28 19:18:52 joerg Exp $
+#	$NetBSD: bsd.info.mk,v 1.40 2011/09/10 16:57:35 apb Exp $
 
 .include <bsd.init.mk>
 
 ##### Basic targets
-cleandir:	cleaninfo
 realinstall:	infoinstall
 
 ##### Default values
@@ -78,15 +77,11 @@
 .endif # ${MKINFO} != "no"
 
 ##### Clean rules
-CLEANFILES+=	${INFOFILES}
-
-cleaninfo: .PHONY
-.if !empty(CLEANFILES)
-	rm -f ${CLEANFILES}
-.endif
+CLEANDIRFILES+=	${INFOFILES}
 
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
 .include <bsd.sys.mk>
+.include <bsd.clean.mk>
 
 ${TARGETS}:	# ensure existence

Index: src/share/mk/bsd.kmodule.mk
diff -u src/share/mk/bsd.kmodule.mk:1.31 src/share/mk/bsd.kmodule.mk:1.32
--- src/share/mk/bsd.kmodule.mk:1.31	Thu Jul 14 18:12:35 2011
+++ src/share/mk/bsd.kmodule.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.kmodule.mk,v 1.31 2011/07/14 18:12:35 matt Exp $
+#	$NetBSD: bsd.kmodule.mk,v 1.32 2011/09/10 16:57:35 apb Exp $
 
 # We are not building this with PIE
 MKPIE=no
@@ -8,7 +8,6 @@
 .include <bsd.sys.mk>
 
 ##### Basic targets
-clean:		cleankmod
 realinstall:	kmodinstall
 
 KERN=		$S/kern
@@ -124,9 +123,7 @@
 .endif # !target(kmodinstall)
 
 ##### Clean rules
-cleankmod: .PHONY
-	rm -f a.out [Ee]rrs mklog core *.core \
-		${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
+CLEANFILES+= a.out [Ee]rrs mklog core *.core ${PROG} ${OBJS} ${LOBJS}
 
 ##### Custom rules
 lint: ${LOBJS}
@@ -141,6 +138,7 @@
 .include <bsd.man.mk>
 .include <bsd.links.mk>
 .include <bsd.dep.mk>
+.include <bsd.clean.mk>
 
 .-include "$S/arch/${MACHINE_CPU}/include/Makefile.inc"
 .-include "$S/arch/${MACHINE}/include/Makefile.inc"

Index: src/share/mk/bsd.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.315 src/share/mk/bsd.lib.mk:1.316
--- src/share/mk/bsd.lib.mk:1.315	Sat Aug 27 18:35:20 2011
+++ src/share/mk/bsd.lib.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.lib.mk,v 1.315 2011/08/27 18:35:20 joerg Exp $
+#	$NetBSD: bsd.lib.mk,v 1.316 2011/09/10 16:57:35 apb Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -37,7 +37,6 @@
 ##### Basic targets
 .PHONY:		checkver libinstall
 realinstall:	checkver libinstall
-clean:		cleanlib
 
 ##### LIB specific flags.
 # XXX: This is needed for programs that link with .a libraries
@@ -596,14 +595,13 @@
 	${LINT} ${LINTFLAGS} ${LOBJS}
 .endif
 
-cleanlib: .PHONY
-	rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES}
-	rm -f lib${LIB}.a ${STOBJS}
-	rm -f lib${LIB}_p.a ${POBJS}
-	rm -f lib${LIB}_g.a ${GOBJS}
-	rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${_LIB.debug} ${SOBJS}
-	rm -f ${STOBJS:=.tmp} ${POBJS:=.tmp} ${SOBJS:=.tmp} ${GOBJS:=.tmp}
-	rm -f llib-l${LIB}.ln ${LOBJS}
+CLEANFILES+= a.out [Ee]rrs mklog core *.core
+CLEANFILES+= lib${LIB}.a ${STOBJS}
+CLEANFILES+= lib${LIB}_p.a ${POBJS}
+CLEANFILES+= lib${LIB}_g.a ${GOBJS}
+CLEANFILES+= lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${_LIB.debug} ${SOBJS}
+CLEANFILES+= ${STOBJS:=.tmp} ${POBJS:=.tmp} ${SOBJS:=.tmp} ${GOBJS:=.tmp}
+CLEANFILES+= llib-l${LIB}.ln ${LOBJS}
 
 
 .if !target(libinstall)							# {
@@ -777,5 +775,6 @@
 .include <bsd.links.mk>
 .include <bsd.dep.mk>
 .include <bsd.clang-analyze.mk>
+.include <bsd.clean.mk>
 
 ${TARGETS}:	# ensure existence

Index: src/share/mk/bsd.man.mk
diff -u src/share/mk/bsd.man.mk:1.108 src/share/mk/bsd.man.mk:1.109
--- src/share/mk/bsd.man.mk:1.108	Thu Jun 30 18:13:51 2011
+++ src/share/mk/bsd.man.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.man.mk,v 1.108 2011/06/30 18:13:51 matt Exp $
+#	$NetBSD: bsd.man.mk,v 1.109 2011/09/10 16:57:35 apb Exp $
 #	@(#)bsd.man.mk	8.1 (Berkeley) 6/8/93
 
 .include <bsd.init.mk>
@@ -245,21 +245,15 @@
 ##### Clean rules
 .undef _F
 
-cleandir: cleanman
-.if !empty(CLEANFILES)
-	rm -f ${CLEANFILES}
-.endif
-
-cleanman: .PHONY
 .if !empty(MAN) && (${MKMAN} != "no")
 .if (${MKCATPAGES} != "no")
-	rm -f ${CATPAGES}
+CLEANDIRFILES+= ${CATPAGES}
 .endif
 .if !empty(MANSUFFIX)
-	rm -f ${MANPAGES} ${CATPAGES:S/${MANSUFFIX}$//}
+CLEANDIRFILES+= ${MANPAGES} ${CATPAGES:S/${MANSUFFIX}$//}
 .endif
 .if ${MKHTML} != "no"
-	rm -f ${HTMLPAGES}
+CLEANDIRFILES+= ${HTMLPAGES}
 .endif
 .endif
 # (XXX ${CATPAGES:S...} cleans up old .catN files where .catN.gz now used)
@@ -273,5 +267,6 @@
 .include <bsd.obj.mk>
 .include <bsd.files.mk>
 .include <bsd.sys.mk>
+.include <bsd.clean.mk>
 
 ${TARGETS} catinstall maninstall htmlinstall: # ensure existence

Index: src/share/mk/bsd.nls.mk
diff -u src/share/mk/bsd.nls.mk:1.46 src/share/mk/bsd.nls.mk:1.47
--- src/share/mk/bsd.nls.mk:1.46	Thu Mar 16 18:43:34 2006
+++ src/share/mk/bsd.nls.mk	Sat Sep 10 16:57:35 2011
@@ -1,9 +1,8 @@
-#	$NetBSD: bsd.nls.mk,v 1.46 2006/03/16 18:43:34 jwise Exp $
+#	$NetBSD: bsd.nls.mk,v 1.47 2011/09/10 16:57:35 apb Exp $
 
 .include <bsd.init.mk>
 
 ##### Basic targets
-cleandir:	cleannls
 realinstall:	nlsinstall
 
 ##### Default values
@@ -62,11 +61,11 @@
 .endif # ${MKNLS} != "no"
 
 ##### Clean rules
-cleannls: .PHONY
 .if ${MKNLS} != "no" && !empty(NLS)
-	rm -f ${NLSALL}
+CLEANDIRFILES+= ${NLSALL}
 .endif
 
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
 .include <bsd.sys.mk>
+.include <bsd.clean.mk>

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.266 src/share/mk/bsd.prog.mk:1.267
--- src/share/mk/bsd.prog.mk:1.266	Sat Aug 27 18:35:20 2011
+++ src/share/mk/bsd.prog.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.266 2011/08/27 18:35:20 joerg Exp $
+#	$NetBSD: bsd.prog.mk,v 1.267 2011/09/10 16:57:35 apb Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -14,7 +14,6 @@
 
 ##### Basic targets
 realinstall:	proginstall scriptsinstall
-clean:		cleanprog
 
 .gdbinit:
 	rm -f .gdbinit
@@ -27,10 +26,7 @@
 	echo "source ${__gdbinit}" >> .gdbinit
 .endfor
 
-cleanobjs: .PHONY
-
-cleanprog: .PHONY cleanobjs cleanextra
-	rm -f a.out [Ee]rrs mklog core *.core .gdbinit
+CLEANFILES+= a.out [Ee]rrs mklog core *.core .gdbinit
 
 .if defined(SHAREDSTRINGS)
 CLEANFILES+=strings
@@ -352,14 +348,10 @@
 
 realall: ${_P} ${_PROGDEBUG.${_P}}
 
-cleanprog: cleanprog-${_P}
-cleanprog-${_P}:
-	rm -f ${_P} ${_PROGDEBUG.${_P}}
+CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}}
 
 .if defined(OBJS.${_P}) && !empty(OBJS.${_P})
-cleanobjs: cleanobjs-${_P}
-cleanobjs-${_P}:
-	rm -f ${OBJS.${_P}} ${LOBJS.${_P}}
+CLEANFILES+= ${OBJS.${_P}} ${LOBJS.${_P}}
 .endif
 
 _PROG_INSTALL+=	proginstall-${_P}
@@ -414,9 +406,7 @@
 
 .if defined(OBJS) && !empty(OBJS) && \
     (empty(PROGS) && empty(PROGS_CXX))
-cleanobjs: cleanobjs-plain
-cleanobjs-plain:
-	rm -f ${OBJS} ${LOBJS}
+CLEANFILES+= ${OBJS} ${LOBJS}
 .endif
 
 .if !target(proginstall)
@@ -476,11 +466,7 @@
 .include <bsd.sys.mk>
 .include <bsd.dep.mk>
 .include <bsd.clang-analyze.mk>
-
-cleanextra: .PHONY
-.if defined(CLEANFILES) && !empty(CLEANFILES)
-	rm -f ${CLEANFILES}
-.endif
+.include <bsd.clean.mk>
 
 ${TARGETS}:	# ensure existence
 

Index: src/share/mk/bsd.rpc.mk
diff -u src/share/mk/bsd.rpc.mk:1.11 src/share/mk/bsd.rpc.mk:1.12
--- src/share/mk/bsd.rpc.mk:1.11	Wed May 12 16:38:01 2004
+++ src/share/mk/bsd.rpc.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.rpc.mk,v 1.11 2004/05/12 16:38:01 christos Exp $
+#	$NetBSD: bsd.rpc.mk,v 1.12 2011/09/10 16:57:35 apb Exp $
 
 .include <bsd.init.mk>
 
@@ -72,3 +72,4 @@
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
 .include <bsd.sys.mk>
+.include <bsd.clean.mk>

Index: src/share/mk/bsd.test.mk
diff -u src/share/mk/bsd.test.mk:1.18 src/share/mk/bsd.test.mk:1.19
--- src/share/mk/bsd.test.mk:1.18	Sat May 14 17:47:28 2011
+++ src/share/mk/bsd.test.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.test.mk,v 1.18 2011/05/14 17:47:28 jmmv Exp $
+# $NetBSD: bsd.test.mk,v 1.19 2011/09/10 16:57:35 apb Exp $
 #
 
 .include <bsd.init.mk>
@@ -36,13 +36,13 @@
 
 .if defined(TESTS_SH)
 _TESTS+=		${TESTS_SH}
-CLEANFILES+=		${TESTS_SH}
+CLEANDIRFILES+=		${TESTS_SH}
 
 .  for _T in ${TESTS_SH}
 SCRIPTS+=		${_T}
 SCRIPTSDIR_${_T}=	${TESTSDIR}
 
-CLEANFILES+=		${_T}.tmp
+CLEANDIRFILES+=		${_T}.tmp
 
 TESTS_SH_SRC_${_T}?=	${_T}.sh
 ${_T}: ${TESTS_SH_SRC_${_T}}
@@ -61,7 +61,7 @@
 FILESDIR_Atffile=	${TESTSDIR}
 
 .  if ${ATFFILE:tl} == "auto"
-CLEANFILES+=	Atffile Atffile.tmp
+CLEANDIRFILES+=	Atffile Atffile.tmp
 
 realall: Atffile
 Atffile: Makefile
@@ -83,10 +83,6 @@
 
 .if !empty(SCRIPTS) || !empty(PROGS) || !empty(PROGS_CXX)
 .  include <bsd.prog.mk>
-.else
-cleandir:	cleantest
-cleantest:	.PHONY
-	rm -f ${CLEANFILES}
 .endif
 
 #
@@ -118,7 +114,7 @@
 
 _TESTS_FIFO = ${.OBJDIR}/atf-run.fifo
 _TESTS_LOG = ${.OBJDIR}/atf-run.log
-CLEANFILES += ${_TESTS_FIFO} ${_TESTS_LOG}
+CLEANDIRFILES += ${_TESTS_FIFO} ${_TESTS_LOG}
 
 .PHONY: test
 .if defined(TESTSDIR)
@@ -156,3 +152,6 @@
 test:
 	@echo "*** No TESTSDIR defined; nothing to do."
 .endif
+
+##### Pull in related .mk logic
+.include <bsd.clean.mk>

Index: src/share/mk/bsd.x11.mk
diff -u src/share/mk/bsd.x11.mk:1.102 src/share/mk/bsd.x11.mk:1.103
--- src/share/mk/bsd.x11.mk:1.102	Thu Sep  1 16:41:48 2011
+++ src/share/mk/bsd.x11.mk	Sat Sep 10 16:57:35 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.x11.mk,v 1.102 2011/09/01 16:41:48 plunky Exp $
+#	$NetBSD: bsd.x11.mk,v 1.103 2011/09/10 16:57:35 apb Exp $
 
 .include <bsd.init.mk>
 
@@ -193,9 +193,7 @@
 
 realall: ${CPPSCRIPTS}
 
-clean: cleancppscripts
-cleancppscripts: .PHONY
-	rm -f ${CPPSCRIPTS}
+CLEANFILES+= ${CPPSCRIPTS}
 .endif								# }
 
 #
@@ -340,9 +338,7 @@
 		< ${.IMPSRC} > ${.TARGET}.tmp && \
 	mv -f ${.TARGET}.tmp ${.TARGET}
 
-cleandir:	cleanpkgconfig
-cleanpkgconfig: .PHONY
-	rm -f ${_PKGCONFIG_FILES} ${_PKGCONFIG_FILES:C/$/.tmp/}
+CLEANDIRFILES+= ${_PKGCONFIG_FILES} ${_PKGCONFIG_FILES:C/$/.tmp/}
 .endif
 
 #
@@ -369,9 +365,7 @@
 # .man page handling
 #
 .if (${MKMAN} != "no" && (${MAN:U} != "" || ${PROG:U} != ""))	# {
-cleandir: cleanx11man
-cleanx11man: .PHONY
-	rm -f ${MAN:U${PROG:D${PROG.1}}}
+CLEANDIRFILES+= ${MAN:U${PROG:D${PROG.1}}}
 .endif								# }
 
 .SUFFIXES:	.man .man.pre .1 .3 .4 .5 .7
@@ -430,3 +424,6 @@
 	${_MKTARGET_CREATE}
 	rm -f ${.TARGET}
 	${_X11MANTRANSFORMCMD} | ${X11TOOL_UNXCOMM} > ${.TARGET}
+
+##### Pull in related .mk logic
+.include <bsd.clean.mk>

Added files:

Index: src/share/mk/bsd.clean.mk
diff -u /dev/null src/share/mk/bsd.clean.mk:1.1
--- /dev/null	Sat Sep 10 16:57:36 2011
+++ src/share/mk/bsd.clean.mk	Sat Sep 10 16:57:35 2011
@@ -0,0 +1,60 @@
+# $NetBSD: bsd.clean.mk,v 1.1 2011/09/10 16:57:35 apb Exp $
+
+# <bsd.clean.mk>
+#
+# Public targets:
+#
+# clean:	Delete files listed in ${CLEANFILES}.
+# cleandir:	Delete files listed in ${CLEANFILES} and ${CLEANDIRFILES}.
+#
+# Public variables:
+#
+# CLEANFILES	Files to remove for both the clean and cleandir targets.
+#
+# CLEANDIRFILES	Files to remove for the cleandir target, but not for
+#		the clean target.
+
+.if !defined(_BSD_CLEAN_MK_)
+_BSD_CLEAN_MK_=1
+
+.include <bsd.init.mk>
+
+clean:		.PHONY __doclean
+__doclean:	.PHONY .MADE __cleanuse CLEANFILES
+cleandir:	.PHONY clean __docleandir
+__docleandir:	.PHONY .MADE __cleanuse CLEANDIRFILES
+
+# __cleanuse is invoked with ${.ALLSRC} as the name of a variable
+# (such as CLEANFILES or CLEANDIRFILES), or possibly a list of
+# variable names.  ${.ALLSRC:@v@${${v}}@} will be the list of
+# files to delete.  (We pass the variable name, e.g. CLEANFILES,
+# instead of the file names, e.g. ${CLEANFILES}, because we don't
+# want make to replace any of the file names with the result of
+# searching .PATH.)
+#
+# If the list of file names is non-empty then use "rm -f" to
+# delete the files, and "ls -d" to check that the deletion was
+# successful.  If the list of files is empty, then the commands
+# reduce to "true", with an "@" prefix to prevent echoing.
+#
+# If .OBJDIR is different from .SRCDIR then repeat all this for
+# both .OBJDIR and .SRCDIR.
+#
+__cleanuse: .USE
+	${"${.ALLSRC:@v@${${v}}@}" == "":?@true:${_MKMSG} \
+		"clean" ${.ALLSRC} }
+.for _d in ${"${.OBJDIR}" == "${.CURDIR}" \
+		:? ${.OBJDIR} \
+		:  ${.OBJDIR} ${.CURDIR} }
+	-${"${.ALLSRC:@v@${${v}}@}" == "":?@true: \
+	    (cd ${_d} && rm -f ${.ALLSRC:@v@${${v}}@}) }
+	@${"${.ALLSRC:@v@${${v}}@}" == "":?true: \
+	    bad="\$(cd ${_d} && ls -d ${.ALLSRC:@v@${${v}}@} 2>/dev/null)"; \
+	    if test -n "\$bad"; then \
+	        echo "Failed to remove files from ${_d}:" ; \
+	        echo "\$bad" ; \
+	        false ; \
+	    fi }
+.endfor
+
+.endif	# !defined(_BSD_CLEAN_MK)

Reply via email to