summaryrefslogtreecommitdiff
path: root/mk
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
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')
-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)