summaryrefslogtreecommitdiff
path: root/Make.rules
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2021-03-05 17:44:23 -0500
committerJan Setje-Eilers <73182357+jsetje@users.noreply.github.com>2021-03-09 13:52:53 -0800
commitdddeaf3f7dc8d30640119e999bbfabf4ce068a68 (patch)
tree86b4dcc57edec71a7384042b62bf2ad86fc254e7 /Make.rules
parentbb6dece33c39bd332f3b7e84b851dd7c306b360d (diff)
downloadefi-boot-shim-dddeaf3f7dc8d30640119e999bbfabf4ce068a68.tar.gz
efi-boot-shim-dddeaf3f7dc8d30640119e999bbfabf4ce068a68.zip
Re-organize a bunch of CFLAGS-related makefile bits
Some of our makefile bits are a mess, as you may have noticed, making changes to them difficult to review. This patch attempts to make some parts of them vaguely less of a mess, in order to facilitate review of follow-up changes. To so it: - coalesces feature flags, optimizations, -W{no-,}, -W{no-}error, include directives, and define/undefine directives into (mostly) separate groups. - exports them as appropriate so the sub-makes can use them - Makes sure we have -Wextra -Werror everywhere, but adds -Wno-foo and -Wno-error=foo directives at the appropriate places to keep the net warnings the same. - makes the arch defines in Cryptlib and Cryptlib/OpenSSL use the appropriate ones, with no attempt to make them less stupid, without changing the overall order. - coalesces the various includes, with no attempt to make them less stupid, without changing the overall order. - One giant glaring whitespace fix in Cryptlib/OpenSSL/Makefile Signed-off-by: Peter Jones <pjones@redhat.com>
Diffstat (limited to 'Make.rules')
-rw-r--r--Make.rules30
1 files changed, 30 insertions, 0 deletions
diff --git a/Make.rules b/Make.rules
index e4e31ff4..532aab66 100644
--- a/Make.rules
+++ b/Make.rules
@@ -6,3 +6,33 @@ define add-vendor-sbat
$(OBJCOPY) --add-section ".$(patsubst %.csv,%,$(1))=$(1)" $(2)
endef
+
+# true if the strings are the same
+define str-eq
+$(if $(subst $(1),,$(2)),,$(1))
+endef
+
+# true if 1 is in 2
+define has-flag
+$(if $(findstring $(space)$(1)$(space),$(space)$(2)$(space)),$(1))
+endef
+
+# true if 1 is not in 2
+define has-not-flag
+$(if $(call has-flag,$(1),$(2)),,$(1))
+endef
+
+# if 1 is set and 2 isn't in the thing named by 3,
+# add 4 to the thing named by 3
+define conditional-add-flag
+$(if $(and $(strip $(1)),$(strip $(call has-not-flag,$(2),$($(3))))),$(eval override $(value 3) += $(4)))
+endef
+
+# Add everything from DEFAULT_$(1) to $(1) if it isn't there (in whole)
+define update-variable
+$(strip $(foreach x,$(DEFAULT_$(1)),
+ $(if $(call has-flag,$(x),$($(1))),,
+ $(eval override $(1)+=$(x)))))
+endef
+
+# vim:filetype=make