summaryrefslogtreecommitdiff
path: root/mk/flavor
diff options
context:
space:
mode:
authorrillig <rillig>2007-03-08 15:38:47 +0000
committerrillig <rillig>2007-03-08 15:38:47 +0000
commitd597a47d67be1cb1a499b2608fbf2048c0da1dc5 (patch)
tree3210901ab2a6765e0f5fc2ed358ad508684d4198 /mk/flavor
parentfad5d7e786d9c80e82756a6aa9706c45a8258488 (diff)
downloadpkgsrc-d597a47d67be1cb1a499b2608fbf2048c0da1dc5.tar.gz
Don't create ${.TARGET} unless no further error can occur. The make(1)
manual page says that ${.TARGET} is removed automatically if make is interrupted, but it is _not_ removed if a command fails. This case may happen after an incomplete CVS update (I forgot the -d option). When running "make depends" for the first time, an error message is printed. When running it for the second time, an empty .depends file existed, so the build continued.
Diffstat (limited to 'mk/flavor')
-rw-r--r--mk/flavor/pkg/depends.mk21
1 files changed, 11 insertions, 10 deletions
diff --git a/mk/flavor/pkg/depends.mk b/mk/flavor/pkg/depends.mk
index f28861e881b..03e37a7f684 100644
--- a/mk/flavor/pkg/depends.mk
+++ b/mk/flavor/pkg/depends.mk
@@ -1,4 +1,4 @@
-# $NetBSD: depends.mk,v 1.20 2007/02/19 11:05:48 rillig Exp $
+# $NetBSD: depends.mk,v 1.21 2007/03/08 15:38:47 rillig Exp $
_DEPENDS_FILE= ${WRKDIR}/.depends
_REDUCE_DEPENDS_CMD= ${SETENV} CAT=${CAT:Q} \
@@ -36,32 +36,33 @@ show-depends:
###
.PHONY: depends-cookie
depends-cookie: ${_DEPENDS_FILE}
- ${_PKG_SILENT}${_PKG_DEBUG}${TEST} ! -f ${_COOKIE.depends} || ${FALSE}
- ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${_COOKIE.depends:H}
- ${_PKG_SILENT}${_PKG_DEBUG}${MV} -f ${_DEPENDS_FILE} ${_COOKIE.depends}
+ ${RUN} [ ! -f ${_COOKIE.depends} ]
+ ${RUN} ${MKDIR} ${_COOKIE.depends:H}
+ ${RUN} ${MV} -f ${_DEPENDS_FILE} ${_COOKIE.depends}
${_DEPENDS_FILE}:
${RUN} ${MKDIR} ${.TARGET:H}
- ${RUN} ${_REDUCE_DEPENDS_CMD} ${BUILD_DEPENDS:Q} > ${.TARGET}.tmp
+ ${RUN} ${_REDUCE_DEPENDS_CMD} ${BUILD_DEPENDS:Q} > ${.TARGET}.build
${RUN} \
- exec 0< ${.TARGET}.tmp; \
+ exec 0< ${.TARGET}.build; \
while read dep; do \
pattern=`${ECHO} "$$dep" | ${SED} -e "s,:.*,,"`; \
dir=`${ECHO} "$$dep" | ${SED} -e "s,.*:,,"`; \
[ "$$pattern" ]; \
[ "$$dir" ]; \
${ECHO} "build $$pattern $$dir"; \
- done >> ${.TARGET}
- ${RUN} ${_REDUCE_DEPENDS_CMD} ${DEPENDS:Q} > ${.TARGET}.tmp
+ done >> ${.TARGET}.tmp
+ ${RUN} ${_REDUCE_DEPENDS_CMD} ${DEPENDS:Q} > ${.TARGET}.full
${RUN} \
- exec 0< ${.TARGET}.tmp; \
+ exec 0< ${.TARGET}.full; \
while read dep; do \
pattern=`${ECHO} "$$dep" | ${SED} -e "s,:.*,,"`; \
dir=`${ECHO} "$$dep" | ${SED} -e "s,.*:,,"`; \
[ "$$pattern" ]; \
[ "$$dir" ]; \
${ECHO} "full $$pattern $$dir"; \
- done >> ${.TARGET}
+ done >> ${.TARGET}.tmp
+ ${RUN} ${MV} ${.TARGET}.tmp ${.TARGET}
######################################################################
### depends-install (PRIVATE, pkgsrc/mk/depends/depends.mk)