aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2020-08-24 18:16:43 +0200
committerToni Uhlig <matzeton@googlemail.com>2020-08-24 18:18:54 +0200
commit1653137edbae0a98d7ff5b3223243e4d4a00eee3 (patch)
tree80135d32aea0e94d9615bfc3041d08436fad3fdf
parentefcdb8135035063cae3276207fa586af267cf85f (diff)
Makefile: Allow pkg-config based builds and also allow setting libndpi build options manually.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r--Makefile36
1 files changed, 34 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index bede380e3..bbea5e99d 100644
--- a/Makefile
+++ b/Makefile
@@ -2,9 +2,33 @@ CC = gcc
PROJECT_CFLAGS += -Wall -Wextra $(EXTRA_CFLAGS) -I.
LIBS += -pthread -lpcap -lm
+ifneq ($(PKG_CONFIG_BIN),)
+ifneq ($(PKG_CONFIG_PREFIX),)
+PC_CFLAGS=$(shell PKG_CONFIG_PATH=$(shell realpath $(PKG_CONFIG_PREFIX)) $(PKG_CONFIG_BIN) --define-prefix=$(shell realpath $(PKG_CONFIG_PREFIX)) --cflags libndpi)
+PC_LDFLAGS=$(shell PKG_CONFIG_PATH=$(shell realpath $(PKG_CONFIG_PREFIX)) $(PKG_CONFIG_BIN) --define-prefix=$(shell realpath $(PKG_CONFIG_PREFIX)) --libs libndpi)
+PROJECT_CFLAGS += -Wl,-rpath='$(shell realpath $(PKG_CONFIG_PREFIX)/..)'
+else
+PC_CFLAGS=$(shell $(PKG_CONFIG_BIN) --cflags libndpi)
+PC_LDFLAGS=$(shell $(PKG_CONFIG_BIN) --libs libndpi)
+PROJECT_CFLAGS += -Wl,-rpath='$(shell realpath $(PKG_CONFIG_PREFIX)/..)'
+endif
+
+else
+
+ifeq ($(NDPI_WITH_GCRYPT),yes)
+LIBS += -lgcrypt
+else
+NDPI_WITH_GCRYPT = no
+endif
+ifeq ($(NDPI_WITH_PCRE),yes)
+LIBS += -lpcre
+else
+NDPI_WITH_PCRE = no
+endif
+
ifneq ($(CUSTOM_LIBNDPI),)
LIBS += '$(CUSTOM_LIBNDPI)'
-PROJECT_CFLAGS += '-I$(shell dirname $(CUSTOM_LIBNDPI))/../include'
+PROJECT_CFLAGS += '-I$(shell dirname $(CUSTOM_LIBNDPI))/../include/ndpi'
ifeq ($(findstring $*.so, $(CUSTOM_LIBNDPI)),.so)
PROJECT_CFLAGS += -Wl,-rpath='$(shell dirname $(CUSTOM_LIBNDPI))'
endif
@@ -13,6 +37,8 @@ CUSTOM_LIBNDPI = no
LIBS += -lndpi
endif
+endif
+
ifeq ($(ENABLE_DEBUG),yes)
PROJECT_CFLAGS += -O0 -g3 -fno-omit-frame-pointer -fno-inline
else
@@ -44,7 +70,7 @@ all: help nDPId nDPIsrvd
examples: examples/c-json-stdout/c-json-stdout
nDPId: nDPId.c utils.c
- $(CC) $(PROJECT_CFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
+ $(CC) $(PROJECT_CFLAGS) $(CFLAGS) $(PC_CFLAGS) $^ -o $@ $(LDFLAGS) $(PC_LDFLAGS) $(LIBS)
nDPIsrvd: nDPIsrvd.c utils.c
$(CC) $(PROJECT_CFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
@@ -61,12 +87,18 @@ clean:
help:
@echo '------------------------------------'
+ @echo 'PKG_CONFIG_BIN = $(PKG_CONFIG_BIN)'
+ @echo 'PKG_CONFIG_PREFIX = $(PKG_CONFIG_PREFIX)'
+ @echo 'PC_CFLAGS = $(PC_CFLAGS)'
+ @echo 'PC_LDFLAGS = $(PC_LDFLAGS)'
@echo 'CC = $(CC)'
@echo 'CFLAGS = $(CFLAGS)'
@echo 'LDFLAGS = $(LDFLAGS)'
@echo 'PROJECT_CFLAGS = $(PROJECT_CFLAGS)'
@echo 'LIBS = $(LIBS)'
@echo 'CUSTOM_LIBNDPI = $(CUSTOM_LIBNDPI)'
+ @echo 'NDPI_WITH_GCRYPT = $(NDPI_WITH_GCRYPT)'
+ @echo 'NDPI_WITH_PCRE = $(NDPI_WITH_PCRE)'
@echo 'ENABLE_DEBUG = $(ENABLE_DEBUG)'
@echo 'ENABLE_SANITIZER = $(ENABLE_SANITIZER)'
@echo 'ENABLE_SANITIZER_THREAD = $(ENABLE_SANITIZER_THREAD)'