version 1.1, 2012/02/21 23:16:02
|
version 1.1.1.3, 2013/07/22 00:32:35
|
Line 1
|
Line 1
|
# $Id$ |
# $Id$ |
# MiniUPnP project |
# MiniUPnP project |
# http://miniupnp.free.fr/ | # http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ |
# Author: Thomas Bernard |
# Author: Thomas Bernard |
# This Makefile should work for *BSD and SunOS/Solaris | # |
# Linux users, please use Makefile.linux | # Makefile for miniupnpd (MiniUPnP daemon) |
CFLAGS ?= -Wall -Os | # |
#CFLAGS = -Wall -O -g -DDEBUG | # This Makefile should work for *BSD and SunOS/Solaris. |
| # On Mac OS X, use "bsdmake" to build. |
| # This Makefile is NOT compatible with GNU Make. |
| # Linux users, please use Makefile.linux : |
| # make -f Makefile.linux |
| # |
| # options can be passed to genconfig.sh through CONFIG_OPTIONS : |
| # $ CONFIG_OPTIONS="--ipv6 --igd2" make |
| # |
| |
| CFLAGS ?= -pipe -Os |
| #CFLAGS = -pipe -O -g -DDEBUG |
| CFLAGS += -ansi |
| CFLAGS += -Wall |
| CFLAGS += -W |
| CFLAGS += -Wstrict-prototypes |
| #CFLAGS += -Wdeclaration-after-statement |
| #CFLAGS += -Wno-missing-field-initializers |
| CFLAGS += -fno-common |
CC ?= gcc |
CC ?= gcc |
RM = rm -f |
RM = rm -f |
MV = mv |
MV = mv |
Line 24 FWNAME = ipf
|
Line 42 FWNAME = ipf
|
.endif |
.endif |
|
|
# better way to find if we are using ipf or pf |
# better way to find if we are using ipf or pf |
|
.if defined(/etc/rc.subr) && defined(/etc/rc.conf) |
.if $(OSNAME) == "FreeBSD" |
.if $(OSNAME) == "FreeBSD" |
FWNAME != . /etc/rc.subr; . /etc/rc.conf; \ |
FWNAME != . /etc/rc.subr; . /etc/rc.conf; \ |
if checkyesno ipfilter_enable; then \ |
if checkyesno ipfilter_enable; then \ |
Line 41 FWNAME != . /etc/rc.subr; . /etc/rc.conf; \
|
Line 60 FWNAME != . /etc/rc.subr; . /etc/rc.conf; \
|
if chechyesno ipfilter; then \ |
if chechyesno ipfilter; then \ |
echo "ipf"; else echo "pf"; fi |
echo "ipf"; else echo "pf"; fi |
.endif |
.endif |
|
.endif |
|
|
|
.if $(OSNAME) == "Darwin" |
|
FWNAME = ipfw |
|
.endif |
|
|
# Solaris specific CFLAGS |
# Solaris specific CFLAGS |
.if $(OSNAME) == "SunOS" |
.if $(OSNAME) == "SunOS" |
CFLAGS += -DSOLARIS2=`uname -r | cut -d. -f2` |
CFLAGS += -DSOLARIS2=`uname -r | cut -d. -f2` |
Line 55 CFLAGS += -m64 -mcmodel=medlow
|
Line 79 CFLAGS += -m64 -mcmodel=medlow
|
STDOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \ |
STDOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \ |
upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \ |
upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \ |
options.o upnppermissions.o minissdp.o natpmp.o \ |
options.o upnppermissions.o minissdp.o natpmp.o \ |
upnpevents.o | upnpevents.o upnputils.o getconnstatus.o \ |
BSDOBJS = bsd/getifstats.o | upnppinhole.o |
SUNOSOBJS = solaris/getifstats.o | BSDOBJS = bsd/getifstats.o bsd/ifacewatcher.o bsd/getroute.o |
PFOBJS = pf/obsdrdr.o | SUNOSOBJS = solaris/getifstats.o bsd/ifacewatcher.o bsd/getroute.o |
| MACOBJS = mac/getifstats.o bsd/ifacewatcher.o bsd/getroute.o |
| PFOBJS = pf/obsdrdr.o pf/pfpinhole.o |
IPFOBJS = ipf/ipfrdr.o |
IPFOBJS = ipf/ipfrdr.o |
|
IPFWOBJS = ipfw/ipfwrdr.o ipfw/ipfwaux.o |
MISCOBJS = upnpreplyparse.o minixml.o |
MISCOBJS = upnpreplyparse.o minixml.o |
|
|
ALLOBJS = $(STDOBJS) $(MISCOBJS) |
ALLOBJS = $(STDOBJS) $(MISCOBJS) |
.if $(OSNAME) == "SunOS" |
.if $(OSNAME) == "SunOS" |
ALLOBJS += $(SUNOSOBJS) |
ALLOBJS += $(SUNOSOBJS) |
|
TESTGETIFSTATSOBJS = testgetifstats.o solaris/getifstats.o |
|
TESTGETROUTEOBJS = testgetroute.o upnputils.o bsd/getroute.o |
|
.elif $(OSNAME) == "Darwin" |
|
ALLOBJS += $(MACOBJS) |
|
TESTGETIFSTATSOBJS = testgetifstats.o mac/getifstats.o |
|
TESTGETROUTEOBJS = testgetroute.o upnputils.o bsd/getroute.o |
.else |
.else |
ALLOBJS += $(BSDOBJS) |
ALLOBJS += $(BSDOBJS) |
|
TESTGETIFSTATSOBJS = testgetifstats.o bsd/getifstats.o |
|
TESTGETROUTEOBJS = testgetroute.o upnputils.o bsd/getroute.o |
.endif |
.endif |
|
|
.if $(FWNAME) == "pf" |
.if $(FWNAME) == "pf" |
ALLOBJS += $(PFOBJS) |
ALLOBJS += $(PFOBJS) |
|
.elif $(FWNAME) == "ipfw" |
|
ALLOBJS += $(IPFWOBJS) |
.else |
.else |
ALLOBJS += $(IPFOBJS) |
ALLOBJS += $(IPFOBJS) |
.endif |
.endif |
|
|
TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o |
TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o |
.if $(OSNAME) == "SunOS" |
|
TESTGETIFSTATSOBJS = testgetifstats.o solaris/getifstats.o |
|
.else |
|
TESTGETIFSTATSOBJS = testgetifstats.o bsd/getifstats.o |
|
.endif |
|
TESTUPNPPERMISSIONSOBJS = testupnppermissions.o upnppermissions.o |
TESTUPNPPERMISSIONSOBJS = testupnppermissions.o upnppermissions.o |
TESTGETIFADDROBJS = testgetifaddr.o getifaddr.o |
TESTGETIFADDROBJS = testgetifaddr.o getifaddr.o |
MINIUPNPDCTLOBJS = miniupnpdctl.o |
MINIUPNPDCTLOBJS = miniupnpdctl.o |
|
|
EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \ |
EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \ |
testupnppermissions miniupnpdctl \ |
testupnppermissions miniupnpdctl \ |
testgetifaddr | testgetifaddr testgetroute |
| .if $(OSNAME) == "Darwin" |
| LIBS = |
| .else |
LIBS = -lkvm |
LIBS = -lkvm |
|
.endif |
.if $(OSNAME) == "SunOS" |
.if $(OSNAME) == "SunOS" |
LIBS += -lsocket -lnsl -lkstat -lresolv |
LIBS += -lsocket -lnsl -lkstat -lresolv |
.endif |
.endif |
Line 104 INSTALLMANDIR = /usr/share/man
|
Line 139 INSTALLMANDIR = /usr/share/man
|
all: $(EXECUTABLES) |
all: $(EXECUTABLES) |
|
|
clean: |
clean: |
$(RM) $(STDOBJS) $(BSDOBJS) $(SUNOSOBJS) $(EXECUTABLES) \ | $(RM) $(STDOBJS) $(BSDOBJS) $(SUNOSOBJS) $(MACOBJS) $(EXECUTABLES) \ |
testupnpdescgen.o \ |
testupnpdescgen.o \ |
$(MISCOBJS) config.h testgetifstats.o testupnppermissions.o \ |
$(MISCOBJS) config.h testgetifstats.o testupnppermissions.o \ |
miniupnpdctl.o testgetifaddr.o \ | miniupnpdctl.o testgetifaddr.o testgetroute.o \ |
$(PFOBJS) $(IPFOBJS) | $(PFOBJS) $(IPFOBJS) $(IPFWOBJS) |
|
|
install: miniupnpd genuuid |
install: miniupnpd genuuid |
$(STRIP) miniupnpd |
$(STRIP) miniupnpd |
Line 118 install: miniupnpd genuuid
|
Line 153 install: miniupnpd genuuid
|
$(INSTALL) -b miniupnpd.conf $(DESTDIR)$(INSTALLETCDIR) |
$(INSTALL) -b miniupnpd.conf $(DESTDIR)$(INSTALLETCDIR) |
# TODO : install man page correctly |
# TODO : install man page correctly |
# $(INSTALL) -d $(INSTALLMANDIR) |
# $(INSTALL) -d $(INSTALLMANDIR) |
# $(INSTALL) miniupnpd.1 $(INSTALLMANDIR)/cat1/miniupnpd.0 | # $(INSTALL) miniupnpd.8 $(INSTALLMANDIR)/cat8/miniupnpd.0 |
|
|
# genuuid is using the uuid cli tool available under OpenBSD 4.0 in |
# genuuid is using the uuid cli tool available under OpenBSD 4.0 in |
# the uuid-1.5.0 package |
# the uuid-1.5.0 package |
Line 132 UUID != if which uuidgen 2>&1 > /dev/null; then \
|
Line 167 UUID != if which uuidgen 2>&1 > /dev/null; then \
|
|
|
genuuid: |
genuuid: |
$(MV) miniupnpd.conf miniupnpd.conf.before |
$(MV) miniupnpd.conf miniupnpd.conf.before |
sed -e "s/^uuid=[-0-9a-f]*/uuid=$(UUID)/" miniupnpd.conf.before > miniupnpd.conf | sed -e "s/^uuid=[-0-9a-fA-F]*/uuid=$(UUID)/" miniupnpd.conf.before > miniupnpd.conf |
$(RM) miniupnpd.conf.before |
$(RM) miniupnpd.conf.before |
|
|
depend: config.h |
depend: config.h |
mkdep $(ALLOBJS:.o=.c) testupnpdescgen.c testgetifstats.c \ |
mkdep $(ALLOBJS:.o=.c) testupnpdescgen.c testgetifstats.c \ |
testupnppermissions.c miniupnpdctl.c testgetifaddr.c | testupnppermissions.c miniupnpdctl.c testgetifaddr.c \ |
| testgetroute.c |
|
|
miniupnpd: config.h $(ALLOBJS) |
miniupnpd: config.h $(ALLOBJS) |
$(CC) $(CFLAGS) -o $@ $(ALLOBJS) $(LIBS) |
$(CC) $(CFLAGS) -o $@ $(ALLOBJS) $(LIBS) |
Line 160 testgetifaddr: config.h $(TESTGETIFADDROBJS)
|
Line 196 testgetifaddr: config.h $(TESTGETIFADDROBJS)
|
testupnppermissions: config.h $(TESTUPNPPERMISSIONSOBJS) |
testupnppermissions: config.h $(TESTUPNPPERMISSIONSOBJS) |
$(CC) $(CFLAGS) -o $@ $(TESTUPNPPERMISSIONSOBJS) |
$(CC) $(CFLAGS) -o $@ $(TESTUPNPPERMISSIONSOBJS) |
|
|
|
testgetroute: config.h $(TESTGETROUTEOBJS) |
|
$(CC) $(CFLAGS) -o $@ $(TESTGETROUTEOBJS) |
|
|
# gmake : |
# gmake : |
# $(CC) $(CFLAGS) -o $@ $^ |
# $(CC) $(CFLAGS) -o $@ $^ |
# BSDmake : |
# BSDmake : |
# $(CC) $(CFLAGS) -o $@ $> |
# $(CC) $(CFLAGS) -o $@ $> |
|
|
config.h: genconfig.sh | config.h: genconfig.sh VERSION |
./genconfig.sh | ./genconfig.sh $(CONFIG_OPTIONS) |
|
|
.SUFFIXES: .o .c |
.SUFFIXES: .o .c |
.c.o: |
.c.o: |
Line 174 config.h: genconfig.sh
|
Line 213 config.h: genconfig.sh
|
|
|
# $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC) |
# $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC) |
|
|
| |