118 lines
2.9 KiB
Makefile
118 lines
2.9 KiB
Makefile
# $Id: Makefile,v 1.12 2017/05/26 11:01:37 nanard Exp $
|
|
# MiniUPnP Project
|
|
# http://miniupnp.free.fr/
|
|
# (c) 2005-2017 Thomas Bernard
|
|
# to install use :
|
|
# $ PREFIX=/tmp/dummylocation make install
|
|
# or
|
|
# $ INSTALLPREFIX=/usr/local make install
|
|
# or
|
|
# make install (will go to /usr/bin, /usr/lib, etc...)
|
|
OS = $(shell uname -s)
|
|
|
|
CC ?= gcc
|
|
#AR = gar
|
|
CFLAGS = -O0 -g -DDEBUG
|
|
#CFLAGS = -O
|
|
CFLAGS += -fPIC
|
|
CFLAGS += -ansi
|
|
CFLAGS += -Wall -W
|
|
CFLAGS += -D_BSD_SOURCE
|
|
ifneq ($(OS), FreeBSD)
|
|
ifneq ($(OS), Darwin)
|
|
#CFLAGS += -D_POSIX_C_SOURCE=200112L
|
|
CFLAGS += -D_XOPEN_SOURCE=600
|
|
endif
|
|
endif
|
|
CFLAGS += -DUPNPC_USE_SELECT
|
|
INSTALL = install
|
|
|
|
#following libs are needed on Solaris
|
|
ifeq ($(OS), SunOS)
|
|
LDLIBS += -lsocket -lnsl -lresolv
|
|
CFLAGS += -D__EXTENSIONS__
|
|
endif
|
|
|
|
# APIVERSION is used to build SONAME
|
|
APIVERSION = 0
|
|
|
|
SRCS = miniupnpc-async.c parsessdpreply.c \
|
|
upnputils.c igd_desc_parse.c minixml.c \
|
|
upnpreplyparse.c \
|
|
testasync.c
|
|
|
|
LIBOBJS = miniupnpc-async.o parsessdpreply.o \
|
|
upnputils.o igd_desc_parse.o minixml.o \
|
|
upnpreplyparse.o
|
|
|
|
OBJS = $(patsubst %.c,%.o,$(SRCS))
|
|
|
|
# HEADERS to install
|
|
HEADERS = miniupnpc-async.h
|
|
LIBRARY = libminiupnpc-async.a
|
|
SHAREDLIBRARY = libminiupnpc-async.so
|
|
SONAME = $(SHAREDLIBRARY).$(APIVERSION)
|
|
EXECUTABLES = testasync
|
|
|
|
INSTALLPREFIX ?= $(PREFIX)/usr
|
|
INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc
|
|
INSTALLDIRLIB = $(INSTALLPREFIX)/lib
|
|
INSTALLDIRBIN = $(INSTALLPREFIX)/bin
|
|
|
|
.PHONY: install clean depend all installpythonmodule
|
|
|
|
all: $(LIBRARY) $(EXECUTABLES)
|
|
|
|
pythonmodule: $(LIBRARY) miniupnpcmodule.c setup.py
|
|
python setup.py build
|
|
touch $@
|
|
|
|
installpythonmodule: pythonmodule
|
|
python setup.py install
|
|
|
|
clean:
|
|
$(RM) $(LIBRARY) $(SHAREDLIBRARY) $(EXECUTABLES) $(OBJS)
|
|
# clean python stuff
|
|
$(RM) pythonmodule
|
|
$(RM) -r build/ dist/
|
|
#python setup.py clean
|
|
|
|
install: $(LIBRARY) $(SHAREDLIBRARY)
|
|
$(INSTALL) -d $(INSTALLDIRINC)
|
|
$(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC)
|
|
$(INSTALL) -d $(INSTALLDIRLIB)
|
|
$(INSTALL) -m 644 $(LIBRARY) $(INSTALLDIRLIB)
|
|
$(INSTALL) -m 644 $(SHAREDLIBRARY) $(INSTALLDIRLIB)/$(SONAME)
|
|
$(INSTALL) -d $(INSTALLDIRBIN)
|
|
$(INSTALL) -m 755 $(EXECUTABLES) $(INSTALLDIRBIN)
|
|
ln -fs $(SONAME) $(INSTALLDIRLIB)/$(SHAREDLIBRARY)
|
|
|
|
cleaninstall:
|
|
$(RM) -r $(INSTALLDIRINC)
|
|
$(RM) $(INSTALLDIRLIB)/$(LIBRARY)
|
|
$(RM) $(INSTALLDIRLIB)/$(SHAREDLIBRARY)
|
|
|
|
depend:
|
|
makedepend -Y -- $(CFLAGS) -- $(SRCS) 2>/dev/null
|
|
|
|
$(LIBRARY): $(LIBOBJS)
|
|
$(AR) crs $@ $?
|
|
|
|
$(SHAREDLIBRARY): $(LIBOBJS)
|
|
$(CC) -shared -Wl,-soname,$(SONAME) -o $@ $^
|
|
|
|
upnpc-static: upnpc.o $(LIBRARY)
|
|
$(CC) -o $@ $^
|
|
|
|
upnpc-shared: upnpc.o $(SHAREDLIBRARY)
|
|
$(CC) -o $@ $^
|
|
|
|
testasync: testasync.o libminiupnpc-async.a
|
|
#testasync: testasync.o -lminiupnpc-async
|
|
|
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
|
|
|
miniupnpc-async.o: miniupnpc-async.h declspec.h parsessdpreply.h upnputils.h
|
|
parsessdpreply.o: parsessdpreply.h
|
|
testasync.o: miniupnpc-async.h declspec.h
|