miniupnpd 1.9 (20160113)
[tomato.git] / release / src / router / miniupnpd / Makefile.linux_nft
blob863c1be1a6ad65dbf63be7e87525477afebe21b7
1 # MiniUPnP project
2 # (c) 2015 Tomofumi Hayashi
3 # http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 # Author : Tomofumi Hayashi
5 # for use with GNU Make
7 # options can be passed to genconfig.sh through CONFIG_OPTIONS :
8 # $ CONFIG_OPTIONS="--ipv6 --igd2" make -f Makefile.linux
10 # To install use :
11 # $ DESTDIR=/dummyinstalldir make -f Makefile.linux_nft install
12 # or :
13 # $ INSTALLPREFIX=/usr/local make -f Makefile.linux_nft install
14 # or :
15 # $ make -f Makefile.linux install
16 # (default INSTALLPREFIX is /usr)
19 CFLAGS = -O -g #-DDEBUG
20 CFLAGS ?= -Os
21 CFLAGS += -fno-strict-aliasing
22 CFLAGS += -fno-common
23 CPPFLAGS += -D_GNU_SOURCE 
24 CFLAGS += -Wall
25 CFLAGS += -Wextra -Wstrict-prototypes -Wdeclaration-after-statement
26 #CFLAGS += -Wno-missing-field-initializers
27 CC ?= gcc
28 RM = rm -f
29 INSTALL = install
30 STRIP ?= strip
31 PKG_CONFIG ?= pkg-config
32 CP = cp
35 INSTALLPREFIX ?= $(PREFIX)/usr
36 SBININSTALLDIR = $(INSTALLPREFIX)/sbin
37 ETCINSTALLDIR = $(PREFIX)/etc/miniupnpd
38 MANINSTALLDIR = $(INSTALLPREFIX)/share/man/man8
40 BASEOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
41            upnpreplyparse.o minixml.o portinuse.o \
42            upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
43            options.o upnppermissions.o minissdp.o natpmp.o pcpserver.o \
44            upnpevents.o upnputils.o getconnstatus.o \
45            upnppinhole.o pcplearndscp.o asyncsendto.o
47 LNXOBJS = linux/getifstats.o linux/ifacewatcher.o linux/getroute.o
48 NETFILTEROBJS = netfilter_nft/nftnlrdr.o netfilter_nft/nfct_get.o netfilter_nft/nftnlrdr_misc.o
50 ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
52 PCFILE_FOUND := $(shell $(PKG_CONFIG) --exists libnftnl; echo $$?)
54 ifeq (${PCFILE_FOUND},0)
56 PKG_CONFIG_LIBS = libnftnl libmnl
57 CFLAGS  += $(shell $(PKG_CONFIG) --cflags $(PKG_CONFIG_LIBS))
58 LDLIBS  += $(shell $(PKG_CONFIG) --static --libs-only-l $(PKG_CONFIG_LIBS))
59 LDFLAGS += $(shell $(PKG_CONFIG) --libs-only-L $(PKG_CONFIG_LIBS))
60 LDFLAGS += $(shell $(PKG_CONFIG) --libs-only-other $(PKG_CONFIG_LIBS))
61 else
63 ARCH ?= $(shell uname -m | grep -q "x86_64" && echo 64)
64 endif # ifdef PCFILE_FOUND
66 #LDLIBS += -lnfnetlink
68 TEST := $(shell $(PKG_CONFIG) --atleast-version=1.0.2 libnetfilter_conntrack && $(PKG_CONFIG) --atleast-version=1.0.3 libmnl && echo 1)
69 ifeq ($(TEST),1)
70 CPPFLAGS += -DUSE_NFCT
71 LDLIBS += $(shell $(PKG_CONFIG) --static --libs-only-l libmnl)
72 LDLIBS += $(shell $(PKG_CONFIG) --static --libs-only-l libnetfilter_conntrack)
73 endif # ($(TEST),1)
75 LDLIBS += $(shell $(PKG_CONFIG) --static --libs-only-l libssl)
77 TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
79 EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \
80               testupnppermissions miniupnpdctl testgetifaddr \
81               testgetroute testasyncsendto testportinuse
83 .PHONY: all clean install depend genuuid
85 all:    $(EXECUTABLES)
87 clean:
88         $(RM) $(ALLOBJS)
89         $(RM) $(EXECUTABLES)
90         $(RM) testupnpdescgen.o testgetifstats.o
91         $(RM) testupnppermissions.o testgetifaddr.o
92         $(RM) testgetroute.o testasyncsendto.o
93         $(RM) testportinuse.o
94         $(RM) miniupnpdctl.o
96 install:        miniupnpd miniupnpd.8 miniupnpd.conf genuuid \
97         netfilter/iptables_init.sh netfilter/iptables_removeall.sh \
98         netfilter/ip6tables_init.sh netfilter/ip6tables_removeall.sh \
99         linux/miniupnpd.init.d.script
100         $(STRIP) miniupnpd
101         $(INSTALL) -d $(DESTDIR)$(SBININSTALLDIR)
102         $(INSTALL) miniupnpd $(DESTDIR)$(SBININSTALLDIR)
103         $(INSTALL) -d $(DESTDIR)$(ETCINSTALLDIR)
104         $(INSTALL) netfilter/iptables_init.sh $(DESTDIR)$(ETCINSTALLDIR)
105         $(INSTALL) netfilter/iptables_removeall.sh $(DESTDIR)$(ETCINSTALLDIR)
106         $(INSTALL) netfilter/ip6tables_init.sh $(DESTDIR)$(ETCINSTALLDIR)
107         $(INSTALL) netfilter/ip6tables_removeall.sh $(DESTDIR)$(ETCINSTALLDIR)
108         $(INSTALL) --mode=0644 -b miniupnpd.conf $(DESTDIR)$(ETCINSTALLDIR)
109         $(INSTALL) -d $(DESTDIR)$(PREFIX)/etc/init.d
110         $(INSTALL) linux/miniupnpd.init.d.script $(DESTDIR)$(PREFIX)/etc/init.d/miniupnpd
111         $(INSTALL) -d $(DESTDIR)$(MANINSTALLDIR)
112         $(INSTALL) --mode=0644 miniupnpd.8 $(DESTDIR)$(MANINSTALLDIR)
113         gzip -f $(DESTDIR)$(MANINSTALLDIR)/miniupnpd.8
115 # genuuid is using the uuidgen CLI tool which is part of libuuid
116 # from the e2fsprogs
117 # 'cat /proc/sys/kernel/random/uuid' could be also used
118 genuuid:
119 ifeq ($(TARGET_OPENWRT),)
120         sed -i -e "s/^uuid=[-0-9a-f]*/uuid=`(genuuid||uuidgen||uuid) 2>/dev/null`/" miniupnpd.conf
121 else
122         sed -i -e "s/^uuid=[-0-9a-f]*/uuid=`($(STAGING_DIR_HOST)/bin/genuuid||$(STAGING_DIR_HOST)/bin/uuidgen||$(STAGING_DIR_HOST)/bin/uuid) 2>/dev/null`/" miniupnpd.conf
123 endif
125 miniupnpd:      $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
127 testupnpdescgen:        $(TESTUPNPDESCGENOBJS)
129 testgetifstats: testgetifstats.o linux/getifstats.o
131 testupnppermissions:    testupnppermissions.o upnppermissions.o
133 testgetifaddr:  testgetifaddr.o getifaddr.o
135 testgetroute:   testgetroute.o linux/getroute.o upnputils.o
137 testasyncsendto:        testasyncsendto.o asyncsendto.o upnputils.o \
138         linux/getroute.o
140 testportinuse:  testportinuse.o portinuse.o getifaddr.o \
141         netfilter_nft/nftnlrdr.o netfilter_nft/nftnlrdr_misc.o
143 miniupnpdctl:   miniupnpdctl.o
145 config.h:       genconfig.sh VERSION
146         ./genconfig.sh $(CONFIG_OPTIONS)
148 depend: config.h
149         makedepend -f$(MAKEFILE_LIST) -Y \
150         $(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) \
151         testgetifstats.c testupnppermissions.c testgetifaddr.c \
152         testgetroute.c testasyncsendto.c testportinuse.c \
153         miniupnpdctl.c 2>/dev/null
155 # DO NOT DELETE
157 miniupnpd.o: config.h macros.h upnpglobalvars.h upnppermissions.h
158 miniupnpd.o: miniupnpdtypes.h upnphttp.h upnpdescgen.h miniupnpdpath.h
159 miniupnpd.o: getifaddr.h upnpsoap.h options.h minissdp.h upnpredirect.h
160 miniupnpd.o: upnppinhole.h daemonize.h upnpevents.h asyncsendto.h natpmp.h
161 miniupnpd.o: pcpserver.h commonrdr.h upnputils.h ifacewatcher.h
162 upnphttp.o: config.h upnphttp.h upnpdescgen.h miniupnpdpath.h upnpsoap.h
163 upnphttp.o: upnpevents.h upnputils.h
164 upnpdescgen.o: config.h getifaddr.h upnpredirect.h upnpdescgen.h
165 upnpdescgen.o: miniupnpdpath.h upnpglobalvars.h upnppermissions.h
166 upnpdescgen.o: miniupnpdtypes.h upnpdescstrings.h upnpurns.h getconnstatus.h
167 upnpsoap.o: macros.h config.h upnpglobalvars.h upnppermissions.h
168 upnpsoap.o: miniupnpdtypes.h upnphttp.h upnpsoap.h upnpreplyparse.h
169 upnpsoap.o: upnpredirect.h upnppinhole.h getifaddr.h getifstats.h
170 upnpsoap.o: getconnstatus.h upnpurns.h
171 upnpreplyparse.o: upnpreplyparse.h minixml.h
172 minixml.o: minixml.h
173 portinuse.o: macros.h config.h upnpglobalvars.h upnppermissions.h
174 portinuse.o: miniupnpdtypes.h getifaddr.h portinuse.h netfilter_nft/nftnlrdr.h
175 portinuse.o: commonrdr.h
176 upnpredirect.o: macros.h config.h upnpredirect.h upnpglobalvars.h
177 upnpredirect.o: upnppermissions.h miniupnpdtypes.h upnpevents.h portinuse.h
178 upnpredirect.o: netfilter_nft/nftnlrdr.h commonrdr.h
179 getifaddr.o: config.h getifaddr.h
180 daemonize.o: daemonize.h config.h
181 upnpglobalvars.o: config.h upnpglobalvars.h upnppermissions.h
182 upnpglobalvars.o: miniupnpdtypes.h upnpdescstrings.h
183 options.o: config.h options.h upnppermissions.h upnpglobalvars.h
184 options.o: miniupnpdtypes.h
185 upnppermissions.o: config.h upnppermissions.h
186 minissdp.o: config.h upnpdescstrings.h miniupnpdpath.h upnphttp.h
187 minissdp.o: upnpglobalvars.h upnppermissions.h miniupnpdtypes.h minissdp.h
188 minissdp.o: upnputils.h getroute.h asyncsendto.h codelength.h
189 natpmp.o: macros.h config.h natpmp.h upnpglobalvars.h upnppermissions.h
190 natpmp.o: miniupnpdtypes.h getifaddr.h upnpredirect.h commonrdr.h upnputils.h
191 natpmp.o: portinuse.h asyncsendto.h
192 pcpserver.o: config.h pcpserver.h macros.h upnpglobalvars.h upnppermissions.h
193 pcpserver.o: miniupnpdtypes.h pcplearndscp.h upnpredirect.h commonrdr.h
194 pcpserver.o: getifaddr.h asyncsendto.h pcp_msg_struct.h netfilter_nft/nftnlrdr.h
195 pcpserver.o: commonrdr.h
196 upnpevents.o: config.h upnpevents.h miniupnpdpath.h upnpglobalvars.h
197 upnpevents.o: upnppermissions.h miniupnpdtypes.h upnpdescgen.h upnputils.h
198 upnputils.o: config.h upnputils.h upnpglobalvars.h upnppermissions.h
199 upnputils.o: miniupnpdtypes.h getroute.h
200 getconnstatus.o: getconnstatus.h getifaddr.h
201 upnppinhole.o: macros.h config.h upnpredirect.h upnpglobalvars.h
202 upnppinhole.o: upnppermissions.h miniupnpdtypes.h upnpevents.h
203 #upnppinhole.o: netfilter/iptpinhole.h
204 pcplearndscp.o: config.h upnpglobalvars.h upnppermissions.h miniupnpdtypes.h
205 pcplearndscp.o: pcplearndscp.h
206 asyncsendto.o: asyncsendto.h
207 linux/getifstats.o: config.h getifstats.h
208 linux/ifacewatcher.o: config.h ifacewatcher.h config.h minissdp.h
209 linux/ifacewatcher.o: miniupnpdtypes.h getifaddr.h upnpglobalvars.h
210 linux/ifacewatcher.o: upnppermissions.h natpmp.h
211 linux/getroute.o: getroute.h upnputils.h
212 netfilter_nft/nftnlrdr.o: macros.h config.h netfilter_nft/nftnlrdr.h commonrdr.h
213 netfilter_nft/nftnlrdr.o: config.h upnpglobalvars.h upnppermissions.h
214 netfilter_nft/nftnlrdr.o: miniupnpdtypes.h
215 netfilter_nft/iptpinhole.o: config.h netfilter_nft/iptpinhole.h upnpglobalvars.h
216 netfilter_nft/iptpinhole.o: upnppermissions.h config.h miniupnpdtypes.h
217 testupnpdescgen.o: macros.h config.h upnpdescgen.h upnpdescstrings.h
218 testupnpdescgen.o: getifaddr.h
219 upnpdescgen.o: config.h getifaddr.h upnpredirect.h upnpdescgen.h
220 upnpdescgen.o: miniupnpdpath.h upnpglobalvars.h upnppermissions.h
221 upnpdescgen.o: miniupnpdtypes.h upnpdescstrings.h upnpurns.h getconnstatus.h
222 testgetifstats.o: getifstats.h
223 testupnppermissions.o: upnppermissions.h config.h
224 testgetifaddr.o: config.h getifaddr.h
225 testgetroute.o: getroute.h upnputils.h upnpglobalvars.h upnppermissions.h
226 testgetroute.o: config.h miniupnpdtypes.h
227 testasyncsendto.o: miniupnpdtypes.h config.h upnputils.h asyncsendto.h
228 testportinuse.o: macros.h config.h portinuse.h
229 miniupnpdctl.o: macros.h