From 3c5de2f36ed510237867ec18207d28abf0896ed6 Mon Sep 17 00:00:00 2001 From: jlam Date: Wed, 14 Jun 2006 07:51:47 +0000 Subject: Insert cookie checks into the "real-install" and "real-package" targets, which are invoked in recursive make calls for the "install" and "package" targets respectvely. These recursive make calls prevent the top-level make from seeing all of the targets and computing a full dependency graph, so it becomes possible for some targets to be invoked more than once. This change passes enough information along to the recursive make calls and ensures that the source targets for the real-* targets are only invoked once. --- mk/install/install.mk | 4 +++- mk/package/package.mk | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mk/install/install.mk b/mk/install/install.mk index 53fa6c985a0..cee95885263 100644 --- a/mk/install/install.mk +++ b/mk/install/install.mk @@ -1,4 +1,4 @@ -# $NetBSD: install.mk,v 1.7 2006/06/10 03:23:46 jlam Exp $ +# $NetBSD: install.mk,v 1.8 2006/06/14 07:51:47 jlam Exp $ ###################################################################### ### install (PUBLIC) @@ -34,12 +34,14 @@ ${_INSTALL_COOKIE}: ### real-install is a helper target to set the PKG_PHASE explicitly to ### "install" before running the remainder of the install targets. ### +.if !exists(${_INSTALL_COOKIE}) _REAL_INSTALL_TARGETS+= install-check-version _REAL_INSTALL_TARGETS+= install-message _REAL_INSTALL_TARGETS+= install-vars _REAL_INSTALL_TARGETS+= unprivileged-install-hook _REAL_INSTALL_TARGETS+= install-all _REAL_INSTALL_TARGETS+= install-cookie +.endif .PHONY: real-install real-install: ${_REAL_INSTALL_TARGETS} diff --git a/mk/package/package.mk b/mk/package/package.mk index 7bee1207ca5..c09973ccd9d 100644 --- a/mk/package/package.mk +++ b/mk/package/package.mk @@ -1,4 +1,4 @@ -# $NetBSD: package.mk,v 1.7 2006/06/10 03:23:46 jlam Exp $ +# $NetBSD: package.mk,v 1.8 2006/06/14 07:51:47 jlam Exp $ _PACKAGE_COOKIE= ${WRKDIR}/.package_done @@ -36,9 +36,11 @@ ${_PACKAGE_COOKIE}: ### real-package is a helper target to set the PKG_PHASE explicitly to ### "package" before running the remainder of the package targets. ### +.if !exists(${_PACKAGE_COOKIE}) _REAL_PACKAGE_TARGETS+= package-message _REAL_PACKAGE_TARGETS+= package-all _REAL_PACKAGE_TARGETS+= package-cookie +.endif .PHONY: real-package real-package: ${_REAL_PACKAGE_TARGETS} -- cgit v1.2.3