@@ -86,6 +86,8 @@ plugin_traceevent_dir_SQ = $(subst ','\'',$(plugin_traceevent_dir))
plugin_tracecmd_dir_SQ = $(subst ','\'',$(plugin_tracecmd_dir))
python_dir_SQ = $(subst ','\'',$(python_dir))
+pound := \#
+
VAR_DIR = -DVAR_DIR="$(var_dir)"
VAR_DIR_SQ = '$(subst ','\'',$(VAR_DIR))'
var_dir_SQ = '$(subst ','\'',$(var_dir))'
@@ -233,14 +235,14 @@ CFLAGS ?= -g -Wall
CPPFLAGS ?=
LDFLAGS ?=
-VSOCK_DEFINED := $(shell if (echo "\#include <linux/vm_sockets.h>" | $(CC) -E - >/dev/null 2>&1) ; then echo 1; else echo 0 ; fi)
+VSOCK_DEFINED := $(shell if (echo "$(pound)include <linux/vm_sockets.h>" | $(CC) -E - >/dev/null 2>&1) ; then echo 1; else echo 0 ; fi)
export VSOCK_DEFINED
ifeq ($(VSOCK_DEFINED), 1)
CFLAGS += -DVSOCK
endif
-CUNIT_INSTALLED := $(shell if (echo -e "\#include <CUnit/Basic.h>\n void main(){CU_initialize_registry();}" | $(CC) -x c -lcunit - >/dev/null 2>&1) ; then echo 1; else echo 0 ; fi)
+CUNIT_INSTALLED := $(shell if (printf "$(pound)include <CUnit/Basic.h>\n void main(){CU_initialize_registry();}" | $(CC) -x c -lcunit - >/dev/null 2>&1) ; then echo 1; else echo 0 ; fi)
export CUNIT_INSTALLED
export CFLAGS
In GNU Make 4.3 there is backward incompatible change that there is no need to quote '#' in shell invocations anymore. If quoted, backslash character is passed into gcc making cunit (and vsock) tests fail to compile. Also, `echo -e' is replaced with `printf' to interpret '\n', because, on Debian dash's `echo' does not support `-e', thus having `-e' passed into test source making gcc fail to compile the test. make test error message: Makefile:342: *** CUnit framework not installed, cannot build unit tests. Stop. Signed-off-by: Vitaly Chikunov <vt@altlinux.org> Cc: Dmitry V. Levin <ldv@altlinux.org> --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)