From c2b7d77784beeae5f86f19e33ba3da5ddce55898 Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 18 Jan 2022 13:30:14 +0000 Subject: build: respect environment options more (#1392) * build: update m4/ax_pthread.m4 from serial 23 -> serial 31 Update ax_pthread.m4 to the latest version from the autoconf-archive project. Signed-off-by: Sam James * build: properly detect AR, CC, RANLIB It's necessary to be able to override choice of AR/CC/RANLIB and other toolchain variables/tools for cross-compilation, testing with other toolchains, and to ensure the compiler chosen by the user is actually used for the build. Previously, GNU_PREFIX was kind-of used for this but this isn't a standard variable (at all) and it wasn't applied consistently anyway. We now use the standard autoconf mechanisms for finding these tools. (RANLIB is already covered by LT_INIT.) Signed-off-by: Sam James * build: use $(MAKE) This ensures that parallel make works correctly, as otherwise, a fresh make job will be started without the jobserver fd, and hence not know about its parent, forcing -j1. * build: respect CPPFLAGS, LDFLAGS - CPPFLAGS is for the C preprocessor (usually for setting defines) - LDFLAGS should be placed before objects for certain flags to work (e.g. -Wl,--as-needed) Signed-off-by: Sam James Co-authored-by: Luca Deri --- example/Makefile.in | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'example') diff --git a/example/Makefile.in b/example/Makefile.in index 11c30ad5c..bd4353997 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -1,11 +1,13 @@ +AR=@AR@ CC=@CC@ CXX=@CXX@ BUILD_MINGW=@BUILD_MINGW@ BUILD_MINGW_X64=@BUILD_MINGW_X64@ SRCHOME=../src CFLAGS=-g -fPIC -DPIC -I$(SRCHOME)/include @PCAP_INC@ @CFLAGS@ +LDFLAGS=@LDFLAGS@ LIBNDPI=$(SRCHOME)/lib/libndpi.a -LDFLAGS=$(LIBNDPI) @PCAP_LIB@ @LIBS@ @ADDITIONAL_LIBS@ @LDFLAGS@ +LIBS=$(LIBNDPI) @PCAP_LIB@ @LIBS@ @ADDITIONAL_LIBS@ HEADERS=intrusion_detection.h reader_util.h $(SRCHOME)/include/ndpi_api.h \ $(SRCHOME)/include/ndpi_typedefs.h $(SRCHOME)/include/ndpi_protocol_ids.h OBJS=ndpiReader.o reader_util.o intrusion_detection.o @@ -14,17 +16,17 @@ PREFIX?=@prefix@ ifneq ($(BUILD_MINGW),) SUFFIX:=.exe CFLAGS+=-I@srcdir@/../windows/WpdPack/Include -I@srcdir@/../windows/WpdPack/Include/pcap -LDFLAGS+=-Wl,-Bstatic -lpthread -Wl,-Bdynamic +LIBS+=-Wl,-Bstatic -lpthread -Wl,-Bdynamic ifneq ($(BUILD_MINGW_X64),) -LDFLAGS+=@srcdir@/../windows/WpdPack/Lib/x64/wpcap.lib +LIBS+=@srcdir@/../windows/WpdPack/Lib/x64/wpcap.lib else -LDFLAGS+=@srcdir@/../windows/WpdPack/Lib/wpcap.lib +LIBS+=@srcdir@/../windows/WpdPack/Lib/wpcap.lib endif else -LDFLAGS+=-lpthread +LIBS+=-lpthread endif @@ -34,16 +36,16 @@ EXECUTABLE_SOURCES := ndpiReader.c ndpiSimpleIntegration.c COMMON_SOURCES := $(filter-out $(EXECUTABLE_SOURCES),$(wildcard *.c )) libndpiReader.a: $(COMMON_SOURCES:%.c=%.o) $(LIBNDPI) - ar rsv libndpiReader.a $(COMMON_SOURCES:%.c=%.o) + $(AR) rsv libndpiReader.a $(COMMON_SOURCES:%.c=%.o) ndpiReader$(SUFFIX): libndpiReader.a $(LIBNDPI) ndpiReader.o - $(CC) $(CFLAGS) ndpiReader.o libndpiReader.a -o $@ $(LDFLAGS) + $(CC) $(CFLAGS) $(LDFLAGS) ndpiReader.o libndpiReader.a $(LIBS) -o $@ ndpiSimpleIntegration$(SUFFIX): ndpiSimpleIntegration.o - $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + $(CC) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ %.o: %.c $(HEADERS) Makefile - $(CC) $(CFLAGS) -c $< -o $@ + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ install: ndpiReader$(SUFFIX) mkdir -p $(DESTDIR)$(PREFIX)/bin/ @@ -56,7 +58,7 @@ install: ndpiReader$(SUFFIX) [ -f ndpiReader.dpdk ] && cp ndpiReader.dpdk $(DESTDIR)$(PREFIX)/bin/ || true dpdk: - make -f Makefile.dpdk + $(MAKE) -f Makefile.dpdk check: cppcheck --template='{file}:{line}:{severity}:{message}' --quiet --enable=all --force -I$(SRCHOME)/include *.c -- cgit v1.2.3