Miniupnpd: update to 1.9 (20150430)
[tomato.git] / release / src / router / miniupnpd / Makefile.linux
blob061c23e868415787ff6a622c9502632edf9f7197
1 # $Id: Makefile.linux,v 1.90 2015/04/26 14:43:28 nanard Exp $
2 # MiniUPnP project
3 # (c) 2006-2015 Thomas Bernard
4 # http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
5 # Author : Thomas Bernard
6 # for use with GNU Make
8 # options can be passed to genconfig.sh through CONFIG_OPTIONS :
9 # $ CONFIG_OPTIONS="--ipv6 --igd2" make -f Makefile.linux
11 # To install use :
12 # $ DESTDIR=/dummyinstalldir make -f Makefile.linux install
13 # or :
14 # $ INSTALLPREFIX=/usr/local make -f Makefile.linux install
15 # or :
16 # $ make -f Makefile.linux install
17 # (default INSTALLPREFIX is /usr)
19 # if your system hasn't iptables libiptc headers and binary correctly
20 # installed, you need to get iptables sources from http://netfilter.org/
21 # ./configure them and build them then miniupnpd will build using :
22 # $ IPTABLESPATH=/path/to/iptables-1.4.1 make -f Makefile.linux
24 #CFLAGS = -O -g -DDEBUG
25 CFLAGS ?= -Os
26 CFLAGS += -fno-strict-aliasing
27 CFLAGS += -fno-common
28 CPPFLAGS += -D_GNU_SOURCE
29 CFLAGS += -Wall
30 CFLAGS += -Wextra -Wstrict-prototypes -Wdeclaration-after-statement
31 CFLAGS += $(EXTRACFLAGS)
32 #CFLAGS += -Wno-missing-field-initializers
33 #CFLAGS += -ansi        # iptables headers does use typeof which is a gcc extension
34 CC ?= gcc
35 RM = rm -f
36 INSTALL = install
37 STRIP ?= strip
38 PKG_CONFIG ?= pkg-config
39 CP = cp
42 INSTALLPREFIX ?= $(PREFIX)/usr
43 SBININSTALLDIR = $(INSTALLPREFIX)/sbin
44 ETCINSTALLDIR = $(PREFIX)/etc/miniupnpd
45 MANINSTALLDIR = $(INSTALLPREFIX)/share/man/man8
47 BASEOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
48            upnpreplyparse.o minixml.o portinuse.o \
49            upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
50            options.o upnppermissions.o minissdp.o natpmp.o pcpserver.o \
51            upnpevents.o upnputils.o getconnstatus.o \
52            upnppinhole.o pcplearndscp.o asyncsendto.o
54 LNXOBJS = linux/getifstats.o linux/ifacewatcher.o linux/getroute.o
55 NETFILTEROBJS = netfilter/iptcrdr.o netfilter/iptpinhole.o netfilter/nfct_get.o
57 ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
59 ifdef IPTABLESPATH
60 CFLAGS := $(CFLAGS) -I$(IPTABLESPATH)/include/
61 LDFLAGS := $(LDFLAFGS) -L$(IPTABLESPATH)/libiptc/
63 # get iptables version and set IPTABLES_143 macro if needed
64 IPTABLESVERSION := $(shell grep "\#define VERSION" $(IPTABLESPATH)/config.h | tr -d \" |cut -d" " -f3 )
65 IPTABLESVERSION1 := $(shell echo $(IPTABLESVERSION) | cut -d. -f1 )
66 IPTABLESVERSION2 := $(shell echo $(IPTABLESVERSION) | cut -d. -f2 )
67 IPTABLESVERSION3 := $(shell echo $(IPTABLESVERSION) | cut -d. -f3 )
69 # test if iptables version >= 1.4.3
70 TEST := $(shell [ \( \( $(IPTABLESVERSION1) -ge 1 \) -a \( $(IPTABLESVERSION2) -ge 4 \) \) -a \( $(IPTABLESVERSION3) -ge 3 \) ] && echo 1 )
71 ifeq ($(TEST), 1)
72 CPPFLAGS := $(CFLAGS) -DIPTABLES_143
73 # the following sucks, but works
74 LDLIBS = $(IPTABLESPATH)/libiptc/.libs/libip4tc.o
75 else    # ifeq ($(TEST), 1)
76 LDLIBS = $(IPTABLESPATH)/libiptc/libiptc.a
77 endif   # ifeq ($(TEST), 1)
78 else    #ifdef IPTABLESPATH
80 CPPFLAGS += -I../iptables/include
81 LDFLAGS = -L../iptables -liptc
83 endif   #ifdef IPTABLESPATH
85 TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
87 EXECUTABLES = miniupnpd
88 #EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \
89 #              testupnppermissions miniupnpdctl testgetifaddr \
90 #              testgetroute testasyncsendto testportinuse
92 .PHONY: all clean install depend genuuid
94 all:    $(EXECUTABLES)
96 clean:
97         $(RM) $(ALLOBJS)
98         $(RM) $(EXECUTABLES)
99         $(RM) testupnpdescgen.o testgetifstats.o
100         $(RM) testupnppermissions.o testgetifaddr.o
101         $(RM) testgetroute.o testasyncsendto.o
102         $(RM) testportinuse.o
103         $(RM) miniupnpdctl.o
105 install:        miniupnpd miniupnpd.8 miniupnpd.conf genuuid \
106         netfilter/iptables_init.sh netfilter/iptables_removeall.sh \
107         netfilter/ip6tables_init.sh netfilter/ip6tables_removeall.sh \
108         linux/miniupnpd.init.d.script
109         $(STRIP) miniupnpd
110         $(INSTALL) -d $(DESTDIR)$(SBININSTALLDIR)
111         $(INSTALL) miniupnpd $(DESTDIR)$(SBININSTALLDIR)
112         $(INSTALL) -d $(DESTDIR)$(ETCINSTALLDIR)
113         $(INSTALL) netfilter/iptables_init.sh $(DESTDIR)$(ETCINSTALLDIR)
114         $(INSTALL) netfilter/iptables_removeall.sh $(DESTDIR)$(ETCINSTALLDIR)
115         $(INSTALL) netfilter/ip6tables_init.sh $(DESTDIR)$(ETCINSTALLDIR)
116         $(INSTALL) netfilter/ip6tables_removeall.sh $(DESTDIR)$(ETCINSTALLDIR)
117         $(INSTALL) --mode=0644 -b miniupnpd.conf $(DESTDIR)$(ETCINSTALLDIR)
118         $(INSTALL) -d $(DESTDIR)$(PREFIX)/etc/init.d
119         $(INSTALL) linux/miniupnpd.init.d.script $(DESTDIR)$(PREFIX)/etc/init.d/miniupnpd
120         $(INSTALL) -d $(DESTDIR)$(MANINSTALLDIR)
121         $(INSTALL) --mode=0644 miniupnpd.8 $(DESTDIR)$(MANINSTALLDIR)
122         gzip -f $(DESTDIR)$(MANINSTALLDIR)/miniupnpd.8
124 # genuuid is using the uuidgen CLI tool which is part of libuuid
125 # from the e2fsprogs
126 # 'cat /proc/sys/kernel/random/uuid' could be also used
127 genuuid:
128 ifeq ($(TARGET_OPENWRT),)
129         sed -i -e "s/^uuid=[-0-9a-f]*/uuid=`(genuuid||uuidgen||uuid) 2>/dev/null`/" miniupnpd.conf
130 else
131         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
132 endif
134 miniupnpd:      $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
136 testupnpdescgen:        $(TESTUPNPDESCGENOBJS)
138 testgetifstats: testgetifstats.o linux/getifstats.o
140 testupnppermissions:    testupnppermissions.o upnppermissions.o
142 testgetifaddr:  testgetifaddr.o getifaddr.o
144 testgetroute:   testgetroute.o linux/getroute.o upnputils.o
146 testasyncsendto:        testasyncsendto.o asyncsendto.o upnputils.o \
147         linux/getroute.o
149 testportinuse:  testportinuse.o portinuse.o getifaddr.o \
150         netfilter/iptcrdr.o
152 miniupnpdctl:   miniupnpdctl.o
154 config.h:       genconfig.sh VERSION
155         ./genconfig.sh $(CONFIG_OPTIONS)
157 depend: config.h
158         makedepend -f$(MAKEFILE_LIST) -Y \
159         $(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) \
160         testgetifstats.c testupnppermissions.c testgetifaddr.c \
161         testgetroute.c testasyncsendto.c testportinuse.c \
162         miniupnpdctl.c 2>/dev/null
164 # DO NOT DELETE
166 miniupnpd.o: config.h macros.h upnpglobalvars.h upnppermissions.h
167 miniupnpd.o: miniupnpdtypes.h upnphttp.h upnpdescgen.h miniupnpdpath.h
168 miniupnpd.o: getifaddr.h upnpsoap.h options.h minissdp.h upnpredirect.h
169 miniupnpd.o: upnppinhole.h daemonize.h upnpevents.h asyncsendto.h natpmp.h
170 miniupnpd.o: pcpserver.h commonrdr.h upnputils.h ifacewatcher.h
171 upnphttp.o: config.h upnphttp.h upnpdescgen.h miniupnpdpath.h upnpsoap.h
172 upnphttp.o: upnpevents.h upnputils.h
173 upnpdescgen.o: config.h getifaddr.h upnpredirect.h upnpdescgen.h
174 upnpdescgen.o: miniupnpdpath.h upnpglobalvars.h upnppermissions.h
175 upnpdescgen.o: miniupnpdtypes.h upnpdescstrings.h upnpurns.h getconnstatus.h
176 upnpsoap.o: macros.h config.h upnpglobalvars.h upnppermissions.h
177 upnpsoap.o: miniupnpdtypes.h upnphttp.h upnpsoap.h upnpreplyparse.h
178 upnpsoap.o: upnpredirect.h upnppinhole.h getifaddr.h getifstats.h
179 upnpsoap.o: getconnstatus.h upnpurns.h
180 upnpreplyparse.o: upnpreplyparse.h minixml.h
181 minixml.o: minixml.h
182 portinuse.o: macros.h config.h upnpglobalvars.h upnppermissions.h
183 portinuse.o: miniupnpdtypes.h getifaddr.h portinuse.h netfilter/iptcrdr.h
184 portinuse.o: commonrdr.h
185 upnpredirect.o: macros.h config.h upnpredirect.h upnpglobalvars.h
186 upnpredirect.o: upnppermissions.h miniupnpdtypes.h upnpevents.h portinuse.h
187 upnpredirect.o: netfilter/iptcrdr.h commonrdr.h
188 getifaddr.o: config.h getifaddr.h
189 daemonize.o: daemonize.h config.h
190 upnpglobalvars.o: config.h upnpglobalvars.h upnppermissions.h
191 upnpglobalvars.o: miniupnpdtypes.h upnpdescstrings.h
192 options.o: config.h options.h upnppermissions.h upnpglobalvars.h
193 options.o: miniupnpdtypes.h
194 upnppermissions.o: config.h upnppermissions.h
195 minissdp.o: config.h upnpdescstrings.h miniupnpdpath.h upnphttp.h
196 minissdp.o: upnpglobalvars.h upnppermissions.h miniupnpdtypes.h minissdp.h
197 minissdp.o: upnputils.h getroute.h asyncsendto.h codelength.h
198 natpmp.o: macros.h config.h natpmp.h upnpglobalvars.h upnppermissions.h
199 natpmp.o: miniupnpdtypes.h getifaddr.h upnpredirect.h commonrdr.h upnputils.h
200 natpmp.o: portinuse.h asyncsendto.h
201 pcpserver.o: config.h pcpserver.h macros.h upnpglobalvars.h upnppermissions.h
202 pcpserver.o: miniupnpdtypes.h pcplearndscp.h upnpredirect.h commonrdr.h
203 pcpserver.o: getifaddr.h asyncsendto.h pcp_msg_struct.h netfilter/iptcrdr.h
204 pcpserver.o: commonrdr.h
205 upnpevents.o: config.h upnpevents.h miniupnpdpath.h upnpglobalvars.h
206 upnpevents.o: upnppermissions.h miniupnpdtypes.h upnpdescgen.h upnputils.h
207 upnputils.o: config.h upnputils.h upnpglobalvars.h upnppermissions.h
208 upnputils.o: miniupnpdtypes.h getroute.h
209 getconnstatus.o: getconnstatus.h getifaddr.h
210 upnppinhole.o: macros.h config.h upnpredirect.h upnpglobalvars.h
211 upnppinhole.o: upnppermissions.h miniupnpdtypes.h upnpevents.h
212 upnppinhole.o: netfilter/iptpinhole.h
213 pcplearndscp.o: config.h upnpglobalvars.h upnppermissions.h miniupnpdtypes.h
214 pcplearndscp.o: pcplearndscp.h
215 asyncsendto.o: asyncsendto.h
216 linux/getifstats.o: config.h getifstats.h
217 linux/ifacewatcher.o: config.h ifacewatcher.h config.h minissdp.h
218 linux/ifacewatcher.o: miniupnpdtypes.h getifaddr.h upnpglobalvars.h
219 linux/ifacewatcher.o: upnppermissions.h natpmp.h
220 linux/getroute.o: getroute.h upnputils.h
221 netfilter/iptcrdr.o: macros.h config.h netfilter/iptcrdr.h commonrdr.h
222 netfilter/iptcrdr.o: config.h upnpglobalvars.h upnppermissions.h
223 netfilter/iptcrdr.o: miniupnpdtypes.h
224 netfilter/iptpinhole.o: config.h netfilter/iptpinhole.h upnpglobalvars.h
225 netfilter/iptpinhole.o: upnppermissions.h config.h miniupnpdtypes.h
226 testupnpdescgen.o: macros.h config.h upnpdescgen.h upnpdescstrings.h
227 testupnpdescgen.o: getifaddr.h
228 upnpdescgen.o: config.h getifaddr.h upnpredirect.h upnpdescgen.h
229 upnpdescgen.o: miniupnpdpath.h upnpglobalvars.h upnppermissions.h
230 upnpdescgen.o: miniupnpdtypes.h upnpdescstrings.h upnpurns.h getconnstatus.h
231 testgetifstats.o: config.h getifstats.h
232 testupnppermissions.o: upnppermissions.h config.h
233 testgetifaddr.o: getifaddr.h
234 testgetroute.o: getroute.h upnputils.h upnpglobalvars.h upnppermissions.h
235 testgetroute.o: config.h miniupnpdtypes.h
236 testasyncsendto.o: miniupnpdtypes.h config.h upnputils.h asyncsendto.h
237 testportinuse.o: macros.h config.h portinuse.h
238 miniupnpdctl.o: macros.h