1# $Id: Makefile.mingw,v 1.19 2014/06/10 09:48:11 nanard Exp $
2# Miniupnp project.
3# http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4# (c) 2005-2014 Thomas Bernard
5# This Makefile is made for MinGW
6#
7CC = gcc
8#CFLAGS = -Wall -g -DDEBUG -D_WIN32_WINNT=0X501
9CFLAGS = -Wall -Os -DNDEBUG -D_WIN32_WINNT=0X501
10LDLIBS = -lws2_32 -liphlpapi
11# -lwsock32
12# -liphlpapi is needed for GetBestRoute() and GetIpAddrTable()
13PYTHON=\utils\python25\python
14OBJS=miniwget.o minixml.o igd_desc_parse.o minisoap.o \
15     miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \
16     connecthostport.o portlistingparse.o receivedata.o
17OBJSDLL=$(addprefix dll/, $(OBJS))
18
19all:	init upnpc-static upnpc-shared testminixml libminiupnpc.a miniupnpc.dll
20
21init:
22	mkdir dll
23	echo init > init
24
25clean:
26	del upnpc testminixml *.o
27	del dll\*.o
28	del *.exe
29	del miniupnpc.dll
30	del libminiupnpc.a
31
32libminiupnpc.a:	$(OBJS)
33	$(AR) cr $@ $?
34
35pythonmodule:	libminiupnpc.a
36	$(PYTHON) setupmingw32.py build --compiler=mingw32
37	$(PYTHON) setupmingw32.py install --skip-build
38
39miniupnpc.dll:	libminiupnpc.a $(OBJSDLL)
40	dllwrap -k --driver-name gcc \
41	--def miniupnpc.def \
42	--output-def miniupnpc.dll.def \
43	--implib miniupnpc.lib -o $@ \
44	$(OBJSDLL) $(LDLIBS)
45
46miniupnpc.lib:	miniupnpc.dll
47	echo $@ generated with $<
48
49dll/upnpc.o:	upnpc.o
50	echo $@ generated with $<
51
52.c.o:
53	$(CC) $(CFLAGS) -DMINIUPNP_STATICLIB -c -o $@ $<
54	$(CC) $(CFLAGS) -DMINIUPNP_EXPORTS -c -o dll/$@ $<
55
56upnpc.o:
57	$(CC) $(CFLAGS) -DMINIUPNP_STATICLIB -c -o $@ $<
58	$(CC) $(CFLAGS) -c -o dll/$@ $<
59
60# --enable-stdcall-fixup
61upnpc-static:	upnpc.o libminiupnpc.a
62	$(CC) -o $@ $^ $(LDLIBS)
63
64upnpc-shared:	dll/upnpc.o miniupnpc.lib
65	$(CC) -o $@ $^ $(LDLIBS)
66
67wingenminiupnpcstrings:	wingenminiupnpcstrings.o
68
69wingenminiupnpcstrings.o:	wingenminiupnpcstrings.c
70
71miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings
72	wingenminiupnpcstrings $< $@
73
74minixml.o:	minixml.c minixml.h miniupnpcstrings.h
75
76upnpc.o:	upnpc.c miniwget.h minisoap.h miniupnpc.h igd_desc_parse.h upnpreplyparse.h upnpcommands.h upnperrors.h
77
78miniwget.o:	miniwget.c miniwget.h miniupnpcstrings.h connecthostport.h
79
80minisoap.o:	minisoap.c minisoap.h miniupnpcstrings.h
81
82miniupnpc.o:	miniupnpc.c miniupnpc.h minisoap.h miniwget.h minixml.h
83
84igd_desc_parse.o:	igd_desc_parse.c igd_desc_parse.h
85
86testminixml:	minixml.o igd_desc_parse.o testminixml.c
87
88upnpreplyparse.o:	upnpreplyparse.c upnpreplyparse.h minixml.h
89
90upnpcommands.o:	upnpcommands.c upnpcommands.h upnpreplyparse.h miniupnpc.h portlistingparse.h
91
92