chiark / gitweb /
dpkg (1.18.25) stretch; urgency=medium
[dpkg] / scripts / mk / buildflags.mk
1 # This Makefile snippet defines the following variables:
2 #
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
12 #
13 # You can also export them in the environment by setting
14 # DPKG_EXPORT_BUILDFLAGS to a non-empty value.
15 #
16 # This list is kept in sync with the default set of flags returned
17 # by dpkg-buildflags.
18
19 dpkg_lazy_eval ?= $$(or $$(value DPKG_CACHE_$(1)),$$(eval DPKG_CACHE_$(1) := $$(shell $(2)))$$(value DPKG_CACHE_$(1)))
20
21 DPKG_BUILDFLAGS_LIST = CFLAGS CPPFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS \
22                        GCJFLAGS FFLAGS FCFLAGS LDFLAGS
23
24 define dpkg_buildflags_export_envvar
25 ifdef $(1)
26 DPKG_BUILDFLAGS_EXPORT_ENVVAR += $(1)="$$(value $(1))"
27 endif
28 endef
29
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)))))
35
36 dpkg_buildflags_setvar = $(1) = $(call dpkg_lazy_eval,$(1),$(DPKG_BUILDFLAGS_EXPORT_ENVVAR) dpkg-buildflags --get $(1))
37
38 $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\
39   $(eval $(call dpkg_buildflags_setvar,$(flag))))
40
41 ifdef DPKG_EXPORT_BUILDFLAGS
42   export $(DPKG_BUILDFLAGS_LIST)
43 endif