Tomato 1.28
[tomato.git] / release / src / router / miniupnpd / Makefile.macosx
blobea0bb15c8ba40dd884ccd55afaadc0f3042cf43e
1 # MiniUPnP project
2 # http://miniupnp.free.fr/
3 # Author: Thomas Bernard
4 # This Makefile should work for MacOSX
6 # To install use :
7 # $ PREFIX=/dummyinstalldir make -f Makefile.macosx install
8 # or :
9 # $ make -f Makefile.macosx install
11 CFLAGS = -Wall -O -g3 -DDEBUG
12 #CFLAGS = -Wall -Os
13 CC = gcc
14 RM = rm -f
15 MV = mv
16 INSTALL = install
17 STRIP = strip
19 # OSNAME and FWNAME are used for building OS or FW dependent code.
20 OSNAME = $(shell uname)
21 ARCH = $(shell uname -p)
22 FWNAME = ipfw
24 STDOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
25           upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
26           options.o upnppermissions.o minissdp.o natpmp.o \
27           upnpevents.o
28 MACOBJS = mac/getifstats.o
29 IPFWOBJS = ipfw/ipfwrdr.o
30 MISCOBJS = upnpreplyparse.o minixml.o
32 ALLOBJS = $(STDOBJS) $(MISCOBJS) $(MACOBJS) $(IPFWOBJS)
34 TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
35 TESTGETIFSTATSOBJS = testgetifstats.o mac/getifstats.o
36 TESTUPNPPERMISSIONSOBJS = testupnppermissions.o upnppermissions.o
37 TESTGETIFADDROBJS = testgetifaddr.o getifaddr.o
38 MINIUPNPDCTLOBJS = miniupnpdctl.o
40 EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \
41               testupnppermissions miniupnpdctl \
42               testgetifaddr
44 LIBS = 
46 # set PREFIX variable to install in the wanted place
48 INSTALLBINDIR = $(PREFIX)/sbin
49 INSTALLETCDIR = $(PREFIX)/etc/miniupnpd
50 # INSTALLMANDIR = $(PREFIX)/man
51 INSTALLMANDIR = /usr/share/man/man1
53 all:    $(EXECUTABLES)
55 clean:
56         $(RM) $(STDOBJS) $(MACOBJS) $(EXECUTABLES) \
57         testupnpdescgen.o \
58         $(MISCOBJS) config.h testgetifstats.o testupnppermissions.o \
59         miniupnpdctl.o testgetifaddr.o \
60         $(IPFWOBJS)
62 install:        miniupnpd genuuid
63         $(STRIP) miniupnpd
64         $(INSTALL) -d $(INSTALLBINDIR)
65         $(INSTALL) miniupnpd $(INSTALLBINDIR)
66         $(INSTALL) -d $(INSTALLETCDIR)
67         $(INSTALL) ipfw/ipfw_init.sh $(INSTALLETCDIR)
68         $(INSTALL) ipfw/ipfw_removeall.sh $(INSTALLETCDIR)
69         $(INSTALL) --mode=0644 -b miniupnpd.conf $(INSTALLETCDIR)
70         $(INSTALL) -d $(INSTALLMANDIR)
71         $(INSTALL) miniupnpd.1 $(INSTALLMANDIR)
72         $(INSTALL) -d $(PREFIX)/Library/LaunchDaemons
73         $(INSTALL) mac/org.tuxfamily.miniupnpd.plist $(PREFIX)/Library/LaunchDaemons
75 # genuuid is using the uuid cli tool available under MacOSX
76 UUID != if which uuidgen 2>&1 > /dev/null; then \
77                 echo `uuidgen` ; \
78         elif which uuid 2>&1 > /dev/null; then \
79                 echo `uuid` ; \
80                 else echo "00000000-0000-0000-0000-000000000000"; \
81         fi
83 genuuid:
84         $(MV) miniupnpd.conf miniupnpd.conf.before
85         sed -e "s/^uuid=[-0-9a-f]*/uuid=$(UUID)/" miniupnpd.conf.before > miniupnpd.conf
86         $(RM) miniupnpd.conf.before
88 depend: config.h
89         mkdep $(ALLOBJS:.o=.c) testupnpdescgen.c testgetifstats.c \
90     testupnppermissions.c miniupnpdctl.c testgetifaddr.c
92 miniupnpd: config.h $(ALLOBJS)
93         $(CC) $(CFLAGS) -o $@ $(ALLOBJS) $(LIBS)
95 miniupnpdctl:   config.h $(MINIUPNPDCTLOBJS)
96         $(CC) $(CFLAGS) -o $@ $(MINIUPNPDCTLOBJS)
98 testupnpdescgen:        config.h $(TESTUPNPDESCGENOBJS)
99         $(CC) $(CFLAGS) -o $@ $(TESTUPNPDESCGENOBJS)
101 testgetifstats: config.h $(TESTGETIFSTATSOBJS)
102         $(CC) $(CFLAGS) -o $@ $(TESTGETIFSTATSOBJS) $(LIBS)
104 testgetifaddr:  config.h $(TESTGETIFADDROBJS)
105         $(CC) $(CFLAGS) -o $@ $(TESTGETIFADDROBJS)
107 testupnppermissions:    config.h $(TESTUPNPPERMISSIONSOBJS)
108         $(CC) $(CFLAGS) -o $@ $(TESTUPNPPERMISSIONSOBJS)
111 config.h:       genconfig.sh
112         ./genconfig.sh
114 .SUFFIXES:      .o .c
115 .c.o:
116         $(CC) $(CFLAGS) -c -o $@ $<
118 #       $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC)