Module Name:    src
Committed By:   mrg
Date:           Thu Oct 31 01:55:03 UTC 2013

Modified Files:
        src/share/mk: bsd.dep.mk

Log Message:
create mkdep output with a temporary file so that failures in
complation during .d creation don't leave an empty (stale) .d
file around to break future builds.

(hmm, probably could use .PRECIOUS here.)


To generate a diff of this commit:
cvs rdiff -u -r1.78 -r1.79 src/share/mk/bsd.dep.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.dep.mk
diff -u src/share/mk/bsd.dep.mk:1.78 src/share/mk/bsd.dep.mk:1.79
--- src/share/mk/bsd.dep.mk:1.78	Mon Oct 28 01:47:13 2013
+++ src/share/mk/bsd.dep.mk	Thu Oct 31 01:55:03 2013
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.dep.mk,v 1.78 2013/10/28 01:47:13 mrg Exp $
+#	$NetBSD: bsd.dep.mk,v 1.79 2013/10/31 01:55:03 mrg Exp $
 
 ##### Basic targets
 realdepend:	beforedepend .depend afterdepend
@@ -60,37 +60,41 @@ _MKDEP_FILEFLAGS=
 
 .c.d:
 	${_MKTARGET_CREATE}
-	${MKDEP} -f ${.TARGET} ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
+	${MKDEP} -f ${.TARGET}.tmp ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
 	    ${CFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
 	    ${CPPFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
-	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} && \
+	    mv ${.TARGET}.tmp ${.TARGET}
 
 .m.d:
 	${_MKTARGET_CREATE}
-	${MKDEP} -f ${.TARGET} ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
+	${MKDEP} -f ${.TARGET}.tmp ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
 	    ${OBJCFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
 	    ${CPPFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
-	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} && \
+	    mv ${.TARGET}.tmp ${.TARGET}
 
 .s.d .S.d:
 	${_MKTARGET_CREATE}
-	${MKDEP} -f ${.TARGET} ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
+	${MKDEP} -f ${.TARGET}.tmp ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
 	    ${AFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
 	    ${CPPFLAGS} ${AFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}} \
-	    ${__acpp_flags} ${.IMPSRC}
+	    ${__acpp_flags} ${.IMPSRC} && \
+	    mv ${.TARGET}.tmp ${.TARGET}
 
 .C.d .cc.d .cpp.d .cxx.d:
 	${_MKTARGET_CREATE}
-	${MKDEPCXX} -f ${.TARGET} ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
+	${MKDEPCXX} -f ${.TARGET}.tmp ${_MKDEP_FILEFLAGS} -- ${MKDEPFLAGS} \
 	    ${CXXFLAGS:C/-([IDU])[  ]*/-\1/Wg:M-[IDU]*} \
 	    ${CPPFLAGS} ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} \
-	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC}
+	    ${CPPFLAGS.${.IMPSRC:T}} ${.IMPSRC} && \
+	    mv ${.TARGET}.tmp ${.TARGET}
 
 .endif # defined(SRCS) && !empty(SRCS)					# }
 
 ##### Clean rules
 .if defined(SRCS) && !empty(SRCS)
-CLEANDIRFILES+= .depend ${__DPSRCS.d} ${.CURDIR}/tags ${CLEANDEPEND}
+CLEANDIRFILES+= .depend ${__DPSRCS.d} ${__DPSRCS.d:.d=.d.tmp} ${.CURDIR}/tags ${CLEANDEPEND}
 .endif
 
 ##### Custom rules

Reply via email to