Annotation of embedaddon/miniupnpd/miniupnpc/Makefile.mingw, revision 1.1

1.1     ! misho       1: # $Id: Makefile.mingw,v 1.21 2015/09/18 12:45:16 nanard Exp $
        !             2: # Miniupnp project.
        !             3: # http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
        !             4: # (c) 2005-2020 Thomas Bernard
        !             5: # This Makefile is made for MinGW
        !             6: #
        !             7: # To cross compile on a *nix machine :
        !             8: # make -f Makefile.mingw DLLWRAP=mingw32-dllwrap CC=mingw32-gcc AR=mingw32-ar WINDRES=mingw32-windres
        !             9: #
        !            10: SRCDIR = src
        !            11: INCDIR = include
        !            12: 
        !            13: CC ?= gcc
        !            14: SETUP_COMPILER_FLAG?=
        !            15: DLLWRAP = dllwrap
        !            16: WINDRES = windres
        !            17: SH = /bin/sh
        !            18: ZIP = zip
        !            19: ifeq ($(OS),Windows_NT)
        !            20: RM = del
        !            21: else
        !            22: RM = rm -f
        !            23: endif
        !            24: 
        !            25: CFLAGS ?= -Os
        !            26: CFLAGS += -Wall
        !            27: CFLAGS += -W -Wstrict-prototypes
        !            28: 
        !            29: CPPFLAGS += -DNDEBUG -D_WIN32_WINNT=0x501
        !            30: CPPFLAGS += -Iinclude
        !            31: CPPFLAGS += -I.
        !            32: 
        !            33: # -liphlpapi is needed for GetBestRoute() and GetIpAddrTable()
        !            34: LDLIBS = -lws2_32 -liphlpapi
        !            35: 
        !            36: PYTHON=\utils\python25\python
        !            37: OBJS=miniwget.o minixml.o igd_desc_parse.o minisoap.o \
        !            38:      minissdpc.o \
        !            39:      miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \
        !            40:      connecthostport.o portlistingparse.o receivedata.o \
        !            41:      upnpdev.o addr_is_reserved.o
        !            42: OBJSDLL=$(addprefix dll-, $(OBJS)) winres.o
        !            43: BINARIES=upnpc-static.exe upnpc-shared.exe \
        !            44:          listdevices-static.exe listdevices-shared.exe \
        !            45:          miniupnpc.dll libminiupnpc.a \
        !            46:          testminixml.exe
        !            47: ifneq ($(GITHUB_SHA),)
        !            48: COMMITREF=$(GITHUB_SHA)
        !            49: else
        !            50: ifneq ($(CI_COMMIT_SHORT_SHA),)
        !            51: COMMITREF=$(CI_COMMIT_SHORT_SHA)
        !            52: else
        !            53: COMMITREF=$(shell git rev-parse --short HEAD)
        !            54: endif
        !            55: endif
        !            56: DISTFILE:=$(shell echo "miniupnpc-bin-win32-`cat VERSION`-$(COMMITREF).zip")
        !            57: 
        !            58: LIBDIR ?= lib
        !            59: # install directories
        !            60: ifeq ($(strip $(PREFIX)),)
        !            61: INSTALLPREFIX ?= /usr
        !            62: else
        !            63: INSTALLPREFIX ?= $(PREFIX)
        !            64: endif
        !            65: 
        !            66: .PHONY:        all dist clean
        !            67: 
        !            68: all:   $(BINARIES)
        !            69: 
        !            70: dist:  $(DISTFILE)
        !            71: 
        !            72: clean:
        !            73:        $(RM) miniupnpcstrings.h
        !            74:        $(RM) *.o
        !            75:        $(RM) *.exe
        !            76:        $(RM) miniupnpc.dll miniupnpc.lib miniupnpc.dll.def
        !            77:        $(RM) libminiupnpc.a
        !            78:        $(RM) $(DISTFILE)
        !            79: 
        !            80: $(DISTFILE):   $(BINARIES)
        !            81:        $(ZIP) $@ *.exe *.dll *.lib *.def *.a LICENSE README Changelog.txt
        !            82: 
        !            83: libminiupnpc.a:        $(OBJS)
        !            84:        $(AR) cr $@ $?
        !            85: 
        !            86: pythonmodule:  libminiupnpc.a
        !            87:        $(PYTHON) setupmingw32.py build $(SETUP_COMPILER_FLAG)
        !            88:        $(PYTHON) setupmingw32.py install --skip-build
        !            89:        $(PYTHON) setupmingw32.py bdist_wheel --skip-build
        !            90: 
        !            91: miniupnpc.dll: miniupnpc.def $(OBJSDLL)
        !            92:        $(DLLWRAP) -k --driver-name $(CC) \
        !            93:        --def miniupnpc.def \
        !            94:        --output-def miniupnpc.dll.def \
        !            95:        --implib miniupnpc.lib -o $@ \
        !            96:        $(OBJSDLL) $(LDLIBS)
        !            97: 
        !            98: miniupnpc.lib: miniupnpc.dll
        !            99: 
        !           100: %.o:   $(SRCDIR)/%.c
        !           101:        $(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_STATICLIB -c -o $@ $<
        !           102: 
        !           103: dll-%.o:       $(SRCDIR)/%.c
        !           104:        $(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_EXPORTS -c -o $@ $<
        !           105: 
        !           106: %-shared.o:    $(SRCDIR)/%.c
        !           107:        $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
        !           108: 
        !           109: # --enable-stdcall-fixup
        !           110: %-static.exe:  %.o libminiupnpc.a
        !           111:        $(CC) -static -o $@ $^ $(LDLIBS)
        !           112: 
        !           113: %-shared.exe:  %-shared.o miniupnpc.lib
        !           114:        $(CC) -o $@ $^ $(LDLIBS)
        !           115: 
        !           116: # To make miniupnpcstrings.h from miniupnpcstrings.h.in we either
        !           117: # use a custom executable (if running make under windows) or use
        !           118: # sed (if cross compiling from another platform).
        !           119: ifeq ($(OS),Windows_NT)
        !           120: wingenminiupnpcstrings.exe:    wingenminiupnpcstrings.c
        !           121:        $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^
        !           122: 
        !           123: miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings.exe VERSION
        !           124:        .\wingenminiupnpcstrings.exe $< $@ rc_version.h
        !           125: 
        !           126: rc_version.h:  miniupnpcstrings.h
        !           127: else
        !           128: miniupnpcstrings.h:    miniupnpcstrings.h.in VERSION
        !           129:        sed 's|OS_STRING ".*"|OS_STRING "Windows/Mingw32"|' $< | \
        !           130:        sed 's|MINIUPNPC_VERSION_STRING ".*"|MINIUPNPC_VERSION_STRING "$(shell cat VERSION)"|' > $@
        !           131: 
        !           132: rc_version.h:  VERSION
        !           133:        echo "#define LIBMINIUPNPC_DOTTED_VERSION \"$(shell cat VERSION)\"" > $@.tmp
        !           134:        echo "#define LIBMINIUPNPC_MAJOR_VERSION $(shell cat VERSION|cut -d. -f1)" >> $@.tmp
        !           135:        echo "#define LIBMINIUPNPC_MINOR_VERSION $(shell cat VERSION|cut -d. -f2)" >> $@.tmp
        !           136:        echo "#define LIBMINIUPNPC_MICRO_VERSION $(shell cat VERSION|cut -d. -f3)" >> $@.tmp
        !           137:        mv $@.tmp $@
        !           138: endif
        !           139: 
        !           140: miniupnpc.pc:  VERSION
        !           141:        $(RM) $@
        !           142:        echo "prefix=$(INSTALLPREFIX)" >> $@
        !           143:        echo "exec_prefix=\$${prefix}" >> $@
        !           144:        echo "libdir=\$${exec_prefix}/$(LIBDIR)" >> $@
        !           145:        echo "includedir=\$${prefix}/include" >> $@
        !           146:        echo "" >> $@
        !           147:        echo "Name: miniUPnPc" >> $@
        !           148:        echo "Description: UPnP IGD client lightweight library" >> $@
        !           149:        echo "Version: $(shell cat VERSION)" >> $@
        !           150:        echo "Libs: -L\$${libdir} -lminiupnpc" >> $@
        !           151:        echo "Cflags: -I\$${includedir}" >> $@
        !           152: 
        !           153: winres.o:      miniupnpc.rc rc_version.h
        !           154:        $(WINDRES) -D INTERNAL_NAME=\\\"miniupnpc.dll\\0\\\" -i $< -o $@
        !           155: 
        !           156: testminixml.exe:       testminixml.o minixml.o igd_desc_parse.o
        !           157:        $(CC) -static -o $@ $^
        !           158: 
        !           159: minixml.o:     $(SRCDIR)/minixml.c $(SRCDIR)/minixml.h
        !           160: 
        !           161: upnpc.o:       include/miniwget.h $(SRCDIR)/minisoap.h include/miniupnpc.h include/igd_desc_parse.h
        !           162: upnpc.o:       include/upnpreplyparse.h include/upnpcommands.h include/upnperrors.h miniupnpcstrings.h
        !           163: 
        !           164: miniwget.o:    $(SRCDIR)/miniwget.c include/miniwget.h miniupnpcstrings.h $(SRCDIR)/connecthostport.h
        !           165: 
        !           166: minisoap.o:    $(SRCDIR)/minisoap.c $(SRCDIR)/minisoap.h miniupnpcstrings.h
        !           167: 
        !           168: miniupnpc.o:   $(SRCDIR)/miniupnpc.c include/miniupnpc.h $(SRCDIR)/minisoap.h \
        !           169:        include/miniwget.h $(SRCDIR)/minixml.h $(SRCDIR)/addr_is_reserved.h
        !           170: 
        !           171: igd_desc_parse.o:      $(SRCDIR)/igd_desc_parse.c include/igd_desc_parse.h
        !           172: 
        !           173: upnpreplyparse.o:      $(SRCDIR)/upnpreplyparse.c include/upnpreplyparse.h $(SRCDIR)/minixml.h
        !           174: 
        !           175: upnpcommands.o:        $(SRCDIR)/upnpcommands.c include/upnpcommands.h include/upnpreplyparse.h \
        !           176:        include/miniupnpc.h include/portlistingparse.h
        !           177: 
        !           178: minissdpc.o:   $(SRCDIR)/minissdpc.c $(SRCDIR)/minissdpc.h $(SRCDIR)/receivedata.h
        !           179: 
        !           180: upnpdev.o:     $(SRCDIR)/upnpdev.c include/upnpdev.h
        !           181: 

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