From acc431b93cb4810e1c143dc8dede58edd741233e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Sun, 12 Jan 2025 21:04:15 +0100 Subject: [PATCH] make: Reduce and simplify the use of CFLAGS / LDFLAGS. --- Makefile.in | 16 ++++++++-------- make/rules-common.mk | 28 ++++++++++++++++------------ make/rules-makedep.mk | 24 ++++++++++++------------ make/rules-meson.mk | 6 +++--- 4 files changed, 39 insertions(+), 35 deletions(-) diff --git a/Makefile.in b/Makefile.in index fa068cee..08875724 100644 --- a/Makefile.in +++ b/Makefile.in @@ -53,15 +53,15 @@ endif OBJCOPY_FLAGS := -p -OPTIMIZE_FLAGS := -O2 -march=nocona -mtune=core-avx2 -mfpmath=sse -SANITY_FLAGS := -fwrapv -fno-strict-aliasing -DEBUG_FLAGS := -ggdb -ffunction-sections -fdata-sections -fno-omit-frame-pointer -COMMON_FLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) $(SANITY_FLAGS) -ffile-prefix-map=$(CCACHE_BASEDIR)=. -i386_COMMON_FLAGS := -mstackrealign -x86_64_COMMON_FLAGS := -mcmodel=small +i386_CFLAGS := -mstackrealign -march=nocona -mtune=core-avx2 -mfpmath=sse +x86_64_CFLAGS := -mcmodel=small -march=nocona -mtune=core-avx2 -mfpmath=sse + +CFLAGS = -O2 -fwrapv -fno-strict-aliasing +CFLAGS += -ggdb -ffunction-sections -fdata-sections -fno-omit-frame-pointer +CFLAGS += -ffile-prefix-map=$(CCACHE_BASEDIR)=. ifneq ($(SUPPRESS_WARNINGS),) - COMMON_FLAGS += -w + CFLAGS += -w endif ifeq ($(ENABLE_BEAR),1) @@ -360,7 +360,7 @@ all-dist: $(DIST_WINEOPENXR64_JSON) ## steam.exe ## -STEAMEXE_CPPFLAGS = \ +STEAMEXE_CFLAGS = \ -I$(SRC)/lsteamclient/steamworks_sdk_142/ \ -I$(SRC)/openvr/headers/ \ diff --git a/make/rules-common.mk b/make/rules-common.mk index a367926e..5500e3f0 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk @@ -94,8 +94,8 @@ all: $(1) .PHONY: all $(2)_$(3)_INCFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-I$$($$(d)_$(3)_INCDIR)) -$(2)_$(3)_LIBFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-L$$($$(d)_$(3)_LIBDIR)/$$($(3)-$(4)_LIBDIR)) \ - $$(foreach d,$$($(2)_$(3)_DEPS),-Wl,-rpath-link=$$($$(d)_$(3)_LIBDIR)/$$($(3)-$(4)_LIBDIR)) \ +$(2)_$(3)_LIBFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-L$$($$(d)_$(3)_LIBDIR)/$$($(3)-$(4)_LIBDIR)) +$(2)_$(3)-unix_LIBFLAGS = $$(foreach d,$$($(2)_$(3)_DEPS),-Wl,-rpath-link=$$($$(d)_$(3)_LIBDIR)/$$($(3)-unix_LIBDIR)) # PKG_CONFIG is intentionally never using windows target, as it's missing # wrapper scripts in the toolchain, we use PKG_CONFIG_LIBDIR directly @@ -120,32 +120,36 @@ $(2)_$(3)_ENV = \ LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_$(3)_DEPS),$$($$(d)_$(3)_LIBDIR)/$$($(3)-$(4)_LIBDIR)),,:)$$$$LD_LIBRARY_PATH" \ PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_$(3)_DEPS),$$($$(d)_$(3)_LIBDIR)/$$($(3)-$(4)_LIBDIR)/pkgconfig))" \ PKG_CONFIG_LIBDIR="/usr/lib/$$($(3)-$(4)_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ - CFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ - CPPFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ - CXXFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17" \ - LDFLAGS="$$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$($(3)-$(4)_LDFLAGS)" \ + CFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)" \ + CPPFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)" \ + CXXFLAGS="$$($(2)_$(3)_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)" \ + LDFLAGS="$$($(2)_$(3)-$(4)_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS)" \ SOURCE_DATE_EPOCH="$$($(2)_$(3)_SOURCE_DATE_EPOCH)" \ ifeq ($(1),wine) $(2)_$(3)_ENV += \ - CROSSCFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)" \ - CROSSLDFLAGS="$$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \ + CROSSCFLAGS="$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)" \ + CROSSLDFLAGS="$$($(2)_$(3)-windows_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS)" \ i386_AR="$$(i386-windows_TARGET)-ar" \ i386_RANLIB="$$(i386-windows_TARGET)-ranlib" \ i386_CC="$$(i386-windows_TARGET)-gcc" \ i386_CXX="$$(i386-windows_TARGET)-g++" \ i386_LD="$$(i386-windows_TARGET)-ld" \ - i386_CFLAGS="$$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(32_COMMON_FLAGS)" \ - i386_LDFLAGS="$$($(2)_i386_LIBFLAGS) $$($(2)_i386_LDFLAGS) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \ + i386_CFLAGS="$$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)" \ + i386_CPPFLAGS="$$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)" \ + i386_CXXFLAGS="$$($(2)_i386_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)" \ + i386_LDFLAGS="$$($(2)_i386-windows_LIBFLAGS) $$($(2)_i386_LIBFLAGS) $$($(2)_LDFLAGS) $$(i386_LDFLAGS) $$(LDFLAGS)" \ i386_PKG_CONFIG_LIBDIR="/usr/lib/$$(i386-windows_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ x86_64_AR="$$(x86_64-windows_TARGET)-ar" \ x86_64_RANLIB="$$(x86_64-windows_TARGET)-ranlib" \ x86_64_CC="$$(x86_64-windows_TARGET)-gcc" \ x86_64_CXX="$$(x86_64-windows_TARGET)-g++" \ x86_64_LD="$$(x86_64-windows_TARGET)-ld" \ - x86_64_CFLAGS="$$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(64_COMMON_FLAGS)" \ - x86_64_LDFLAGS="$$($(2)_x86_64_LIBFLAGS) $$($(2)_x86_64_LDFLAGS) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \ + x86_64_CFLAGS="$$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)" \ + x86_64_CPPFLAGS="$$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)" \ + x86_64_CXXFLAGS="$$($(2)_x86_64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)" \ + x86_64_LDFLAGS="$$($(2)_x86_64-windows_LIBFLAGS) $$($(2)_x86_64_LIBFLAGS) $$($(2)_LDFLAGS) $$(x86_64_LDFLAGS) $$(LDFLAGS)" \ x86_64_PKG_CONFIG_LIBDIR="/usr/lib/$$(x86_64-windows_LIBDIR)/pkgconfig:/usr/share/pkgconfig" \ endif diff --git a/make/rules-makedep.mk b/make/rules-makedep.mk index e9d8c25a..02bb0cbd 100644 --- a/make/rules-makedep.mk +++ b/make/rules-makedep.mk @@ -17,22 +17,22 @@ $$(OBJ)/.$(1)-$(3)-configure: -e '/^libdir/c libdir = $$($(2)_$(3)_LIBDIR)' \ -e '/^toolsdir/c toolsdir = $$(WINE_$(3)_OBJ)' \ \ - -e '/^CFLAGS/c CFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)' \ - -e '/^CPPFLAGS/c CPPFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS)' \ - -e '/^CXXFLAGS/c CXXFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17' \ - -e '/^LDFLAGS/c LDFLAGS = $$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$($(3)-unix_LDFLAGS)' \ + -e '/^CFLAGS/c CFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ + -e '/^CPPFLAGS/c CPPFLAGS = $$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ + -e '/^CXXFLAGS/c CXXFLAGS = $$($(2)_$(3)_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS)' \ + -e '/^LDFLAGS/c LDFLAGS = $$($(2)_$(3)-$(4)_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS)' \ \ -e '/^x86_64_CC/a x86_64_CXX = $$(x86_64-windows_TARGET)-g++' \ - -e '/^x86_64_CFLAGS/c x86_64_CFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(x86_64_COMMON_FLAGS)' \ - -e '/^x86_64_CPPFLAGS/c x86_64_CPPFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(x86_64_COMMON_FLAGS)' \ - -e '/^x86_64_CXXFLAGS/c x86_64_CXXFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(x86_64_COMMON_FLAGS) -std=c++17' \ - -e '/^x86_64_LDFLAGS/c x86_64_LDFLAGS = $$($(2)_x86_64_LIBFLAGS) $$($(2)_x86_64_LDFLAGS) $$(x86_64-windows_LDFLAGS)' \ + -e '/^x86_64_CFLAGS/c x86_64_CFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)' \ + -e '/^x86_64_CPPFLAGS/c x86_64_CPPFLAGS = $$($(2)_x86_64_INCFLAGS) $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)' \ + -e '/^x86_64_CXXFLAGS/c x86_64_CXXFLAGS = $$($(2)_x86_64_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(x86_64_CFLAGS) $$(CFLAGS)' \ + -e '/^x86_64_LDFLAGS/c x86_64_LDFLAGS = $$($(2)_x86_64-windows_LIBFLAGS) $$($(2)_x86_64_LIBFLAGS) $$($(2)_LDFLAGS) $$(x86_64_LDFLAGS) $$(LDFLAGS)' \ \ -e '/^i386_CC/a i386_CXX = $$(i386-windows_TARGET)-g++' \ - -e '/^i386_CFLAGS/c i386_CFLAGS = $$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(i386_COMMON_FLAGS)' \ - -e '/^i386_CPPFLAGS/c i386_CPPFLAGS = $$($(2)_i386_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(i386_COMMON_FLAGS)' \ - -e '/^i386_CXXFLAGS/c i386_CXXFLAGS = $$($(2)_i386_INCFLAGS) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(i386_COMMON_FLAGS) -std=c++17' \ - -e '/^i386_LDFLAGS/c i386_LDFLAGS = $$($(2)_i386_LIBFLAGS) $$($(2)_i386_LDFLAGS) $$(i386-windows_LDFLAGS)' \ + -e '/^i386_CFLAGS/c i386_CFLAGS = $$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)' \ + -e '/^i386_CPPFLAGS/c i386_CPPFLAGS = $$($(2)_i386_INCFLAGS) $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)' \ + -e '/^i386_CXXFLAGS/c i386_CXXFLAGS = $$($(2)_i386_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$(i386_CFLAGS) $$(CFLAGS)' \ + -e '/^i386_LDFLAGS/c i386_LDFLAGS = $$($(2)_i386-windows_LIBFLAGS) $$($(2)_i386_LIBFLAGS) $$($(2)_LDFLAGS) $$(i386_LDFLAGS) $$(LDFLAGS)' \ \ -e 's@UNIXLDFLAGS =@UNIXLDFLAGS = -L$$(WINE_$(3)_LIBDIR)/wine/$(3)-unix -l:ntdll.so@' \ $$(WINE_$(3)_OBJ)/Makefile > $$($(2)_$(3)_OBJ)/Makefile diff --git a/make/rules-meson.mk b/make/rules-meson.mk index 0ae7bf1e..995da1a2 100644 --- a/make/rules-meson.mk +++ b/make/rules-meson.mk @@ -21,9 +21,9 @@ pkgconfig = '$$$$PKG_CONFIG' [properties] needs_exe_wrapper = true -c_args = [$$(call list-quote,$$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS))] -cpp_args = [$$(call list-quote,$$($(2)_$(3)_INCFLAGS) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$($(3)_COMMON_FLAGS) -std=c++17)] -link_args = [$$(call list-quote,$$($(2)_$(3)_LIBFLAGS) $$($(2)_$(3)_LDFLAGS) $$($(2)_LDFLAGS) $$($(3)-$(4)_LDFLAGS))] +c_args = [$$(call list-quote,$$($(2)_$(3)_INCFLAGS) $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS))] +cpp_args = [$$(call list-quote,$$($(2)_$(3)_INCFLAGS) -std=c++17 $$($(2)_CFLAGS) $$($(3)_CFLAGS) $$(CFLAGS))] +link_args = [$$(call list-quote,$$($(2)_$(3)-$(4)_LIBFLAGS) $$($(2)_$(3)_LIBFLAGS) $$($(2)_LDFLAGS) $$($(3)_LDFLAGS) $$(LDFLAGS))] pkg_config_libdir = '$$$$PKG_CONFIG_LIBDIR' [host_machine]