From 9a50846ceeef2add2344dd463c5562bd69496a23 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Mon, 6 May 2019 14:44:30 +0300 Subject: [PATCH] Adopt language-specific %build_fooflags macros from Fedora %{optflags} has been the catchall for all compiler options but this is quite limiting as there's no way to add for example C++ specific options distro-wide. This adds separate %build_cflags, %build_cxxflags, %build_fflags for the gcc-supported languages, and additionally %build_ldflags for distro-wide LDFLAGS setting. Based on Florian Weimer's work in Fedoras redhat-rpm-config macros. --- macros.in | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/macros.in b/macros.in index 2ab108776..b6cb52951 100644 --- a/macros.in +++ b/macros.in @@ -999,6 +999,24 @@ package or when debugging this package.\ %_target_vendor %{_host_vendor} %_target_os %{_host_os} +#============================================================================== +# ---- compiler flags. + +# C compiler flags. This is traditionally called CFLAGS in makefiles. +# Historically also available as %%{optflags}, and %%build sets the +# environment variable RPM_OPT_FLAGS to this value. +%build_cflags %{optflags} + +# C++ compiler flags. This is traditionally called CXXFLAGS in makefiles. +%build_cxxflags %{optflags} + +# Fortran compiler flags. Makefiles use both FFLAGS and FCFLAGS as +# the corresponding variable names. +%build_fflags %{optflags} %{?_fmoddir:-I%{_fmoddir}} + +# Link editor flags. This is usually called LDFLAGS in makefiles. +#%build_ldflags -Wl,-z,relro %{?_lto_cflags} + #============================================================================== # ---- specfile macros. # Macro(s) here can be used reliably for reproducible builds. @@ -1010,9 +1028,11 @@ package or when debugging this package.\ # %_configure ./configure %configure \ - CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \ - CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \ - FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \ + CFLAGS="${CFLAGS:-%{?build_cflags}}" ; export CFLAGS ; \ + CXXFLAGS="${CXXFLAGS:-%{?build_cxxflags}}" ; export CXXFLAGS ; \ + FFLAGS="${FFLAGS:-%{?build_fflags}}" ; export FFLAGS ; \ + FCFLAGS="${FCFLAGS:-%{?build_fflags}}" ; export FCFLAGS ; \ + LDFLAGS="${LDFLAGS:-%{?build_ldflags}}" ; export LDFLAGS ; \ %{_configure} --host=%{_host} --build=%{_build} \\\ --program-prefix=%{?_program_prefix} \\\ --disable-dependency-tracking \\\ -- 2.21.0