TOR: fix compilation
[tomato.git] / release / src / router / miniupnpd / Makefile.macosx
blob3a01f7f8f11b714bf9c4974e1990eb3752f80a2a
1 # MiniUPnP project
2 # http://miniupnp.free.fr/
3 # Author: Thomas Bernard
4 # This Makefile should work for MacOSX
6 # To compile with pf with OS X 10.7+, you need to specify
7 # path to XNU bsd sources :
8 # INCLUDES="-I.../xnu/bsd -I.../xnu/libkern" make -f Makefile.macosx
10 # To install use :
11 # $ PREFIX=/dummyinstalldir make -f Makefile.macosx install
12 # or :
13 # $ make -f Makefile.macosx install
15 CFLAGS = -Wall -O -g3 -DDEBUG
16 #CFLAGS = -Wall -Os
17 #CC = gcc  #better use clang !
18 RM = rm -f
19 MV = mv
20 INSTALL = install
21 STRIP = strip
23 # OSNAME and FWNAME are used for building OS or FW dependent code.
24 OSNAME = $(shell uname)
25 ARCH = $(shell uname -p)
26 # Firewall is ipfw up to OS X 10.6 Snow Leopard
27 # and pf since OS X 10.7 Lion (Darwin 11.0)
28 FWNAME = $(shell [ `uname -r | cut -d. -f1` -ge 11  ] && echo "pf" || echo "ipfw" )
30 STD_OBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
31           upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
32           options.o upnppermissions.o minissdp.o natpmp.o \
33           upnpevents.o getconnstatus.o upnputils.o \
34           upnppinhole.o asyncsendto.o portinuse.o pcpserver.o
35 MAC_OBJS = mac/getifstats.o bsd/ifacewatcher.o bsd/getroute.o
36 IPFW_OBJS = ipfw/ipfwrdr.o ipfw/ipfwaux.o
37 PF_OBJS = pf/obsdrdr.o
38 # pf/pfpinhole.o # SHOULD be used, but doesn't compile on e.g. OS X 10.9.
39 MISC_OBJS = upnpreplyparse.o minixml.o
41 ALL_OBJS = $(STD_OBJS) $(MISC_OBJS) $(MAC_OBJS)
42 ifeq ($(FWNAME), ipfw)
43   ALL_OBJS += $(IPFW_OBJS)
44 else
45   ALL_OBJS += $(PF_OBJS)
46   CFLAGS += -DPF
47 endif
49 TEST_UPNPDESCGEN_OBJS = testupnpdescgen.o upnpdescgen.o
50 TEST_GETIFSTATS_OBJS = testgetifstats.o mac/getifstats.o
51 TEST_UPNPPERMISSIONS_OBJS = testupnppermissions.o upnppermissions.o
52 TEST_GETIFADDR_OBJS = testgetifaddr.o getifaddr.o
53 TEST_PORTINUSE_OBJS = testportinuse.o portinuse.o getifaddr.o
54 TEST_ASYNCSENDTO_OBJS = testasyncsendto.o asyncsendto.o upnputils.o bsd/getroute.o
55 MINIUPNPDCTL_OBJS = miniupnpdctl.o
57 EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \
58               testupnppermissions miniupnpdctl \
59               testgetifaddr testportinuse testasyncsendto
61 LIBS =
63 # set PREFIX variable to install in the wanted place
65 INSTALL_BINDIR = $(PREFIX)/sbin
66 INSTALL_ETCDIR = $(PREFIX)/etc/miniupnpd
67 INSTALL_MANDIR = $(PREFIX)/share/man/man8
69 all: $(EXECUTABLES)
71 clean:
72         $(RM) $(ALL_OBJS) $(EXECUTABLES) \
73         testupnpdescgen.o testgetifstats.o testupnppermissions.o \
74         miniupnpdctl.o testgetifaddr.o config.h \
75         mac/org.tuxfamily.miniupnpd.plist
77 install: miniupnpd genuuid genlaunchd
78         $(STRIP) miniupnpd
79         $(INSTALL) -d $(INSTALL_BINDIR)
80         $(INSTALL) miniupnpd $(INSTALL_BINDIR)
81         $(INSTALL) -d $(INSTALL_ETCDIR)
82         $(INSTALL) -m 0644 -b miniupnpd.conf $(INSTALL_ETCDIR)
83         $(INSTALL) -d $(INSTALL_MANDIR)
84         $(INSTALL) miniupnpd.8 $(INSTALL_MANDIR)
85         $(INSTALL) -d $(PREFIX)/Library/LaunchDaemons
86         $(INSTALL) mac/org.tuxfamily.miniupnpd.plist $(PREFIX)/Library/LaunchDaemons
87         #$(INSTALL) ipfw/ipfw_init.sh $(INSTALL_ETCDIR)
88         #$(INSTALL) ipfw/ipfw_removeall.sh $(INSTALL_ETCDIR)
90 genuuid:
91         $(MV) miniupnpd.conf miniupnpd.conf.before
92         sed -e "s/^uuid=[-0-9a-fA-F]*/uuid=`uuidgen 2>/dev/null`/" miniupnpd.conf.before > miniupnpd.conf
93         $(RM) miniupnpd.conf.before
95 genlaunchd:
96         sed -e "s|INSTALLPREFIX|$(PREFIX)|g" mac/org.tuxfamily.miniupnpd.plist.before > mac/org.tuxfamily.miniupnpd.plist
98 depend: config.h
99         mkdep $(ALL_OBJS:.o=.c) testupnpdescgen.c testgetifstats.c \
100     testupnppermissions.c miniupnpdctl.c testgetifaddr.c
102 miniupnpd: config.h $(ALL_OBJS)
103         $(CC) $(CFLAGS) -o $@ $(ALL_OBJS) $(LIBS)
105 miniupnpdctl: config.h $(MINIUPNPDCTL_OBJS)
106         $(CC) $(CFLAGS) -o $@ $(MINIUPNPDCTL_OBJS)
108 testupnpdescgen: config.h $(TEST_UPNPDESCGEN_OBJS)
109         $(CC) $(CFLAGS) -o $@ $(TEST_UPNPDESCGEN_OBJS)
111 testgetifstats: config.h $(TEST_GETIFSTATS_OBJS)
112         $(CC) $(CFLAGS) -o $@ $(TEST_GETIFSTATS_OBJS) $(LIBS)
114 testgetifaddr: config.h $(TEST_GETIFADDR_OBJS)
115         $(CC) $(CFLAGS) -o $@ $(TEST_GETIFADDR_OBJS)
117 testupnppermissions: config.h $(TEST_UPNPPERMISSIONS_OBJS)
118         $(CC) $(CFLAGS) -o $@ $(TEST_UPNPPERMISSIONS_OBJS)
120 testasyncsendto: config.h $(TEST_ASYNCSENDTO_OBJS)
121         $(CC) $(CFLAGS) -o $@ $(TEST_ASYNCSENDTO_OBJS)
123 testportinuse: config.h $(TEST_PORTINUSE_OBJS)
124         $(CC) $(CFLAGS) -o $@ $(TEST_PORTINUSE_OBJS)
126 config.h: genconfig.sh
127         ./genconfig.sh
129 .SUFFIXES: .o .c
130 .c.o:
131         $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
132 #       $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC)