CC?=gcc CFLAGS ?= -O2 -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes CFLAGS += -shared -fPIC ifneq ($(RTPENGINE_VERSION),) CFLAGS += -DRTPENGINE_VERSION="\"$(RTPENGINE_VERSION)\"" else DPKG_PRSCHNGLG= $(shell which dpkg-parsechangelog 2>/dev/null) ifneq ($(DPKG_PRSCHNGLG),) CFLAGS += -DRTPENGINE_VERSION="\"$(shell dpkg-parsechangelog -l../debian/changelog | awk '/^Version: / {print $$2}')\"" else CFLAGS += -DRTPENGINE_VERSION="\"undefined\"" endif endif XTABLES_INSTALLED=$(shell \ if pkg-config --exists xtables; then \ echo 'xtables found'; \ fi) ifneq ($(XTABLES_INSTALLED),) XTABLES = 1 CFLAGS += $(shell pkg-config --cflags --libs xtables) else XTABLES = $(shell test -e /usr/include/xtables.h && echo 1) endif IPTABLES = $(shell test -e /usr/include/iptables.h && echo 1) IP6TABLES = $(shell test -e /usr/include/ip6tables.h && echo 1) WORK=0 .PHONY: all module clean install all: module ifeq ($(XTABLES),1) WORK=1 module: libxt_RTPENGINE.so libxt_RTPENGINE.so: libxt_RTPENGINE.c $(CC) $(CFLAGS) -o libxt_RTPENGINE.so libxt_RTPENGINE.c else ifeq ($(IPTABLES),1) WORK=1 module: libipt_RTPENGINE.so endif ifeq ($(IP6TABLES),1) WORK=1 module: libip6t_RTPENGINE.so endif libipt_RTPENGINE.so: libxt_RTPENGINE.c $(CC) $(CFLAGS) -D__ipt -o libipt_RTPENGINE.so libxt_RTPENGINE.c libip6t_RTPENGINE.so: libxt_RTPENGINE.c $(CC) $(CFLAGS) -D__ip6t -o libip6t_RTPENGINE.so libxt_RTPENGINE.c endif ifeq ($(WORK),0) module: @echo No iptables dev packages installed! endif clean: rm -f libxt_RTPENGINE.so libipt_RTPENGINE.so libip6t_RTPENGINE.so install: install libxt_RTPENGINE.so $(DESTDIR)$(shell pkg-config xtables --variable=xtlibdir)