diff options
author | rillig <rillig@pkgsrc.org> | 2007-03-08 15:38:47 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2007-03-08 15:38:47 +0000 |
commit | f701a00e46f6f520c89966da3c38bf3fa58c4bea (patch) | |
tree | 3210901ab2a6765e0f5fc2ed358ad508684d4198 | |
parent | e66a1df7442a30466134466b267f3c700b477e67 (diff) | |
download | pkgsrc-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.mk | 21 |
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) |