summaryrefslogtreecommitdiffstats
path: root/scripts/mk/buildflags.mk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mk/buildflags.mk')
-rw-r--r--scripts/mk/buildflags.mk43
1 files changed, 43 insertions, 0 deletions
diff --git a/scripts/mk/buildflags.mk b/scripts/mk/buildflags.mk
new file mode 100644
index 0000000..bb496e1
--- /dev/null
+++ b/scripts/mk/buildflags.mk
@@ -0,0 +1,43 @@
+# This Makefile snippet defines the following variables:
+#
+# CFLAGS: flags for the C compiler
+# CPPFLAGS: flags for the C preprocessor
+# CXXFLAGS: flags for the C++ compiler
+# OBJCFLAGS: flags for the Objective C compiler
+# OBJCXXFLAGS: flags for the Objective C++ compiler
+# GCJFLAGS: flags for the GNU Java compiler
+# FFLAGS: flags for the Fortran 77 compiler
+# FCFLAGS: flags for the Fortran 9x compiler
+# LDFLAGS: flags for the linker
+#
+# You can also export them in the environment by setting
+# DPKG_EXPORT_BUILDFLAGS to a non-empty value.
+#
+# 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 = CFLAGS CPPFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS \
+ GCJFLAGS FFLAGS FCFLAGS LDFLAGS
+
+define dpkg_buildflags_export_envvar
+ifdef $(1)
+DPKG_BUILDFLAGS_EXPORT_ENVVAR += $(1)="$$(value $(1))"
+endif
+endef
+
+$(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_OPTIONS))
+$(eval $(call dpkg_buildflags_export_envvar,DEB_BUILD_MAINT_OPTIONS))
+$(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))))
+
+ifdef DPKG_EXPORT_BUILDFLAGS
+ export $(DPKG_BUILDFLAGS_LIST)
+endif