summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2007-03-08 15:38:47 +0000
committerrillig <rillig@pkgsrc.org>2007-03-08 15:38:47 +0000
commitf701a00e46f6f520c89966da3c38bf3fa58c4bea (patch)
tree3210901ab2a6765e0f5fc2ed358ad508684d4198
parente66a1df7442a30466134466b267f3c700b477e67 (diff)
downloadpkgsrc-f701a00e46f6f520c89966da3c38bf3fa58c4bea.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.
-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)