summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2007-05-07 09:26:40 +0000
committerrillig <rillig@pkgsrc.org>2007-05-07 09:26:40 +0000
commit611faa7122617eb3ce3b8886ac280498f5a4972c (patch)
treee52e35a7f6127d2619ef291d7468c03bac3ad92e
parent20a1e1dc042d4d2705c6c09be15c6274897a36bf (diff)
downloadpkgsrc-611faa7122617eb3ce3b8886ac280498f5a4972c.tar.gz
If a package is already installed, the PKG_OPTIONS of the installed
package is returned rather than querying the source package. First, this is more correct, and second, it greatly speeds up pkgsrc, especially when many packages are already installed.
-rw-r--r--mk/pkg-build-options.mk12
1 files changed, 6 insertions, 6 deletions
diff --git a/mk/pkg-build-options.mk b/mk/pkg-build-options.mk
index e516b4a39d3..f877ed5ad12 100644
--- a/mk/pkg-build-options.mk
+++ b/mk/pkg-build-options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: pkg-build-options.mk,v 1.2 2007/04/10 03:45:36 rillig Exp $
+# $NetBSD: pkg-build-options.mk,v 1.3 2007/05/07 09:26:40 rillig Exp $
#
# This procedure determines the PKG_OPTIONS that have been in effect
# when the package ${pkgbase} has been built. When the package is not
@@ -16,16 +16,16 @@
# pkgbase := wine
# .include "../../mk/pkg-build-options.mk"
#
-# TODO: Query the installed package if it exists.
-#
+
+.include "${.PARSEDIR}/bsd.fast.prefs.mk"
.if defined(BUILDLINK_DEPTH) && !empty(BUILDLINK_DEPTH)
. for b in ${pkgbase}
. if !defined(PKG_BUILD_OPTIONS.${b})
PKG_BUILD_OPTIONS.${b} != \
- cd ${BUILDLINK_PKGSRCDIR.${b}} \
- && ${MAKE} ${MAKEFLAGS} \
- show-var VARNAME=PKG_OPTIONS
+ ${PKG_INFO} -Q PKG_OPTIONS ${pkgbase} 2>/dev/null \
+ || { cd ${BUILDLINK_PKGSRCDIR.${b}} \
+ && ${MAKE} ${MAKEFLAGS} show-var VARNAME=PKG_OPTIONS; }
MAKEFLAGS+= PKG_BUILD_OPTIONS.${b}=${PKG_BUILD_OPTIONS.${b}:Q}
. endif