summaryrefslogtreecommitdiffstats
path: root/scripts/mk/buildflags.mk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/mk/buildflags.mk36
1 files changed, 19 insertions, 17 deletions
diff --git a/scripts/mk/buildflags.mk b/scripts/mk/buildflags.mk
index bc04488..1159700 100644
--- a/scripts/mk/buildflags.mk
+++ b/scripts/mk/buildflags.mk
@@ -35,6 +35,8 @@ dpkg_buildflags_mk_included = yes
# This list is kept in sync with the default set of flags returned
# by dpkg-buildflags.
+dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
+
DPKG_BUILDFLAGS_LIST := $(foreach var,\
ASFLAGS \
CFLAGS \
@@ -48,26 +50,26 @@ DPKG_BUILDFLAGS_LIST := $(foreach var,\
LDFLAGS \
,$(var) $(var)_FOR_BUILD)
-dpkg_buildflags_run = $(eval $(shell \
- $(foreach exported,\
- DEB_BUILD_OPTIONS \
- DEB_BUILD_MAINT_OPTIONS \
- DEB_BUILD_PATH \
- $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
- $(foreach operation,SET STRIP APPEND PREPEND,\
- DEB_$(flag)_MAINT_$(operation))),\
- $(if $(value $(exported)),\
- $(exported)="$($(exported))"))\
- dpkg-buildflags | sed 's/\([^=]*\)\(.*\)/$$(eval \1:\2)/'))
+define dpkg_buildflags_export_envvar
+ ifdef $(1)
+ DPKG_BUILDFLAGS_EXPORT_ENVVAR += $(1)="$$(value $(1))"
+ endif
+endef
+
+$(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_OPTIONS))
+$(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_MAINT_OPTIONS))
+$(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_PATH))
+$(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
+ $(foreach operation,SET STRIP APPEND PREPEND,\
+ $(eval $(call dpkg_buildflags_export_envvar,DEB_$(flag)_MAINT_$(operation)))))
+
+dpkg_buildflags_setvar = $(1) = $(call dpkg_lazy_eval,$(1),$(DPKG_BUILDFLAGS_EXPORT_ENVVAR) dpkg-buildflags --get $(1))
+
+$(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
+ $(eval $(call dpkg_buildflags_setvar,$(flag))))
ifdef DPKG_EXPORT_BUILDFLAGS
- # We need to compute the values right now.
- $(dpkg_buildflags_run)
export $(DPKG_BUILDFLAGS_LIST)
-else
- dpkg_lazy_eval ?= $(eval $(1) = $(2)$$($(1)))
- $(foreach v,$(DPKG_BUILDFLAGS_LIST),\
- $(call dpkg_lazy_eval,$(v),$$(dpkg_buildflags_run)))
endif
endif # dpkg_buildflags_mk_included