diff options
Diffstat (limited to 'scripts/mk/buildflags.mk')
-rw-r--r-- | scripts/mk/buildflags.mk | 56 |
1 files changed, 25 insertions, 31 deletions
diff --git a/scripts/mk/buildflags.mk b/scripts/mk/buildflags.mk index 4b8a3d8..a8eac9e 100644 --- a/scripts/mk/buildflags.mk +++ b/scripts/mk/buildflags.mk @@ -28,52 +28,46 @@ # You can also export them in the environment by setting # DPKG_EXPORT_BUILDFLAGS to a non-empty value. # + +ifndef dpkg_buildflags_mk_included +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 = \ +DPKG_BUILDFLAGS_LIST := $(foreach var,\ ASFLAGS \ - ASFLAGS_FOR_BUILD \ CFLAGS \ - CFLAGS_FOR_BUILD \ CPPFLAGS \ - CPPFLAGS_FOR_BUILD \ CXXFLAGS \ - CXXFLAGS_FOR_BUILD \ OBJCFLAGS \ - OBJCFLAGS_FOR_BUILD \ OBJCXXFLAGS \ - OBJCXXFLAGS_FOR_BUILD \ DFLAGS \ - DFLAGS_FOR_BUILD \ FFLAGS \ - FFLAGS_FOR_BUILD \ FCFLAGS \ - FCFLAGS_FOR_BUILD \ LDFLAGS \ - LDFLAGS_FOR_BUILD \ - # EOL - -define dpkg_buildflags_export_envvar - ifdef $(1) - DPKG_BUILDFLAGS_EXPORT_ENVVAR += $(1)="$$(value $(1))" - endif -endef + ,$(var) $(var)_FOR_BUILD) -$(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)))) +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)="$(value $(exported))"))\ + dpkg-buildflags | sed 's/\([^=]*\)\(.*\)/$$(eval \1:\2)/')) 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 |