aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Makefile.in
blob: 56b9628c0edd2e4ce3b4336456ff502d3a3a3fb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#
# Simple non-autotools dependent makefile
#
# ./autogen.sh
# cd src/lib
# make Makefile
#

#
# Installation directories
#
prefix     = @prefix@
libdir     = ${prefix}/lib
includedir = ${prefix}/include/ndpi
CC         = @GNU_PREFIX@@CC@
CFLAGS     += -fPIC -DPIC -I../include -Ithird_party/include -DNDPI_LIB_COMPILATION @CFLAGS@ @CUSTOM_NDPI@
LDFLAGS    = @LDFLAGS@ @ADDITIONAL_LIBS@ @LIBS@
RANLIB     = @GNU_PREFIX@ranlib

OBJECTS   = $(patsubst protocols/%.c, protocols/%.o, $(wildcard protocols/*.c)) $(patsubst third_party/src/%.c, third_party/src/%.o, $(wildcard third_party/src/*.c)) $(patsubst ./%.c, ./%.o, $(wildcard ./*.c))
HEADERS   = $(wildcard ../include/*.h)
NDPI_VERSION_MAJOR   = @NDPI_MAJOR@
NDPI_LIB_STATIC      = libndpi.a
NDPI_LIB_SHARED_BASE = libndpi.so
NDPI_LIB_SHARED      = $(NDPI_LIB_SHARED_BASE).@NDPI_VERSION_SHORT@
NDPI_LIBS            = $(NDPI_LIB_STATIC) $(NDPI_LIB_SHARED)

ifneq ($(OS),Windows_NT)
OS := $(shell uname)
endif
BUILD_MINGW    		 = @BUILD_MINGW@

ifeq ($(OS),Darwin)
CC=clang
SONAME_FLAG=
else
ifneq ($(BUILD_MINGW),)
NDPI_LIB_SHARED_BASE = libndpi
NDPI_LIB_SHARED      = $(NDPI_LIB_SHARED_BASE)-@NDPI_VERSION_SHORT@.dll
else
SONAME_FLAG=-Wl,-soname,$(NDPI_LIB_SHARED_BASE).$(NDPI_VERSION_MAJOR)
endif
endif

all: $(NDPI_LIBS)

ndpi_main.c: ndpi_content_match.c.inc

$(NDPI_LIB_STATIC): $(OBJECTS)
	   @GNU_PREFIX@ar rc $@ $(OBJECTS)
	   $(RANLIB) $@      

$(NDPI_LIB_SHARED): $(OBJECTS)
	$(CC) -shared -fPIC $(SONAME_FLAG) -o $@ $(OBJECTS) $(LDFLAGS)
	ln -fs $(NDPI_LIB_SHARED) $(NDPI_LIB_SHARED_BASE)
	ln -fs $(NDPI_LIB_SHARED) $(NDPI_LIB_SHARED_BASE).$(NDPI_VERSION_MAJOR)

%.o: %.c $(HEADERS) Makefile
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	/bin/rm -f $(NDPI_LIB_STATIC) $(OBJECTS) *.o *.so *.lo libndpi.so*

distdir:
	cp ndpi_content_match.c.inc '$(distdir)/'
	find . -type d | xargs -I'{}' mkdir -p '$(distdir)/{}'
	find ../include -type f -name '*.h' | xargs -I'{}' cp '{}' '$(distdir)/{}'
	find . -type f -name '*.c' -o -name '*.h' | xargs -I'{}' cp '{}' '$(distdir)/{}'

distclean: clean
	/bin/rm -f Makefile

cppcheck:
	cppcheck --template='{file}:{line}:{severity}:{message}' --quiet --enable=all --force -I ../include *.c protocols/*.c

install: $(NDPI_LIBS)
	mkdir -p $(DESTDIR)$(libdir)
	cp $(NDPI_LIBS) $(DESTDIR)$(libdir)/
	cp -P $(NDPI_LIB_SHARED_BASE) $(DESTDIR)$(libdir)/
	cp -P $(NDPI_LIB_SHARED_BASE).$(NDPI_VERSION_MAJOR) $(DESTDIR)$(libdir)/
	mkdir -p $(DESTDIR)$(includedir)
	cp ../include/*.h $(DESTDIR)$(includedir)