summaryrefslogtreecommitdiff
path: root/mk/pkg-build-options.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/pkg-build-options.mk')
-rw-r--r--mk/pkg-build-options.mk25
1 files changed, 19 insertions, 6 deletions
diff --git a/mk/pkg-build-options.mk b/mk/pkg-build-options.mk
index f4ebf9cefd6..4f72ffa1f2e 100644
--- a/mk/pkg-build-options.mk
+++ b/mk/pkg-build-options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: pkg-build-options.mk,v 1.7 2007/10/13 11:04:17 dsl Exp $
+# $NetBSD: pkg-build-options.mk,v 1.8 2009/03/20 19:25:01 joerg Exp $
#
# This procedure determines the PKG_OPTIONS that have been in effect
# when the package ${pkgbase} has been built. When the package is not
@@ -21,7 +21,24 @@
.include "bsd.fast.prefs.mk"
-.if defined(BUILDLINK_DEPTH) && !empty(BUILDLINK_DEPTH)
+# For the check for inclusion from non-buildlink3.mk, it is irrelevant
+# whether BUILDLINK_TREE was empty or undefined, so defining it here
+# avoids dealing one case.
+BUILDLINK_TREE?=
+
+# Counting words doesn't work as expected for empty strings, they
+# still have one word. Older make doesn't like the code without
+# variable assignment for unknown reasons.
+_BUILDLINK_TREE_WITH:= ${BUILDLINK_TREE:M-*:[\#]}
+_BUILDLINK_TREE_WITHOUT:= ${BUILDLINK_TREE:N-*:[\#]}
+.if (empty(BUILDLINK_TREE:M-*) && empty(BUILDLINK_TREE:N-*)) || \
+ (!empty(BUILDLINK_TREE:M-*) && !empty(BUILDLINK_TREE:N-*) && \
+ ${_BUILDLINK_TREE_WITH} == ${_BUILDLINK_TREE_WITHOUT})
+. for b in ${pkgbase}
+PKG_BUILD_OPTIONS.${b}=
+PKG_FAIL_REASON+= "[pkg-build-options.mk] This file may only be included from a buildlink3.mk file (pkgbase=${b})."
+. endfor
+.else
. for b in ${pkgbase}
. if !defined(PKG_BUILD_OPTIONS.${b})
PKG_BUILD_OPTIONS.${b} != \
@@ -35,8 +52,4 @@ MAKEFLAGS+= PKG_BUILD_OPTIONS.${b}=${PKG_BUILD_OPTIONS.${b}:Q}
MAKEVARS+= PKG_BUILD_OPTIONS.${b}
. endfor
-.else
-. for b in ${pkgbase}
-PKG_FAIL_REASON+= "[pkg-build-options.mk] This file may only be included from a buildlink3.mk file (pkgbase=${b})."
-. endfor
.endif