1 # $Id: Makefile,v 1.49 2009/01/29 18:21:05 nanard Exp $
3 # http://miniupnp.free.fr/
4 # Author: Thomas Bernard
5 # This Makefile should work for *BSD and SunOS/Solaris
6 # Linux users, please use Makefile.linux
8 #CFLAGS = -Wall -O -g -DDEBUG
15 # OSNAME and FWNAME are used for building OS or FW dependent code.
19 .if exists
(/usr
/include/net
/pfvar.h
)
26 # better way to find if we are using ipf or pf
27 .if
$(OSNAME
) == "FreeBSD"
28 FWNAME
!= .
/etc
/rc.subr
; .
/etc
/rc.conf
; \
29 if checkyesno ipfilter_enable
; then \
30 echo
"ipf"; else echo
"pf"; fi
33 # Solaris specific CFLAGS
34 .if
$(OSNAME
) == "SunOS"
35 CFLAGS
+= -DSOLARIS2
=`uname -r | cut -d. -f2`
36 .if
$(ARCH
) == "amd64"
37 CFLAGS
+= -m64
-mcmodel
=kernel
-mno-red-zone
-ffreestanding
38 .elif
$(ARCH
) == "sparc64"
39 CFLAGS
+= -m64
-mcmodel
=medlow
43 STDOBJS
= miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
44 upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
45 options.o upnppermissions.o minissdp.o natpmp.o \
47 BSDOBJS
= bsd
/getifstats.o
48 SUNOSOBJS
= solaris
/getifstats.o
50 IPFOBJS
= ipf
/ipfrdr.o
51 MISCOBJS
= upnpreplyparse.o minixml.o
53 ALLOBJS
= $(STDOBJS
) $(MISCOBJS
)
54 .if
$(OSNAME
) == "SunOS"
55 ALLOBJS
+= $(SUNOSOBJS
)
66 TESTUPNPDESCGENOBJS
= testupnpdescgen.o upnpdescgen.o
67 .if
$(OSNAME
) == "SunOS"
68 TESTGETIFSTATSOBJS
= testgetifstats.o solaris
/getifstats.o
70 TESTGETIFSTATSOBJS
= testgetifstats.o bsd
/getifstats.o
72 TESTUPNPPERMISSIONSOBJS
= testupnppermissions.o upnppermissions.o
73 TESTGETIFADDROBJS
= testgetifaddr.o getifaddr.o
74 MINIUPNPDCTLOBJS
= miniupnpdctl.o
76 EXECUTABLES
= miniupnpd testupnpdescgen testgetifstats \
77 testupnppermissions miniupnpdctl \
81 .if
$(OSNAME
) == "SunOS"
82 LIBS
+= -lsocket
-lnsl
-lkstat
-lresolv
85 # set PREFIX variable to install in the wanted place
87 INSTALLBINDIR
= $(PREFIX
)/sbin
88 INSTALLETCDIR
= $(PREFIX
)/etc
89 # INSTALLMANDIR = $(PREFIX)/man
90 INSTALLMANDIR
= /usr
/share
/man
95 $(RM
) $(STDOBJS
) $(BSDOBJS
) $(SUNOSOBJS
) $(EXECUTABLES
) \
97 $(MISCOBJS
) config.h testgetifstats.o testupnppermissions.o \
98 miniupnpdctl.o testgetifaddr.o \
101 install: miniupnpd genuuid
103 $(INSTALL
) -m
555 miniupnpd
$(INSTALLBINDIR
)
104 $(INSTALL
) -b miniupnpd.conf
$(INSTALLETCDIR
)
105 $(INSTALL
) miniupnpd
.1 $(INSTALLMANDIR
)
107 # genuuid is using the uuid cli tool available under OpenBSD 4.0 in
108 # the uuid-1.5.0 package
109 # any other cli tool returning a uuid on stdout should work.
110 UUID
!= if which uuidgen
2>&1 > /dev
/null
; then \
112 elif which uuid
2>&1 > /dev
/null
; then \
114 else echo
"00000000-0000-0000-0000-000000000000"; \
118 $(MV
) miniupnpd.conf miniupnpd.conf.before
119 sed
-e
"s/^uuid=[-0-9a-f]*/uuid=$(UUID)/" miniupnpd.conf.before
> miniupnpd.conf
120 $(RM
) miniupnpd.conf.before
123 mkdep
$(ALLOBJS
:.o
=.c
) testupnpdescgen.c testgetifstats.c \
124 testupnppermissions.c miniupnpdctl.c testgetifaddr.c
126 miniupnpd
: config.h
$(ALLOBJS
)
127 $(CC
) $(CFLAGS
) -o
$@
$(ALLOBJS
) $(LIBS
)
130 # $(CC) $(CFLAGS) -o $@ $> $(LIBS)
132 miniupnpdctl
: config.h
$(MINIUPNPDCTLOBJS
)
133 $(CC
) $(CFLAGS
) -o
$@
$(MINIUPNPDCTLOBJS
)
135 testupnpdescgen
: config.h
$(TESTUPNPDESCGENOBJS
)
136 $(CC
) $(CFLAGS
) -o
$@
$(TESTUPNPDESCGENOBJS
)
138 testgetifstats
: config.h
$(TESTGETIFSTATSOBJS
)
139 $(CC
) $(CFLAGS
) -o
$@
$(TESTGETIFSTATSOBJS
) $(LIBS
)
141 testgetifaddr
: config.h
$(TESTGETIFADDROBJS
)
142 $(CC
) $(CFLAGS
) -o
$@
$(TESTGETIFADDROBJS
)
144 testupnppermissions
: config.h
$(TESTUPNPPERMISSIONSOBJS
)
145 $(CC
) $(CFLAGS
) -o
$@
$(TESTUPNPPERMISSIONSOBJS
)
148 # $(CC) $(CFLAGS) -o $@ $^
150 # $(CC) $(CFLAGS) -o $@ $>
152 config.h
: genconfig.sh
157 $(CC
) $(CFLAGS
) -c
-o
$@
$<
159 # $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC)