summaryrefslogtreecommitdiffstats
path: root/scripts/mk/architecture.mk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mk/architecture.mk')
-rw-r--r--scripts/mk/architecture.mk14
1 files changed, 5 insertions, 9 deletions
diff --git a/scripts/mk/architecture.mk b/scripts/mk/architecture.mk
index 4f0559c..c2f6a05 100644
--- a/scripts/mk/architecture.mk
+++ b/scripts/mk/architecture.mk
@@ -6,16 +6,12 @@
ifndef dpkg_architecture_mk_included
dpkg_architecture_mk_included = yes
-dpkg_architecture_vars = \
-$(foreach machine,BUILD HOST TARGET,\
- $(foreach var,ARCH ARCH_ABI ARCH_LIBC ARCH_OS ARCH_CPU ARCH_BITS ARCH_ENDIAN GNU_CPU GNU_SYSTEM GNU_TYPE MULTIARCH,\
- DEB_$(machine)_$(var)))
+dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
-# dpkg-buildpackage sets all variables. Optimize this frequent case.
-ifneq (,$(strip $(foreach v,$(dpkg_architecture_vars),$(if $(value $(v)),,1))))
- $(foreach line,$(subst =,?=,$(shell dpkg-architecture)),$(eval $(line)))
-endif
+dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-architecture -q$(1))
-export $(dpkg_architecture_vars)
+$(foreach machine,BUILD HOST TARGET,\
+ $(foreach var,ARCH ARCH_ABI ARCH_LIBC ARCH_OS ARCH_CPU ARCH_BITS ARCH_ENDIAN GNU_CPU GNU_SYSTEM GNU_TYPE MULTIARCH,\
+ $(eval $(call dpkg_architecture_setvar,DEB_$(machine)_$(var)))))
endif # dpkg_architecture_mk_included