version 1.1, 2012/02/21 23:16:22
|
version 1.1.1.2.2.1, 2013/07/22 00:37:39
|
Line 1
|
Line 1
|
# $Id$ |
# $Id$ |
# MiniUPnP Project |
# MiniUPnP Project |
# http://miniupnp.free.fr/ |
# http://miniupnp.free.fr/ |
# (c) 2005-2011 Thomas Bernard | # http://miniupnp.tuxfamily.org/ |
| # https://github.com/miniupnp/miniupnp |
| # (c) 2005-2012 Thomas Bernard |
# to install use : |
# to install use : |
# $ PREFIX=/tmp/dummylocation make install |
# $ PREFIX=/tmp/dummylocation make install |
# or |
# or |
# $ INSTALLPREFIX=/usr/local make install |
# $ INSTALLPREFIX=/usr/local make install |
# or | # or |
# make install (will go to /usr/bin, /usr/lib, etc...) |
# make install (will go to /usr/bin, /usr/lib, etc...) |
OS = $(shell uname -s) |
OS = $(shell uname -s) |
|
VERSION = $(shell cat VERSION) |
|
|
|
ifeq ($(OS), Darwin) |
|
JARSUFFIX=mac |
|
endif |
|
ifeq ($(OS), Linux) |
|
JARSUFFIX=linux |
|
endif |
|
ifneq (,$(findstring NT-5.1,$(OS))) |
|
JARSUFFIX=win32 |
|
endif |
|
|
|
HAVE_IPV6 ?= yes |
|
export HAVE_IPV6 |
|
|
CC ?= gcc |
CC ?= gcc |
#AR = gar |
#AR = gar |
#CFLAGS = -O -Wall -g -DDEBUG | #CFLAGS = -O -g -DDEBUG |
CFLAGS ?= -O -Wall -DNDEBUG -DMINIUPNPC_SET_SOCKET_TIMEOUT -Wstrict-prototypes | CFLAGS ?= -O |
| CFLAGS += -Wall |
| CFLAGS += -W -Wstrict-prototypes |
| CFLAGS += -fno-common |
| CFLAGS += -DMINIUPNPC_SET_SOCKET_TIMEOUT |
| CFLAGS += -DMINIUPNPC_GET_SRC_ADDR |
| CFLAGS += -D_BSD_SOURCE |
| CFLAGS += -ansi |
# -DNO_GETADDRINFO |
# -DNO_GETADDRINFO |
INSTALL = install |
INSTALL = install |
SH = /bin/sh |
SH = /bin/sh |
JAVA = java |
JAVA = java |
# see http://code.google.com/p/jnaerator/ |
# see http://code.google.com/p/jnaerator/ |
JNAERATOR = jnaerator-0.9.3.jar | JNAERATOR = jnaerator-0.9.7.jar |
| JNAERATORBASEURL = http://jnaerator.googlecode.com/files/ |
#following libs are needed on Solaris |
#following libs are needed on Solaris |
#LDLIBS=-lsocket -lnsl -lresolv |
#LDLIBS=-lsocket -lnsl -lresolv |
|
|
# APIVERSION is used to build SONAME |
# APIVERSION is used to build SONAME |
APIVERSION = 8 | APIVERSION = 9 |
|
|
SRCS = igd_desc_parse.c miniupnpc.c minixml.c minisoap.c miniwget.c \ |
SRCS = igd_desc_parse.c miniupnpc.c minixml.c minisoap.c miniwget.c \ |
upnpc.c upnpcommands.c upnpreplyparse.c testminixml.c \ |
upnpc.c upnpcommands.c upnpreplyparse.c testminixml.c \ |
minixmlvalid.c testupnpreplyparse.c minissdpc.c \ |
minixmlvalid.c testupnpreplyparse.c minissdpc.c \ |
upnperrors.c testigddescparse.c testminiwget.c \ |
upnperrors.c testigddescparse.c testminiwget.c \ |
connecthostport.c portlistringparse.c receivedata.c | connecthostport.c portlistingparse.c receivedata.c |
|
|
LIBOBJS = miniwget.o minixml.o igd_desc_parse.o minisoap.o \ |
LIBOBJS = miniwget.o minixml.o igd_desc_parse.o minisoap.o \ |
miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \ |
miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \ |
Line 54 ifeq ($(OS), Darwin)
|
Line 79 ifeq ($(OS), Darwin)
|
SHAREDLIBRARY = libminiupnpc.dylib |
SHAREDLIBRARY = libminiupnpc.dylib |
SONAME = $(basename $(SHAREDLIBRARY)).$(APIVERSION).dylib |
SONAME = $(basename $(SHAREDLIBRARY)).$(APIVERSION).dylib |
CFLAGS := -DMACOSX -D_DARWIN_C_SOURCE $(CFLAGS) |
CFLAGS := -DMACOSX -D_DARWIN_C_SOURCE $(CFLAGS) |
else | else |
| ifeq ($(OS), FreeBSD) |
SHAREDLIBRARY = libminiupnpc.so |
SHAREDLIBRARY = libminiupnpc.so |
SONAME = $(SHAREDLIBRARY).$(APIVERSION) |
SONAME = $(SHAREDLIBRARY).$(APIVERSION) |
endif |
endif |
|
ifeq ($(JARSUFFIX), win32) |
|
SHAREDLIBRARY = miniupnpc.dll |
|
endif |
|
endif |
|
|
EXECUTABLES = upnpc-static |
EXECUTABLES = upnpc-static |
EXECUTABLES_ADDTESTS = testminixml minixmlvalid testupnpreplyparse \ |
EXECUTABLES_ADDTESTS = testminixml minixmlvalid testupnpreplyparse \ |
Line 81 TESTIGDDESCPARSE := $(TESTIGDDESCPARSE) minissdpc.o
|
Line 111 TESTIGDDESCPARSE := $(TESTIGDDESCPARSE) minissdpc.o
|
endif |
endif |
|
|
# install directories |
# install directories |
INSTALLPREFIX ?= $(PREFIX)/usr |
|
INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc |
INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc |
INSTALLDIRLIB = $(INSTALLPREFIX)/lib |
INSTALLDIRLIB = $(INSTALLPREFIX)/lib |
INSTALLDIRBIN = $(INSTALLPREFIX)/bin |
INSTALLDIRBIN = $(INSTALLPREFIX)/bin |
|
INSTALLDIRMAN = $(INSTALLPREFIX)/man |
|
|
FILESTOINSTALL = $(LIBRARY) $(EXECUTABLES) |
FILESTOINSTALL = $(LIBRARY) $(EXECUTABLES) |
ifneq ($(OS), AmigaOS) |
ifneq ($(OS), AmigaOS) |
Line 92 FILESTOINSTALL := $(FILESTOINSTALL) $(SHAREDLIBRARY)
|
Line 122 FILESTOINSTALL := $(FILESTOINSTALL) $(SHAREDLIBRARY)
|
endif |
endif |
|
|
|
|
.PHONY: install clean depend all check everything \ | .PHONY: install clean depend all check test everything \ |
installpythonmodule | installpythonmodule updateversion |
# validateminixml validateminiwget |
# validateminixml validateminiwget |
|
|
all: $(LIBRARY) $(EXECUTABLES) |
all: $(LIBRARY) $(EXECUTABLES) |
|
|
|
test: check |
|
|
check: validateminixml validateminiwget |
check: validateminixml validateminiwget |
|
|
everything: all $(EXECUTABLES_ADDTESTS) |
everything: all $(EXECUTABLES_ADDTESTS) |
Line 109 pythonmodule: $(LIBRARY) miniupnpcmodule.c setup.py
|
Line 141 pythonmodule: $(LIBRARY) miniupnpcmodule.c setup.py
|
installpythonmodule: pythonmodule |
installpythonmodule: pythonmodule |
python setup.py install |
python setup.py install |
|
|
|
pythonmodule3: $(LIBRARY) miniupnpcmodule.c setup.py |
|
python3 setup.py build |
|
touch $@ |
|
|
|
installpythonmodule3: pythonmodule3 |
|
python3 setup.py install |
|
|
validateminixml: minixmlvalid |
validateminixml: minixmlvalid |
@echo "minixml validation test" |
@echo "minixml validation test" |
./minixmlvalid |
./minixmlvalid |
Line 122 validateminiwget: testminiwget minihttptestserver test
|
Line 161 validateminiwget: testminiwget minihttptestserver test
|
clean: |
clean: |
$(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS) miniupnpcstrings.h |
$(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS) miniupnpcstrings.h |
# clean python stuff |
# clean python stuff |
$(RM) pythonmodule validateminixml | $(RM) pythonmodule pythonmodule3 validateminixml validateminiwget |
$(RM) -r build/ dist/ |
$(RM) -r build/ dist/ |
#python setup.py clean |
#python setup.py clean |
|
# clean jnaerator stuff |
|
$(RM) _jnaerator.* java/miniupnpc_$(OS).jar |
|
|
install: $(FILESTOINSTALL) | distclean: clean |
| $(RM) $(JNAERATOR) java/*.jar java/*.class out.errors.txt |
| |
| updateversion: miniupnpc.h |
| cp miniupnpc.h miniupnpc.h.bak |
| sed 's/\(.*MINIUPNPC_API_VERSION\s\+\)[0-9]\+/\1$(APIVERSION)/' < miniupnpc.h.bak > miniupnpc.h |
| |
| install: updateversion $(FILESTOINSTALL) |
$(INSTALL) -d $(INSTALLDIRINC) |
$(INSTALL) -d $(INSTALLDIRINC) |
$(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC) |
$(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC) |
$(INSTALL) -d $(INSTALLDIRLIB) |
$(INSTALL) -d $(INSTALLDIRLIB) |
Line 142 else
|
Line 190 else
|
$(INSTALL) -m 755 upnpc-shared $(INSTALLDIRBIN)/upnpc |
$(INSTALL) -m 755 upnpc-shared $(INSTALLDIRBIN)/upnpc |
endif |
endif |
$(INSTALL) -m 755 external-ip.sh $(INSTALLDIRBIN)/external-ip |
$(INSTALL) -m 755 external-ip.sh $(INSTALLDIRBIN)/external-ip |
|
ifneq ($(OS), AmigaOS) |
|
$(INSTALL) -d $(INSTALLDIRMAN)/man3 |
|
$(INSTALL) man3/miniupnpc.3 $(INSTALLDIRMAN)/man3/miniupnpc.3 |
|
endif |
|
|
|
|
cleaninstall: |
cleaninstall: |
$(RM) -r $(INSTALLDIRINC) |
$(RM) -r $(INSTALLDIRINC) |
$(RM) $(INSTALLDIRLIB)/$(LIBRARY) |
$(RM) $(INSTALLDIRLIB)/$(LIBRARY) |
Line 156 $(LIBRARY): $(LIBOBJS)
|
Line 209 $(LIBRARY): $(LIBOBJS)
|
|
|
$(SHAREDLIBRARY): $(LIBOBJS) |
$(SHAREDLIBRARY): $(LIBOBJS) |
ifeq ($(OS), Darwin) |
ifeq ($(OS), Darwin) |
$(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(SONAME) -o $@ $^ | # $(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(SONAME) -o $@ $^ |
| $(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(INSTALLDIRLIB)/$(SONAME) -o $@ $^ |
else |
else |
$(CC) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ |
$(CC) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ |
endif |
endif |
Line 177 testupnpreplyparse: $(TESTUPNPREPLYPARSE)
|
Line 231 testupnpreplyparse: $(TESTUPNPREPLYPARSE)
|
|
|
testigddescparse: $(TESTIGDDESCPARSE) |
testigddescparse: $(TESTIGDDESCPARSE) |
|
|
miniupnpcstrings.h: miniupnpcstrings.h.in updateminiupnpcstrings.sh | miniupnpcstrings.h: miniupnpcstrings.h.in updateminiupnpcstrings.sh VERSION |
$(SH) updateminiupnpcstrings.sh |
$(SH) updateminiupnpcstrings.sh |
|
|
jar: $(SHAREDLIBRARY) | jnaerator-0.9.8-shaded.jar: |
$(JAVA) -jar $(JNAERATOR) -library miniupnpc miniupnpc.h declspec.h upnpcommands.h upnpreplyparse.h igd_desc_parse.h miniwget.h upnperrors.h $(SHAREDLIBRARY) -package fr.free.miniupnp -o . -jar java/miniupnpc_$(OS).jar -v | wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@ |
| |
| jnaerator-0.9.7.jar: |
| wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@ |
| |
| jnaerator-0.9.3.jar: |
| wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@ |
| |
| jar: $(SHAREDLIBRARY) $(JNAERATOR) |
| $(JAVA) -jar $(JNAERATOR) -library miniupnpc \ |
| miniupnpc.h declspec.h upnpcommands.h upnpreplyparse.h \ |
| igd_desc_parse.h miniwget.h upnperrors.h $(SHAREDLIBRARY) \ |
| -package fr.free.miniupnp -o . -jar java/miniupnpc_$(JARSUFFIX).jar -v |
| |
| mvn_install: |
| mvn install:install-file -Dfile=java/miniupnpc_$(JARSUFFIX).jar \ |
| -DgroupId=com.github \ |
| -DartifactId=miniupnp \ |
| -Dversion=$(VERSION) \ |
| -Dpackaging=jar \ |
| -Dclassifier=$(JARSUFFIX) \ |
| -DgeneratePom=true \ |
| -DcreateChecksum=true |
| |
| # make .deb packages |
| deb: /usr/share/pyshared/stdeb all |
| (python setup.py --command-packages=stdeb.command bdist_deb) |
| |
| # install .deb packages |
| ideb: |
| (sudo dpkg -i deb_dist/*.deb) |
| |
| /usr/share/pyshared/stdeb: /usr/share/doc/python-all-dev |
| (sudo apt-get install python-stdeb) |
| |
| /usr/share/doc/python-all-dev: |
| (sudo apt-get install python-all-dev) |
|
|
minihttptestserver: minihttptestserver.o |
minihttptestserver: minihttptestserver.o |
|
|