From bfe7a84454dbb819dce2ad2e792e6907076bff51 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Date: Thu, 25 Mar 2021 23:17:17 -0400
Subject: [PATCH] configure.ac: Do not set user variables.

The CFLAGS, CXXFLAGS, LDFLAGS and other variables intended to be
overridden by the user should not directly be set by the package.
This change uses one of the approaches recommended by the Autoconf and
Automake manuals, which is to use custom variables to accumulate flags
in the configure script and add them to the make targets they apply
to.  This has the benefit of not cluttering the flags used during the
Autoconf tests, which has proved problematic (see the previous commit
for a demonstration).

* configure.ac: Replace CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS by
DAEMONCFLAGS, DAEMONCXXFLAGS, DAEMONCPPFLAGS and DAEMONLDFLAGS,
respectively.
Use these custom variables as the default values of AM_CFLAGS,
AM_CXXFLAGS, AM_CPPFLAGS and AM_LDFLAGS, respectively.  Remove an
extraneous check on jsoncpp.
* bin/Makefile.am (ringcli_CXXFLAGS): Honor the the AM_CXXFLAGS variable.
globals.mk: Extend rather than override the AM_CPPFLAGS variable.
* src/Makefile.am (libring_la_LDFLAGS): Honor AM_LDFLAGS.
(libring_la_CFLAGS): Honor AM_CFLAGS.
(libring_la_CXXFLAGS): Honor AM_CXXFLAGS.
* src/client/Makefile.am (libclient_la_CXXFLAGS): Honor AM_CXXFLAGS.
* src/im/Makefile.am (libim_la_CXXFLAGS): Remove variable.
* src/jamidht/Makefile.am (libringacc_la_CXXFLAGS): Likewise.
* src/media/audio/Makefile.am (libaudio_la_CXXFLAGS): Honor
AM_CXXFLAGS.
(libaudio_la_LDFLAGS): Honor the AM_CXXFLAGS variable.
* src/media/audio/coreaudio/Makefile.am (libcoreaudiolayer_la_CXXFLAGS):
Likewise.
* src/media/video/Makefile.am (libvideo_la_CFLAGS): Honor the
AM_CFLAGS variable.
(libvideo_la_CXXFLAGS): Honor the AM_CXXFLAGS variable.
* src/media/video/v4l2/Makefile.am (AM_CXXFLAGS): Extend rather than
override.
* src/plugin/Makefile.am (libplugin_la_CXXFLAGS): Honor the
AM_CXXFLAGS variable.
* src/security/Makefile.am (libsecurity_la_CXXFLAGS): Likewise.
* src/sip/Makefile.am (libsiplink_la_CXXFLAGS): Likewise.
* src/upnp/Makefile.am (libupnpcontrol_la_CXXFLAGS): Remove variable.
* src/upnp/protocol/Makefile.am (libupnpprotocol_la_CXXFLAGS): Likewise.
* src/upnp/protocol/natpmp/Makefile.am (libnat_pmp_la_CXXFLAGS): Likewise.
* src/upnp/protocol/pupnp/Makefile.am (libpupnp_la_CXXFLAGS): Likewise.
* test/sip/Makefile.am (AM_CXXFLAGS, AM_LDFLAGS): Extend rather than override.
* test/unitTest/Makefile.am (AM_CXXFLAGS, AM_LDFLAGS): Likewise.

GitLab: #487
Change-Id: I18be9d812159f8156efb9f7849e7eac6d4c6b3ca

squash! configure.ac: Do not set user variables.

Change-Id: I1146ea15d6fb75fe53d3cbdd782e981c933e82a6
---
 bin/Makefile.am                       |   6 +-
 configure.ac                          | 185 ++++++++++++--------------
 globals.mk                            |   2 +-
 src/Makefile.am                       |   8 +-
 src/client/Makefile.am                |   3 +-
 src/im/Makefile.am                    |   1 -
 src/jamidht/Makefile.am               |   2 -
 src/media/audio/Makefile.am           |   7 +-
 src/media/audio/coreaudio/Makefile.am |   4 +-
 src/media/video/Makefile.am           |  26 +++-
 src/media/video/v4l2/Makefile.am      |  18 ++-
 src/plugin/Makefile.am                |   3 +-
 src/security/Makefile.am              |   2 +-
 src/sip/Makefile.am                   |   2 +-
 src/upnp/Makefile.am                  |   5 +-
 src/upnp/protocol/Makefile.am         |   5 +-
 src/upnp/protocol/natpmp/Makefile.am  |   5 +-
 src/upnp/protocol/pupnp/Makefile.am   |   5 +-
 test/sip/Makefile.am                  |   4 +-
 test/unitTest/Makefile.am             |   6 +-
 20 files changed, 155 insertions(+), 144 deletions(-)

diff --git a/bin/Makefile.am b/bin/Makefile.am
index 63f86319d5..a7ef6740b5 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -5,7 +5,8 @@ ringlib_PROGRAMS = ringcli
 ringcli_SOURCES = winmain.cpp
 ringcli_CXXFLAGS = -I$(top_srcdir)/src \
                    -I$(top_srcdir)/src/dring \
-                   -DTOP_BUILDDIR=\"$$(cd "$(top_builddir)"; pwd)\"
+                   -DTOP_BUILDDIR=\"$$(cd "$(top_builddir)"; pwd)\" \
+		   $(AM_CXXFLAGS)
 ringcli_LDADD = $(top_builddir)/src/libring.la
 endif
 
@@ -14,7 +15,8 @@ ringlib_PROGRAMS = ringcli
 ringcli_SOURCES = osxmain.cpp
 ringcli_CXXFLAGS = -I$(top_srcdir)/src \
                    -I$(top_srcdir)/src/dring \
-                   -DTOP_BUILDDIR=\"$$(cd "$(top_builddir)"; pwd)\"
+                   -DTOP_BUILDDIR=\"$$(cd "$(top_builddir)"; pwd)\" \
+		   $(AM_CXXFLAGS)
 ringcli_LDADD = $(top_builddir)/src/libring.la
 endif
 
diff --git a/configure.ac b/configure.ac
index 6f519ff41c..92effa0e4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,14 +22,17 @@ AC_CONFIG_HEADERS([config.h])
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
 dnl debug mode is default-disabled
-AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [Build in debug mode, adds stricter warnings, disables optimization]))
-AS_IF([test "x$enable_debug" = "xyes"], [
-    CFLAGS="${CFLAGS} -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor -Wno-unknown-pragmas -Wformat=2 -O0"
-    CXXFLAGS="${CXXFLAGS} -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor -Wno-unknown-pragmas -Wformat=2 -O0"
-], [
-    CFLAGS="${CFLAGS} -DNDEBUG=1 -O3"
-    CXXFLAGS="${CXXFLAGS} -DNDEBUG=1 -O3"
-])
+AC_ARG_ENABLE([debug],
+  AS_HELP_STRING([--enable-debug],
+    [Build in debug mode, adds stricter warnings, disables optimization]))
+
+AS_IF([test "x$enable_debug" = "xyes"],
+  [DAEMONCFLAGS+=" -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor \
+-Wno-unknown-pragmas -Wformat=2 -O0"
+   DAEMONCXXFLAGS+=" -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor \
+-Wno-unknown-pragmas -Wformat=2 -O0"],
+  [DAEMONCFLAGS+=" -DNDEBUG=1 -O3"
+   DAEMONCXXFLAGS+=" -DNDEBUG=1 -O3"])
 
 dnl Check for programs
 AC_PROG_CC
@@ -55,9 +58,9 @@ case "${host_os}" in
   linux*)
     SYS=linux
     # Necessary for linking .a to a .so
-    LDFLAGS+=" -Wl,-Bsymbolic"
+    DAEMONLDFLAGS+=" -Wl,-Bsymbolic"
     # Needed for plugin system
-    LDFLAGS+=" -ldl"
+    DAEMONLDFLAGS+=" -ldl"
     ;;
   darwin*)
     SYS=darwin
@@ -87,8 +90,8 @@ case "${host_os}" in
 
     AC_DEFINE([WIN32_LEAN_AND_MEAN],[1], [Define to limit the scope of <windows.h>.])
 
-    CPPFLAGS+="-D_WIN32_WINNT=0x0601 -DWINVER=0x0601 -D__USE_MINGW_ANSI_STDIO=1"
-    LDFLAGS+="-Wl,--nxcompat -Wl,--dynamicbase"
+    DAEMONCPPFLAGS+=" -D_WIN32_WINNT=0x0601 -DWINVER=0x0601 -D__USE_MINGW_ANSI_STDIO=1"
+    DAEMONLDFLAGS+=" -Wl,--nxcompat -Wl,--dynamicbase"
     LIBS+=" -lws2_32 -lwsock32 -lshlwapi"
     ac_default_prefix="`pwd`/_win32"
     DESTDIR="`pwd`/_win32/"
@@ -134,11 +137,9 @@ AS_IF([test "$SYS" = linux],[
 ])
 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
 
-AS_IF([test "$SYS" = linux && test "${HAVE_ANDROID}" != "1"],[
-    CFLAGS="${CFLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-    CXXFLAGS="${CXXFLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-],[
-])
+AS_IF([test "$SYS" = linux && test "${HAVE_ANDROID}" != "1"],
+  [DAEMONCPPFLAGS+=" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]
+  [])
 
 dnl override platform specific check for dependent libraries
 dnl otherwise libtool linking of shared libraries will
@@ -198,91 +199,67 @@ AC_MSG_RESULT([$CLANG])
 dnl define DRING_BUILD because we are building libring, not using it
 dnl if building shared library, define dring_EXPORTS
 AC_MSG_CHECKING([if compiling shared library])
-CPPFLAGS="${CPPFLAGS} -fvisibility=hidden -DDRING_BUILD "
-AS_IF([test "x$enable_shared" == "xyes"], [
-  RING_SHARED=yes
-  CPPFLAGS="${CPPFLAGS} -Ddring_EXPORTS "
-],[
-  RING_SHARED=no
-])
+DAEMONCPPFLAGS+=" -fvisibility=hidden -DDRING_BUILD"
+AS_IF([test "x$enable_shared" == "xyes"],
+  [RING_SHARED=yes
+   DAEMONCPPFLAGS+=" -Ddring_EXPORTS"],
+  [RING_SHARED=no])
 AC_MSG_RESULT([$RING_SHARED])
 
-CPPFLAGS="${CPPFLAGS} -DASIO_STANDALONE"
+DAEMONCPPFLAGS+=" -DASIO_STANDALONE"
 
 dnl
 dnl  Check for the contrib directory
 dnl
 AC_ARG_WITH(contrib,
   [AS_HELP_STRING([--with-contrib[=DIR]],
-    [search for 3rd party libraries in DIR/include and DIR/lib])
-])
+    [search for 3rd party libraries in DIR/include and DIR/lib])])
 AC_MSG_CHECKING([for 3rd party libraries path])
-AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
-  CONTRIB_DIR="${srcdir}/contrib/${host}"
-  AS_IF([test ! -d "${CONTRIB_DIR}"], [
-    echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-    CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
-    AS_IF([test ! -d "${CONTRIB_DIR}"], [
-      echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
-      CONTRIB_DIR=""
-      AC_MSG_RESULT([not found])
-    ])
-  ])
-], [
-  AS_IF([test "${with_contrib}" != "no"], [
-    CONTRIB_DIR="${with_contrib}"
-  ], [
-    CONTRIB_DIR=""
-    AC_MSG_RESULT([disabled])
-  ])
-])
-
-AS_IF([test -n "${CONTRIB_DIR}"], [
-  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
-    CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
-  ], [
-    echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
-    CONTRIB_DIR=""
-    AC_MSG_RESULT([not usable])
-  ])
-])
-
-AS_IF([test -n "${CONTRIB_DIR}"], [
-  AC_MSG_RESULT([${CONTRIB_DIR}])
-  export PATH=${CONTRIB_DIR}/bin:$PATH
-  CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
-
-  CFLAGS="${CFLAGS} -DPJ_AUTOCONF=1 "
-  CXXFLAGS="${CXXFLAGS} -DPJ_AUTOCONF=1 "
-  AS_IF([test "${HAVE_WIN64}" = "1"],[
-      CFLAGS+=" -DPJ_WIN64=1"
-      CXXFLAGS+=" -DPJ_WIN64=1"
-  ])
-  CFLAGS+=" -I${CONTRIB_DIR}/include"
-  CXXFLAGS+=" -I${CONTRIB_DIR}/include"
-
-  OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
-  AS_IF([test "${SYS}" = "mingw32"],[
-        PKG_CONFIG_PATH_CUSTOM="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/lib64/pkgconfig"
-        AC_SUBST(PKG_CONFIG_PATH_CUSTOM)
-        export PKG_CONFIG_PATH_CUSTOM
-  ])
-  export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/lib64/pkgconfig:$PKG_CONFIG_PATH"
-  LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
-
-  AS_IF([test "${SYS}" = "darwin"], [
-    export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
-    export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
-  ], [
-      PKG_CHECK_MODULES([Jsoncpp], [jsoncpp >= 1.6.5])
-      CPPFLAGS="${CPPFLAGS} ${Jsoncpp_CFLAGS}"
-      LDFLAGS="${LDFLAGS} ${Jsoncpp_LIBS}"
-  ])
-], [
-  AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
-    AC_MSG_ERROR([Third party libraries not found!])
-  ])
-])
+AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"],
+  [CONTRIB_DIR="${srcdir}/contrib/${host}"
+   AS_IF([test ! -d "${CONTRIB_DIR}"],
+     [echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+      CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
+      AS_IF([test ! -d "${CONTRIB_DIR}"],
+        [echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
+         CONTRIB_DIR=""
+         AC_MSG_RESULT([not found])])])],
+  [AS_IF([test "${with_contrib}" != "no"],
+     [CONTRIB_DIR="${with_contrib}"],
+     [CONTRIB_DIR=""
+      AC_MSG_RESULT([disabled])])])
+
+AS_IF([test -n "${CONTRIB_DIR}"],
+  [AS_IF([test -d "${CONTRIB_DIR}/lib"],
+    [CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`],
+    [echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
+     CONTRIB_DIR=""
+     AC_MSG_RESULT([not usable])])])
+
+AS_IF([test -n "${CONTRIB_DIR}"],
+  [AC_MSG_RESULT([${CONTRIB_DIR}])
+   export PATH=${CONTRIB_DIR}/bin:$PATH
+
+   DAEMONCPPFLAGS+=" -I${CONTRIB_DIR}/include  -DPJ_AUTOCONF=1"
+
+   AS_IF([test "${HAVE_WIN64}" = "1"],
+     [DAEMONCPPFLAGS+=" -DPJ_WIN64=1"])
+
+   AS_IF([test "${SYS}" = "mingw32"],
+     [PKG_CONFIG_PATH_CUSTOM="${CONTRIB_DIR}/lib/pkgconfig:\
+${CONTRIB_DIR}/lib64/pkgconfig"
+      AC_SUBST(PKG_CONFIG_PATH_CUSTOM)
+      export PKG_CONFIG_PATH_CUSTOM])
+
+   export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:\
+${CONTRIB_DIR}/lib64/pkgconfig:$PKG_CONFIG_PATH"
+   DAEMONLDFLAGS+=" -L${CONTRIB_DIR}/lib"
+
+   AS_IF([test "${SYS}" = "darwin"],
+     [export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
+      export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"])],
+  [AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"],
+     [AC_MSG_ERROR([Third party libraries not found!])])])
 AC_SUBST(CONTRIB_DIR)
 
 dnl Add extras/tools to the PATH
@@ -298,8 +275,13 @@ PKG_CHECK_MODULES(ZLIB, zlib,, AC_MSG_ERROR([zlib not found]))
 dnl Check for pjproject
 PKG_CHECK_MODULES(PJPROJECT, libpjproject,, AC_MSG_ERROR([Missing pjproject files]))
 
-PKG_CHECK_MODULES([YAMLCPP], [yaml-cpp >= 0.5.1],, AC_MSG_ERROR([yaml-cpp not found]))
-PKG_CHECK_MODULES([JSONCPP], [jsoncpp >= 1.6.5],, AC_MSG_ERROR([jsoncpp not found]))
+PKG_CHECK_MODULES([YAMLCPP], [yaml-cpp >= 0.5.1],,
+  AC_MSG_ERROR([yaml-cpp not found]))
+
+PKG_CHECK_MODULES([JSONCPP], [jsoncpp >= 1.6.5],
+  [DAEMONCPPFLAGS+=" ${JSONCPP_CFLAGS}"
+   DAEMONLDFLAGS+=" ${JSONCPP_LIBS}"],
+  AC_MSG_ERROR([jsoncpp not found]))
 
 if test "${HAVE_ANDROID}" = "1"; then
     dnl Check for OpenSL
@@ -382,9 +364,9 @@ AM_CONDITIONAL(BUILD_JACK, test "x$have_jack" = "xyes")
 dnl Coverage is default-disabled
 AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage], [Enable coverage]))
 
-AS_IF([test "x$enable_coverage" = "xyes"], [
-        CXXFLAGS="${CXXFLAGS} --coverage"
-        LDFLAGS="${LDFLAGS} --coverage"])
+AS_IF([test "x$enable_coverage" = "xyes"],
+  [DAEMONCXXFLAGS+=" --coverage"
+   DAEMONLDFLAGS+=" --coverage"])
 
 # DBUSCPP
 dnl Check for dbuscpp, the C++ bindings for D-Bus
@@ -660,5 +642,12 @@ AC_CONFIG_FILES([Makefile \
                  doc/Makefile \
                  doc/doxygen/Makefile])
 
+dnl Transfer the Automake variables set here to Makefile.in.
+echo DAEMONCPPFLAGS=$DAEMONCPPFLAGS
+AC_SUBST([AM_CPPFLAGS], [$DAEMONCPPFLAGS])
+AC_SUBST([AM_CFLAGS],   [$DAEMONCFLAGS])
+AC_SUBST([AM_CXXFLAGS], [$DAEMONCXXFLAGS])
+AC_SUBST([AM_LDFLAGS],  [$DAEMONLDFLAGS])
+
 # Go!
 AC_OUTPUT
diff --git a/globals.mk b/globals.mk
index cfc47635fb..888a9fd942 100644
--- a/globals.mk
+++ b/globals.mk
@@ -10,7 +10,7 @@ RING_DIRTY_REPO ?= $(shell git diff-index --quiet HEAD 2>/dev/null || echo dirty
 RING_REVISION ?= $(shell git log -1 --format="%h" --abbrev=10 2>/dev/null)
 
 # Preprocessor flags
-AM_CPPFLAGS = \
+AM_CPPFLAGS += \
 	-I$(src)/src \
 	-I$(src)/src/config \
 	-I$(src)/src/media \
diff --git a/src/Makefile.am b/src/Makefile.am
index 0f61a7614a..08148bdc98 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -78,7 +78,8 @@ libring_la_LDFLAGS = \
 		@LIBSWSCALE_LIBS@ \
 		@LIBAVUTIL_LIBS@ \
 		@LIBS@ \
-		@WEBRTC_LIBS@
+		@WEBRTC_LIBS@ \
+	        $(AM_LDFLAGS)
 
 if ENABLE_PLUGIN
 libring_la_LDFLAGS+= \
@@ -111,9 +112,10 @@ libring_la_CFLAGS = \
 		@LIBAVFILTER_CFLAGS@ \
 		@LIBSWRESAMPLE_CFLAGS@ \
 		@LIBSWSCALE_CFLAGS@ \
-		@WEBRTC_CFLAGS@
+		@WEBRTC_CFLAGS@ \
+		$(AM_CFLAGS)
 
-libring_la_CXXFLAGS = @JSONCPP_CFLAGS@
+libring_la_CXXFLAGS = $(AM_CXXFLAGS)
 
 if HAVE_LINUX
 #needed to compile the .so
diff --git a/src/client/Makefile.am b/src/client/Makefile.am
index c5570287c1..736a894eeb 100644
--- a/src/client/Makefile.am
+++ b/src/client/Makefile.am
@@ -29,4 +29,5 @@ libclient_la_CXXFLAGS = \
 	-I./ \
 	-I../ \
 	-DPREFIX=\"$(prefix)\" \
-	-DPROGSHAREDIR=\"${datadir}/ring\"
+	-DPROGSHAREDIR=\"${datadir}/ring\" \
+	$(AM_CXXFLAGS)
diff --git a/src/im/Makefile.am b/src/im/Makefile.am
index 848864b692..e0827d8ee7 100644
--- a/src/im/Makefile.am
+++ b/src/im/Makefile.am
@@ -2,5 +2,4 @@ include $(top_srcdir)/globals.mk
 
 noinst_LTLIBRARIES = libim.la
 
-libim_la_CXXFLAGS = @JSONCPP_CFLAGS@
 libim_la_SOURCES = instant_messaging.cpp message_engine.cpp instant_messaging.h message_engine.h
diff --git a/src/jamidht/Makefile.am b/src/jamidht/Makefile.am
index 080c15e69e..69e721f706 100644
--- a/src/jamidht/Makefile.am
+++ b/src/jamidht/Makefile.am
@@ -5,8 +5,6 @@ SUBDIRS = eth/libdevcore eth/libdevcrypto
 AM_CPPFLAGS += -I$(top_srcdir)/src/jamidht/eth
 noinst_LTLIBRARIES = libringacc.la
 
-libringacc_la_CXXFLAGS = @CXXFLAGS@ @JSONCPP_CFLAGS@
-
 libringacc_la_LIBADD = $(DHT_LIBS) \
     ./eth/libdevcore/libdevcore.la \
     ./eth/libdevcrypto/libdevcrypto.la
diff --git a/src/media/audio/Makefile.am b/src/media/audio/Makefile.am
index 02fa07e4fc..fbf6c09c07 100644
--- a/src/media/audio/Makefile.am
+++ b/src/media/audio/Makefile.am
@@ -53,8 +53,11 @@ libaudio_la_SOURCES = \
 		audio_rtp_session.cpp \
 		tonecontrol.cpp
 
-libaudio_la_CXXFLAGS = -I$(top_srcdir)/src
-libaudio_la_LDFLAGS =
+libaudio_la_CXXFLAGS = \
+	-I$(top_srcdir)/src \
+	$(AM_CXXFLAGS)
+
+libaudio_la_LDFLAGS = $(AM_LDFLAGS)
 
 if BUILD_SPEEXDSP
 libaudio_la_CXXFLAGS += @SPEEXDSP_CFLAGS@
diff --git a/src/media/audio/coreaudio/Makefile.am b/src/media/audio/coreaudio/Makefile.am
index 655f144bb8..819c6ccb48 100644
--- a/src/media/audio/coreaudio/Makefile.am
+++ b/src/media/audio/coreaudio/Makefile.am
@@ -10,5 +10,7 @@ noinst_LTLIBRARIES = libcoreaudiolayer.la
 libcoreaudiolayer_la_SOURCES = ios/corelayer.mm ios/corelayer.h
 endif
 
-libcoreaudiolayer_la_CXXFLAGS = -I$(top_srcdir)/src
+libcoreaudiolayer_la_CXXFLAGS = \
+	-I$(top_srcdir)/src \
+	$(AM_CXXFLAGS)
 AM_OBJCXXFLAGS = -std=c++17
diff --git a/src/media/video/Makefile.am b/src/media/video/Makefile.am
index 5719b0f8a4..c820609e22 100644
--- a/src/media/video/Makefile.am
+++ b/src/media/video/Makefile.am
@@ -43,12 +43,28 @@ if RING_ACCEL
 libvideo_la_SOURCES += accel.cpp accel.h
 endif
 
-libvideo_la_LIBADD = @LIBAVCODEC_LIBS@ @LIBAVFORMAT_LIBS@ @LIBAVDEVICE_LIBS@ @LIBSWSCALE_LIBS@ @LIBAVUTIL_LIBS@
+libvideo_la_LIBADD = \
+	@LIBAVCODEC_LIBS@ \
+	@LIBAVFORMAT_LIBS@ \
+	@LIBAVDEVICE_LIBS@ \
+	@LIBSWSCALE_LIBS@ \
+	@LIBAVUTIL_LIBS@
 
-AM_CXXFLAGS=@LIBAVCODEC_CFLAGS@ @LIBAVFORMAT_CFLAGS@ @LIBAVDEVICE_CFLAGS@ @LIBSWSCALE_CFLAGS@
-AM_CFLAGS=@LIBAVCODEC_CFLAGS@ @LIBAVFORMAT_CFLAGS@ @LIBAVDEVICE_CFLAGS@ @LIBSWSCALE_CFLAGS@
+libvideo_la_CFLAGS = \
+	@LIBAVCODEC_CFLAGS@ \
+	@LIBAVFORMAT_CFLAGS@ \
+	@LIBAVDEVICE_CFLAGS@ \
+	@LIBSWSCALE_CFLAGS@ \
+	$(AM_CFLAGS)
+
+libvideo_la_CXXFLAGS =  \
+	@LIBAVCODEC_CFLAGS@ \
+	@LIBAVFORMAT_CFLAGS@ \
+	@LIBAVDEVICE_CFLAGS@ \
+	@LIBSWSCALE_CFLAGS@ \
+	$(AM_CXXFLAGS)
 
 if HAVE_WIN32
-AM_CXXFLAGS+=-static
-AM_CFLAGS+=-static
+	libvideo_la_CXXFLAGS += -static
+	libvideo_la_CFLAGS += -static
 endif
diff --git a/src/media/video/v4l2/Makefile.am b/src/media/video/v4l2/Makefile.am
index 11184a2731..5cdf30224e 100644
--- a/src/media/video/v4l2/Makefile.am
+++ b/src/media/video/v4l2/Makefile.am
@@ -6,8 +6,18 @@ libv4l2_la_SOURCES = \
 	video_device_impl.cpp \
 	video_device_monitor_impl.cpp
 
-AM_CXXFLAGS = @LIBAVCODEC_CFLAGS@ @LIBAVFORMAT_CFLAGS@ @LIBAVDEVICE_CFLAGS@ @LIBSWSCALE_CFLAGS@ @LIBAVUTIL_CFLAGS@
-AM_CXXFLAGS += @UDEV_CFLAGS@
+AM_CXXFLAGS += \
+	@LIBAVCODEC_CFLAGS@ \
+	@LIBAVFORMAT_CFLAGS@ \
+	@LIBAVDEVICE_CFLAGS@ \
+	@LIBSWSCALE_CFLAGS@ \
+	@LIBAVUTIL_CFLAGS@ \
+	@UDEV_CFLAGS@
 
-libv4l2_la_LIBADD = @LIBAVCODEC_LIBS@ @LIBAVFORMAT_LIBS@ @LIBAVDEVICE_LIBS@ @LIBSWSCALE_LIBS@ @LIBAVUTIL_LIBS@
-libv4l2_la_LIBADD += @UDEV_LIBS@
+libv4l2_la_LIBADD = \
+	@LIBAVCODEC_LIBS@ \
+	@LIBAVFORMAT_LIBS@ \
+	@LIBAVDEVICE_LIBS@ \
+	@LIBSWSCALE_LIBS@ \
+	@LIBAVUTIL_LIBS@ \
+	@UDEV_LIBS@
diff --git a/src/plugin/Makefile.am b/src/plugin/Makefile.am
index 93fccb1366..7a8407b0a3 100644
--- a/src/plugin/Makefile.am
+++ b/src/plugin/Makefile.am
@@ -31,4 +31,5 @@ libplugin_la_CXXFLAGS = \
 	-I./ \
 	-I../ \
 	-DPREFIX=\"$(prefix)\" \
-	-DPROGSHAREDIR=\"${datadir}/ring\"
+	-DPROGSHAREDIR=\"${datadir}/ring\" \
+	$(AM_CXXFLAGS)
diff --git a/src/security/Makefile.am b/src/security/Makefile.am
index 5ef080c08b..5d168d9a66 100644
--- a/src/security/Makefile.am
+++ b/src/security/Makefile.am
@@ -1,7 +1,7 @@
 include $(top_srcdir)/globals.mk
 
 noinst_LTLIBRARIES = libsecurity.la
-libsecurity_la_CXXFLAGS = @CXXFLAGS@ -I$(top_srcdir)/src
+libsecurity_la_CXXFLAGS = -I$(top_srcdir)/src $(AM_CXXFLAGS)
 
 libsecurity_la_SOURCES = \
 		tls_session.cpp \
diff --git a/src/sip/Makefile.am b/src/sip/Makefile.am
index 3a1f056836..a919581abf 100644
--- a/src/sip/Makefile.am
+++ b/src/sip/Makefile.am
@@ -1,7 +1,7 @@
 include $(top_srcdir)/globals.mk
 
 noinst_LTLIBRARIES = libsiplink.la
-libsiplink_la_CXXFLAGS = @CXXFLAGS@ -I$(top_srcdir)/src
+libsiplink_la_CXXFLAGS = -I$(top_srcdir)/src $(AM_CXXFLAGS)
 
 libsiplink_la_SOURCES = \
         sipaccountbase.cpp \
diff --git a/src/upnp/Makefile.am b/src/upnp/Makefile.am
index 01975e779f..0bf4ca8b10 100644
--- a/src/upnp/Makefile.am
+++ b/src/upnp/Makefile.am
@@ -4,9 +4,6 @@ noinst_LTLIBRARIES = libupnpcontrol.la
 
 SUBDIRS = protocol
 
-libupnpcontrol_la_CXXFLAGS = \
-                @CXXFLAGS@
-
 libupnpcontrol_la_SOURCES = \
         upnp_control.cpp \
         upnp_control.h \
@@ -14,4 +11,4 @@ libupnpcontrol_la_SOURCES = \
         upnp_context.h
 
 libupnpcontrol_la_LIBADD = \
-        ./protocol/libupnpprotocol.la
\ No newline at end of file
+        ./protocol/libupnpprotocol.la
diff --git a/src/upnp/protocol/Makefile.am b/src/upnp/protocol/Makefile.am
index 5e5c568390..f48ba5fcc9 100644
--- a/src/upnp/protocol/Makefile.am
+++ b/src/upnp/protocol/Makefile.am
@@ -11,9 +11,6 @@ if BUILD_NATPMP
 SUBDIRS += natpmp
 endif
 
-libupnpprotocol_la_CXXFLAGS = \
-                @CXXFLAGS@
-
 libupnpprotocol_la_SOURCES = \
         igd.h \
         igd.cpp \
@@ -30,4 +27,4 @@ endif
 
 if BUILD_NATPMP
 libupnpprotocol_la_LIBADD += ./natpmp/libnat_pmp.la
-endif
\ No newline at end of file
+endif
diff --git a/src/upnp/protocol/natpmp/Makefile.am b/src/upnp/protocol/natpmp/Makefile.am
index 4058c7696a..4c3d632568 100644
--- a/src/upnp/protocol/natpmp/Makefile.am
+++ b/src/upnp/protocol/natpmp/Makefile.am
@@ -2,11 +2,8 @@ include $(top_srcdir)/globals.mk
 
 noinst_LTLIBRARIES = libnat_pmp.la
 
-libnat_pmp_la_CXXFLAGS = \
-                @CXXFLAGS@
-
 libnat_pmp_la_SOURCES = \
         pmp_igd.h \
         pmp_igd.cpp \
         nat_pmp.h \
-        nat_pmp.cpp
\ No newline at end of file
+        nat_pmp.cpp
diff --git a/src/upnp/protocol/pupnp/Makefile.am b/src/upnp/protocol/pupnp/Makefile.am
index 9c02e0af19..bb837714d2 100644
--- a/src/upnp/protocol/pupnp/Makefile.am
+++ b/src/upnp/protocol/pupnp/Makefile.am
@@ -2,11 +2,8 @@ include $(top_srcdir)/globals.mk
 
 noinst_LTLIBRARIES = libpupnp.la
 
-libpupnp_la_CXXFLAGS = \
-                @CXXFLAGS@
-
 libpupnp_la_SOURCES = \
         upnp_igd.h \
         upnp_igd.cpp \
         pupnp.h \
-        pupnp.cpp
\ No newline at end of file
+        pupnp.cpp
diff --git a/test/sip/Makefile.am b/test/sip/Makefile.am
index 51d94eebf7..083cf62e77 100644
--- a/test/sip/Makefile.am
+++ b/test/sip/Makefile.am
@@ -1,8 +1,8 @@
 # Rules for the test code (use `make check` to execute)
 include $(top_srcdir)/globals.mk
 
-AM_CXXFLAGS = -I$(top_srcdir)/src
-AM_LDFLAGS = $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
+AM_CXXFLAGS += -I$(top_srcdir)/src
+AM_LDFLAGS += $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
 
 check_PROGRAMS = ut_sip
 ut_sip_SOURCES = sip.cpp test_SIP.h test_SIP.cpp
diff --git a/test/unitTest/Makefile.am b/test/unitTest/Makefile.am
index 495fb4a685..aba098ab27 100644
--- a/test/unitTest/Makefile.am
+++ b/test/unitTest/Makefile.am
@@ -1,8 +1,8 @@
 # Rules for the test code (use `make check` to execute)
 include $(top_srcdir)/globals.mk
 
-AM_CXXFLAGS = -I$(top_srcdir)/src
-AM_LDFLAGS = $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
+AM_CXXFLAGS += -I$(top_srcdir)/src
+AM_LDFLAGS += $(CPPUNIT_LIBS) $(top_builddir)/src/libring.la
 check_PROGRAMS =
 
 ####### Unit Test ########
@@ -135,4 +135,4 @@ ut_connectionManager_SOURCES = connectionManager/connectionManager.cpp
 check_PROGRAMS += ut_fileTransfer
 ut_fileTransfer_SOURCES = fileTransfer/fileTransfer.cpp
 
-TESTS = $(check_PROGRAMS)
\ No newline at end of file
+TESTS = $(check_PROGRAMS)
-- 
GitLab