diff options
Diffstat (limited to '')
-rw-r--r-- | scripts/mk/architecture.mk | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/scripts/mk/architecture.mk b/scripts/mk/architecture.mk index c11cada..4f0559c 100644 --- a/scripts/mk/architecture.mk +++ b/scripts/mk/architecture.mk @@ -1,11 +1,21 @@ # This Makefile fragment (since dpkg 1.16.1) defines all the DEB_HOST_* and # DEB_BUILD_* variables that dpkg-architecture can return. Existing values # of those variables are preserved as per policy. +# All variables are exported. -dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1))) - -dpkg_architecture_setvar = export $(1) ?= $(call dpkg_lazy_eval,$(1),dpkg-architecture -q$(1)) +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,\ - $(eval $(call dpkg_architecture_setvar,DEB_$(machine)_$(var))))) + DEB_$(machine)_$(var))) + +# 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 + +export $(dpkg_architecture_vars) + +endif # dpkg_architecture_mk_included |