From 23078c8f2f4f1a821d49cbeb874655c0615439c3 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 23 Dec 2022 17:29:11 +0100 Subject: [PATCH] BUILD: makefile: also list per-option settings in 'make opts' Thanks to the generic naming of the build options, it's now relatively easy to enumerate all _CFLAGS and _LDFLAGS for defined USE_* options. That was added to the first line of 'make opts', but is only listed for enabled options, non-empty variables or cmd-line defined variables. --- Makefile | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index b2ff189b1f..933a54da87 100644 --- a/Makefile +++ b/Makefile @@ -63,7 +63,10 @@ # # Options can be forced by specifying "USE_xxx=1" or can be disabled by using # "USE_xxx=" (empty string). The list of enabled and disabled options for a -# given TARGET is enumerated at the end of "make help". +# given TARGET is enumerated at the end of "make help". Most of these options +# support specific xxx_CFLAGS and/or xxx_LDFLAGS that can be individually +# forced. The currently active ones for a given set of options are listed in +# "make opts USE_xxx=1 ...". # # Variables useful for packagers : # CC is set to "cc" by default and is used for compilation only. @@ -875,7 +878,8 @@ all: @echo " USE_LUA=1 - Support for dynamic processing using Lua" @echo @echo "Use 'make help' to print a full explanation of supported targets" - @echo "and features." + @echo "and features, and 'make ... opts' to show the variables in use" + @echo "for a given set of build options, in a reusable form." @echo @exit 1 else @@ -1110,7 +1114,9 @@ update-version: echo "$(SUBVERS)" > SUBVERS echo "$(VERDATE)" > VERDATE -# just display the build options +# just display the build options. The "USE_*" options and their respective +# settings are also listed if they're explicitly set on the command line, or if +# they are not empty. Implicit "USE_*" are not listed. opts: @echo -n 'Using: ' @echo -n 'TARGET="$(strip $(TARGET))" ' @@ -1120,7 +1126,17 @@ opts: @echo -n 'ARCH_FLAGS="$(strip $(ARCH_FLAGS))" ' @echo -n 'CPU_CFLAGS="$(strip $(CPU_CFLAGS))" ' @echo -n 'DEBUG_CFLAGS="$(strip $(DEBUG_CFLAGS))" ' - @echo "$(strip $(BUILD_OPTIONS))" + @#echo "$(strip $(BUILD_OPTIONS))" + @$(foreach opt,$(enabled_opts),\ + $(if $(subst command line,,$(origin USE_$(opt))),,\ + echo -n 'USE_$(opt)=$(USE_$(opt)) ';) \ + $(if $(subst command line,,$(origin $(opt)_CFLAGS)),\ + $(if $($(opt)_CFLAGS),echo -n '$(opt)_CFLAGS="$($(opt)_CFLAGS)" ';),\ + echo -n '$(opt)_CFLAGS="$($(opt)_CFLAGS)" ';) \ + $(if $(subst command line,,$(origin $(opt)_LDFLAGS)),\ + $(if $($(opt)_LDFLAGS),echo -n '$(opt)_LDFLAGS="$($(opt)_LDFLAGS)" ';),\ + echo -n '$(opt)_LDFLAGS="$($(opt)_LDFLAGS)" ';)) + @echo @echo 'COPTS="$(strip $(COPTS))"' @echo 'LDFLAGS="$(strip $(LDFLAGS))"' @echo 'LDOPTS="$(strip $(LDOPTS))"' -- 2.47.2