From dddeaf3f7dc8d30640119e999bbfabf4ce068a68 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Mar 2021 17:44:23 -0500 Subject: 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 --- Make.rules | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'Make.rules') 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 -- cgit v1.2.3