Make UPnP default on Bitcoin but not on Bitcoind.
[novacoin.git] / src / makefile.mingw
1 # Copyright (c) 2009-2010 Satoshi Nakamoto
2 # Distributed under the MIT/X11 software license, see the accompanying
3 # file license.txt or http://www.opensource.org/licenses/mit-license.php.
4
5 INCLUDEPATHS= \
6  -I"C:\boost-1.43.0-mgw" \
7  -I"C:\db-4.7.25.NC-mgw\build_unix" \
8  -I"C:\openssl-1.0.0d-mgw\include" \
9  -I"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib\mswud" \
10  -I"C:\wxWidgets-2.9.1-mgw\include"
11
12 LIBPATHS= \
13  -L"C:\boost-1.43.0-mgw\stage\lib" \
14  -L"C:\db-4.7.25.NC-mgw\build_unix" \
15  -L"C:\openssl-1.0.0d-mgw" \
16  -L"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib"
17
18 WXLIBS= \
19  -l wxmsw29ud_html -l wxmsw29ud_core -l wxmsw29ud_adv -l wxbase29ud -l wxtiffd -l wxjpegd -l wxpngd -l wxzlibd
20
21 LIBS= \
22  -l boost_system-mgw45-mt-s-1_43 \
23  -l boost_filesystem-mgw45-mt-s-1_43 \
24  -l boost_program_options-mgw45-mt-s-1_43 \
25  -l boost_thread-mgw45-mt-s-1_43 \
26  -l db_cxx \
27  -l ssl \
28  -l crypto
29
30 DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH -DUSE_SSL
31 DEBUGFLAGS=-g -D__WXDEBUG__
32 CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
33 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
34     script.h db.h net.h irc.h keystore.h main.h wallet.h rpc.h uibase.h ui.h noui.h init.h
35
36
37 bitcoin.exe: USE_UPNP:=1
38         ifdef USE_UPNP
39                 INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
40                 LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
41                 LIBS += -l miniupnpc -l iphlpapi
42                 DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
43         endif
44
45 bitcoind.exe: USE_UPNP:=0
46         ifdef USE_UPNP
47                 INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
48                 LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
49                 LIBS += -l miniupnpc -l iphlpapi
50                 DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
51         endif
52
53 LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
54
55 OBJS= \
56     obj/util.o \
57     obj/script.o \
58     obj/db.o \
59     obj/net.o \
60     obj/irc.o \
61     obj/keystore.o \
62     obj/main.o \
63     obj/wallet.o \
64     obj/rpc.o \
65     obj/init.o \
66     cryptopp/obj/sha.o \
67     cryptopp/obj/cpu.o
68
69
70 all: bitcoin.exe
71
72
73 obj/%.o: %.cpp $(HEADERS)
74         g++ -c $(CFLAGS) -DGUI -o $@ $<
75
76 cryptopp/obj/%.o: cryptopp/%.cpp
77         g++ -c $(CFLAGS) -O3 -DCRYPTOPP_X86_ASM_AVAILABLE -o $@ $<
78
79 obj/ui_res.o: ../share/ui.rc  ../share/pixmaps/bitcoin.ico ../share/pixmaps/check.ico ../share/pixmaps/send16.bmp ../share/pixmaps/send16mask.bmp ../share/pixmaps/send16masknoshadow.bmp ../share/pixmaps/send20.bmp ../share/pixmaps/send20mask.bmp ../share/pixmaps/addressbook16.bmp ../share/pixmaps/addressbook16mask.bmp ../share/pixmaps/addressbook20.bmp ../share/pixmaps/addressbook20mask.bmp
80         windres $(DEFS) $(INCLUDEPATHS) -o $@ -i $<
81
82 bitcoin.exe: $(OBJS) obj/ui.o obj/uibase.o obj/ui_res.o
83         g++ $(CFLAGS) -mwindows -Wl,--subsystem,windows -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
84
85
86 obj/nogui/%.o: %.cpp $(HEADERS)
87         g++ -c $(CFLAGS) -o $@ $<
88
89 bitcoind.exe: $(OBJS:obj/%=obj/nogui/%) obj/ui_res.o
90         g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
91
92 obj/test/%.o: obj/test/%.cpp $(HEADERS)
93         g++ -c $(CFLAGS) -o $@ $<
94
95 test_bitcoin: obj/test/test_bitcoin.o
96         g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
97
98 clean:
99         -del /Q bitcoin bitcoind test_bitcoin
100         -del /Q obj\*
101         -del /Q obj\nogui\*
102         -del /Q obj\test\*
103         -del /Q cryptopp\obj\*
104         -del /Q test\*.o
105         -del /Q headers.h.gch