1 # This Makefile snippet defines the following variables:
3 # CFLAGS: flags for the C compiler
4 # CPPFLAGS: flags for the C preprocessor
5 # CXXFLAGS: flags for the C++ compiler
6 # OBJCFLAGS: flags for the Objective C compiler
7 # OBJCXXFLAGS: flags for the Objective C++ compiler
8 # GCJFLAGS: flags for the GNU Java compiler
9 # FFLAGS: flags for the Fortran 77 compiler
10 # FCFLAGS: flags for the Fortran 9x compiler
11 # LDFLAGS: flags for the linker
13 # You can also export them in the environment by setting
14 # DPKG_EXPORT_BUILDFLAGS to a non-empty value.
16 # This list is kept in sync with the default set of flags returned
19 dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
21 DPKG_BUILDFLAGS_LIST = CFLAGS CPPFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS \
22 GCJFLAGS FFLAGS FCFLAGS LDFLAGS
24 define dpkg_buildflags_export_envvar
26 DPKG_BUILDFLAGS_EXPORT_ENVVAR += $(1)="$$(value $(1))"
30 $(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_OPTIONS))
31 $(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_MAINT_OPTIONS))
32 $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
33 $(foreach operation,SET STRIP APPEND PREPEND,\
34 $(eval $(call dpkg_buildflags_export_envvar,DEB_$(flag)_MAINT_$(operation)))))
36 dpkg_buildflags_setvar = $(1) = $(call dpkg_lazy_eval,$(1),$(DPKG_BUILDFLAGS_EXPORT_ENVVAR) dpkg-buildflags --get $(1))
38 $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
39 $(eval $(call dpkg_buildflags_setvar,$(flag))))
41 ifdef DPKG_EXPORT_BUILDFLAGS
42 export $(DPKG_BUILDFLAGS_LIST)