File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpc / Makefile
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jul 22 00:36:10 2013 UTC (10 years, 11 months ago) by misho
Branches: miniupnpc, elwix, MAIN
CVS tags: v1_8p0, v1_8, HEAD
1.8

    1: # $Id: Makefile,v 1.1.1.2 2013/07/22 00:36:10 misho Exp $
    2: # MiniUPnP Project
    3: # http://miniupnp.free.fr/
    4: # http://miniupnp.tuxfamily.org/
    5: # https://github.com/miniupnp/miniupnp
    6: # (c) 2005-2012 Thomas Bernard
    7: # to install use :
    8: # $ PREFIX=/tmp/dummylocation make install
    9: # or
   10: # $ INSTALLPREFIX=/usr/local make install
   11: # or
   12: # make install (will go to /usr/bin, /usr/lib, etc...)
   13: OS = $(shell uname -s)
   14: VERSION = $(shell cat VERSION)
   15: 
   16: ifeq ($(OS), Darwin)
   17: JARSUFFIX=mac
   18: endif
   19: ifeq ($(OS), Linux)
   20: JARSUFFIX=linux
   21: endif
   22: ifneq (,$(findstring NT-5.1,$(OS)))
   23: JARSUFFIX=win32
   24: endif
   25: 
   26: HAVE_IPV6 ?= yes
   27: export HAVE_IPV6
   28: 
   29: CC ?= gcc
   30: #AR = gar
   31: #CFLAGS = -O -g -DDEBUG
   32: CFLAGS ?= -O
   33: CFLAGS += -Wall
   34: CFLAGS += -W -Wstrict-prototypes
   35: CFLAGS += -fno-common
   36: CFLAGS += -DMINIUPNPC_SET_SOCKET_TIMEOUT
   37: CFLAGS += -DMINIUPNPC_GET_SRC_ADDR
   38: CFLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=1
   39: CFLAGS += -ansi
   40: # -DNO_GETADDRINFO
   41: INSTALL = install
   42: SH = /bin/sh
   43: JAVA = java
   44: # see http://code.google.com/p/jnaerator/
   45: JNAERATOR = jnaerator-0.9.7.jar
   46: JNAERATORBASEURL = http://jnaerator.googlecode.com/files/
   47: #following libs are needed on Solaris
   48: #LDLIBS=-lsocket -lnsl -lresolv
   49: 
   50: # APIVERSION is used to build SONAME
   51: APIVERSION = 9
   52: 
   53: SRCS = igd_desc_parse.c miniupnpc.c minixml.c minisoap.c miniwget.c \
   54:        upnpc.c upnpcommands.c upnpreplyparse.c testminixml.c \
   55: 	   minixmlvalid.c testupnpreplyparse.c minissdpc.c \
   56: 	   upnperrors.c testigddescparse.c testminiwget.c \
   57:        connecthostport.c portlistingparse.c receivedata.c
   58: 
   59: LIBOBJS = miniwget.o minixml.o igd_desc_parse.o minisoap.o \
   60:           miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \
   61:           connecthostport.o portlistingparse.o receivedata.o
   62: 
   63: ifneq ($(OS), AmigaOS)
   64: CFLAGS := -fPIC $(CFLAGS)
   65: LIBOBJS := $(LIBOBJS) minissdpc.o
   66: endif
   67: 
   68: OBJS = $(patsubst %.c,%.o,$(SRCS))
   69: 
   70: # HEADERS to install
   71: HEADERS = miniupnpc.h miniwget.h upnpcommands.h igd_desc_parse.h \
   72:           upnpreplyparse.h upnperrors.h miniupnpctypes.h \
   73:           portlistingparse.h \
   74:           declspec.h
   75: 
   76: # library names
   77: LIBRARY = libminiupnpc.a
   78: ifeq ($(OS), Darwin)
   79:   SHAREDLIBRARY = libminiupnpc.dylib
   80:   SONAME = $(basename $(SHAREDLIBRARY)).$(APIVERSION).dylib
   81:   CFLAGS := -DMACOSX -D_DARWIN_C_SOURCE $(CFLAGS)
   82: else
   83: ifeq ($(OS), Linux)
   84:   SHAREDLIBRARY = libminiupnpc.so
   85:   SONAME = $(SHAREDLIBRARY).$(APIVERSION)
   86: endif
   87: ifeq ($(JARSUFFIX), win32)
   88:   SHAREDLIBRARY = miniupnpc.dll
   89: endif
   90: endif
   91: 
   92: EXECUTABLES = upnpc-static
   93: EXECUTABLES_ADDTESTS = testminixml minixmlvalid testupnpreplyparse \
   94: 			  testigddescparse testminiwget
   95: 
   96: TESTMINIXMLOBJS = minixml.o igd_desc_parse.o testminixml.o
   97: 
   98: TESTMINIWGETOBJS = miniwget.o testminiwget.o connecthostport.o receivedata.o
   99: 
  100: TESTUPNPREPLYPARSE = testupnpreplyparse.o minixml.o upnpreplyparse.o
  101: 
  102: TESTIGDDESCPARSE = testigddescparse.o igd_desc_parse.o minixml.o \
  103:                    miniupnpc.o miniwget.o upnpcommands.o upnpreplyparse.o \
  104:                    minisoap.o connecthostport.o receivedata.o \
  105:                    portlistingparse.o
  106: 
  107: ifneq ($(OS), AmigaOS)
  108: EXECUTABLES := $(EXECUTABLES) upnpc-shared
  109: TESTMINIWGETOBJS := $(TESTMINIWGETOBJS) minissdpc.o
  110: TESTIGDDESCPARSE := $(TESTIGDDESCPARSE) minissdpc.o
  111: endif
  112: 
  113: LIBDIR ?= lib
  114: # install directories
  115: INSTALLPREFIX ?= $(PREFIX)/usr
  116: INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc
  117: INSTALLDIRLIB = $(INSTALLPREFIX)/$(LIBDIR)
  118: INSTALLDIRBIN = $(INSTALLPREFIX)/bin
  119: INSTALLDIRMAN = $(INSTALLPREFIX)/share/man
  120: 
  121: FILESTOINSTALL = $(LIBRARY) $(EXECUTABLES)
  122: ifneq ($(OS), AmigaOS)
  123: FILESTOINSTALL := $(FILESTOINSTALL) $(SHAREDLIBRARY)
  124: endif
  125: 
  126: 
  127: .PHONY:	install clean depend all check test everything \
  128: 	installpythonmodule updateversion
  129: #	validateminixml validateminiwget
  130: 
  131: all:	$(LIBRARY) $(EXECUTABLES)
  132: 
  133: test:	check
  134: 
  135: check:	validateminixml validateminiwget
  136: 
  137: everything:	all $(EXECUTABLES_ADDTESTS)
  138: 
  139: pythonmodule:	$(LIBRARY) miniupnpcmodule.c setup.py
  140: 	python setup.py build
  141: 	touch $@
  142: 
  143: installpythonmodule:	pythonmodule
  144: 	python setup.py install
  145: 
  146: pythonmodule3:	$(LIBRARY) miniupnpcmodule.c setup.py
  147: 	python3 setup.py build
  148: 	touch $@
  149: 
  150: installpythonmodule3:	pythonmodule3
  151: 	python3 setup.py install
  152: 
  153: validateminixml:	minixmlvalid
  154: 	@echo "minixml validation test"
  155: 	./minixmlvalid
  156: 	touch $@
  157: 
  158: validateminiwget:	testminiwget minihttptestserver testminiwget.sh
  159: 	@echo "miniwget validation test"
  160: 	./testminiwget.sh
  161: 	touch $@
  162: 
  163: clean:
  164: 	$(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS) miniupnpcstrings.h
  165: 	# clean python stuff
  166: 	$(RM) pythonmodule pythonmodule3 validateminixml validateminiwget
  167: 	$(RM) -r build/ dist/
  168: 	#python setup.py clean
  169: 	# clean jnaerator stuff
  170: 	$(RM) _jnaerator.* java/miniupnpc_$(OS).jar
  171: 
  172: distclean: clean
  173: 	$(RM) $(JNAERATOR) java/*.jar java/*.class out.errors.txt
  174: 
  175: updateversion:	miniupnpc.h
  176: 	cp miniupnpc.h miniupnpc.h.bak
  177: 	sed 's/\(.*MINIUPNPC_API_VERSION\s\+\)[0-9]\+/\1$(APIVERSION)/' < miniupnpc.h.bak > miniupnpc.h
  178: 
  179: install:	updateversion $(FILESTOINSTALL)
  180: 	$(INSTALL) -d $(INSTALLDIRINC)
  181: 	$(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC)
  182: 	$(INSTALL) -d $(INSTALLDIRLIB)
  183: 	$(INSTALL) -m 644 $(LIBRARY) $(INSTALLDIRLIB)
  184: ifneq ($(OS), AmigaOS)
  185: 	$(INSTALL) -m 644 $(SHAREDLIBRARY) $(INSTALLDIRLIB)/$(SONAME)
  186: 	ln -fs $(SONAME) $(INSTALLDIRLIB)/$(SHAREDLIBRARY)
  187: endif
  188: 	$(INSTALL) -d $(INSTALLDIRBIN)
  189: ifeq ($(OS), AmigaOS)
  190: 	$(INSTALL) -m 755 upnpc-static $(INSTALLDIRBIN)/upnpc
  191: else
  192: 	$(INSTALL) -m 755 upnpc-shared $(INSTALLDIRBIN)/upnpc
  193: endif
  194: 	$(INSTALL) -m 755 external-ip.sh $(INSTALLDIRBIN)/external-ip
  195: ifneq ($(OS), AmigaOS)
  196: 	$(INSTALL) -d $(INSTALLDIRMAN)/man3
  197: 	$(INSTALL) man3/miniupnpc.3 $(INSTALLDIRMAN)/man3/miniupnpc.3
  198: endif
  199: 
  200: 
  201: cleaninstall:
  202: 	$(RM) -r $(INSTALLDIRINC)
  203: 	$(RM) $(INSTALLDIRLIB)/$(LIBRARY)
  204: 	$(RM) $(INSTALLDIRLIB)/$(SHAREDLIBRARY)
  205: 
  206: depend:
  207: 	makedepend -Y -- $(CFLAGS) -- $(SRCS) 2>/dev/null
  208: 
  209: $(LIBRARY):	$(LIBOBJS)
  210: 	$(AR) crs $@ $?
  211: 
  212: $(SHAREDLIBRARY):	$(LIBOBJS)
  213: ifeq ($(OS), Darwin)
  214: #	$(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(SONAME) -o $@ $^
  215: 	$(CC) -dynamiclib $(LDFLAGS) -Wl,-install_name,$(INSTALLDIRLIB)/$(SONAME) -o $@ $^
  216: else
  217: 	$(CC) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) -o $@ $^
  218: endif
  219: 
  220: upnpc-static:	upnpc.o $(LIBRARY) $(LDLIBS)
  221: 	$(CC) $(LDFLAGS) -o $@ $^
  222: 
  223: upnpc-shared:	upnpc.o $(SHAREDLIBRARY) $(LDLIBS)
  224: 	$(CC) $(LDFLAGS) -o $@ $^
  225: 
  226: testminixml:	$(TESTMINIXMLOBJS)
  227: 
  228: testminiwget:	$(TESTMINIWGETOBJS)
  229: 
  230: minixmlvalid:	minixml.o minixmlvalid.o
  231: 
  232: testupnpreplyparse:	$(TESTUPNPREPLYPARSE)
  233: 
  234: testigddescparse:	$(TESTIGDDESCPARSE)
  235: 
  236: miniupnpcstrings.h:	miniupnpcstrings.h.in updateminiupnpcstrings.sh VERSION
  237: 	$(SH) updateminiupnpcstrings.sh
  238: 
  239: jnaerator-0.9.8-shaded.jar:
  240: 	wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@
  241: 
  242: jnaerator-0.9.7.jar:
  243: 	wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@
  244: 
  245: jnaerator-0.9.3.jar:
  246: 	wget $(JNAERATORBASEURL)/$@ || curl -o $@ $(JNAERATORBASEURL)/$@
  247: 
  248: jar: $(SHAREDLIBRARY)  $(JNAERATOR)
  249: 	$(JAVA) -jar $(JNAERATOR) -library miniupnpc \
  250: 	miniupnpc.h declspec.h upnpcommands.h upnpreplyparse.h \
  251: 	igd_desc_parse.h miniwget.h upnperrors.h $(SHAREDLIBRARY) \
  252: 	-package fr.free.miniupnp -o . -jar java/miniupnpc_$(JARSUFFIX).jar -v
  253: 
  254: mvn_install:
  255: 	mvn install:install-file -Dfile=java/miniupnpc_$(JARSUFFIX).jar \
  256: 	 -DgroupId=com.github \
  257: 	 -DartifactId=miniupnp \
  258: 	 -Dversion=$(VERSION) \
  259: 	 -Dpackaging=jar \
  260: 	 -Dclassifier=$(JARSUFFIX) \
  261: 	 -DgeneratePom=true \
  262: 	 -DcreateChecksum=true
  263: 
  264: # make .deb packages
  265: deb: /usr/share/pyshared/stdeb all
  266: 	(python setup.py --command-packages=stdeb.command bdist_deb)
  267: 
  268: # install .deb packages
  269: ideb:
  270: 	(sudo dpkg -i deb_dist/*.deb)
  271: 
  272: /usr/share/pyshared/stdeb: /usr/share/doc/python-all-dev
  273: 	(sudo apt-get install python-stdeb)
  274: 
  275: /usr/share/doc/python-all-dev:
  276: 	(sudo apt-get install python-all-dev)
  277: 
  278: minihttptestserver:	minihttptestserver.o
  279: 
  280: # DO NOT DELETE THIS LINE -- make depend depends on it.
  281: 
  282: igd_desc_parse.o: igd_desc_parse.h
  283: miniupnpc.o: miniupnpc.h declspec.h igd_desc_parse.h minissdpc.h miniwget.h
  284: miniupnpc.o: minisoap.h minixml.h upnpcommands.h upnpreplyparse.h
  285: miniupnpc.o: portlistingparse.h miniupnpctypes.h connecthostport.h
  286: miniupnpc.o: receivedata.h
  287: minixml.o: minixml.h
  288: minisoap.o: minisoap.h miniupnpcstrings.h
  289: miniwget.o: miniupnpcstrings.h miniwget.h declspec.h connecthostport.h
  290: miniwget.o: receivedata.h
  291: upnpc.o: miniwget.h declspec.h miniupnpc.h igd_desc_parse.h upnpcommands.h
  292: upnpc.o: upnpreplyparse.h portlistingparse.h miniupnpctypes.h upnperrors.h
  293: upnpcommands.o: upnpcommands.h upnpreplyparse.h portlistingparse.h declspec.h
  294: upnpcommands.o: miniupnpctypes.h miniupnpc.h igd_desc_parse.h
  295: upnpreplyparse.o: upnpreplyparse.h minixml.h
  296: testminixml.o: minixml.h igd_desc_parse.h
  297: minixmlvalid.o: minixml.h
  298: testupnpreplyparse.o: upnpreplyparse.h
  299: minissdpc.o: minissdpc.h miniupnpc.h declspec.h igd_desc_parse.h codelength.h
  300: upnperrors.o: upnperrors.h declspec.h upnpcommands.h upnpreplyparse.h
  301: upnperrors.o: portlistingparse.h miniupnpctypes.h miniupnpc.h
  302: upnperrors.o: igd_desc_parse.h
  303: testigddescparse.o: igd_desc_parse.h minixml.h miniupnpc.h declspec.h
  304: testminiwget.o: miniwget.h declspec.h
  305: connecthostport.o: connecthostport.h
  306: receivedata.o: receivedata.h

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>