5d283793cb5de60f6db022faff3c461904097cb6
[novacoin.git] / src / makefile.vc
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
6 INCLUDEPATHS= \
7   /I"/boost" \
8   /I"/db/build_windows" \
9   /I"/openssl/include" \
10   /I"/wxwidgets/lib/vc_lib/mswu" \
11   /I"/wxwidgets/include" /
12   /I"/miniupnpc"
13
14 LIBPATHS= \
15   /LIBPATH:"/boost/stage/lib" \
16   /LIBPATH:"/db/build_windows/Release" \
17   /LIBPATH:"/openssl/lib" \
18   /LIBPATH:"/wxwidgets/lib/vc_lib" \
19   /LIBPATH:"/miniupnpc/msvc/Release" \
20   /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib \
21   /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib \
22   /NODEFAULTLIB:msvcrtd.lib
23
24 WXLIBS=wxmsw29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib
25
26 USE_UPNP=0
27
28 DEFS=/DWIN32 /D__WXMSW__ /D_WINDOWS /DNOPCH /DNOMINMAX
29
30 LIBS= \
31   libboost_system-vc100-mt.lib \
32   libboost_filesystem-vc100-mt.lib \
33   libboost_program_options-vc100-mt.lib \
34   libboost_thread-vc100-mt.lib \
35   libdb47s.lib \
36   libeay32.lib
37
38 !IFDEF USE_UPNP
39 LIBS=$(LIBS) miniupnpc.lib
40 DEFS=$(DEFS) /DUSE_UPNP=$(USE_UPNP)
41 !ENDIF
42
43 LIBS=$(LIBS) \
44   kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ws2_32.lib shlwapi.lib iphlpapi.lib
45
46 DEBUGFLAGS=/Os
47 CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
48 HEADERS = \
49     base58.h \
50     bignum.h \
51     crypter.h \
52     db.h \
53     headers.h \
54     init.h \
55     irc.h \
56     key.h \
57     keystore.h \
58     main.h \
59     net.h \
60     noui.h \
61     protocol.h \
62     bitcoinrpc.h \
63     script.h \
64     serialize.h \
65     strlcpy.h \
66     ui.h \
67     uibase.h \
68     uint256.h \
69     util.h \
70     wallet.h
71
72 OBJS= \
73     obj\crypter.o \
74     obj\db.o \
75     obj\init.o \
76     obj\irc.o \
77     obj\keystore.o \
78     obj\main.o \
79     obj\net.o \
80     obj\rpc.o \
81     obj\protocol.o \
82     obj\script.o \
83     obj\util.o \
84     obj\wallet.o \
85     cryptopp\obj\sha.o \
86     cryptopp\obj\cpu.o
87
88 CRYPTOPP_OBJS= \
89     cryptopp\obj\sha.obj \
90     cryptopp\obj\cpu.obj
91
92 RC=../share
93
94
95 all: bitcoin.exe
96
97
98 .cpp{obj}.obj:
99     cl $(CFLAGS) /DGUI /Fo$@ %s
100
101 obj\util.obj: $(HEADERS)
102
103 obj\script.obj: $(HEADERS)
104
105 obj\db.obj: $(HEADERS)
106
107 obj\net.obj: $(HEADERS)
108
109 obj\irc.obj: $(HEADERS)
110
111 obj\keystore.obj: $(HEADERS)
112
113 obj\main.obj: $(HEADERS)
114
115 obj\wallet.obj: $(HEADERS)
116
117 obj\rpc.obj: $(HEADERS)
118
119 obj\init.obj: $(HEADERS)
120
121 obj\crypter.obj: $(HEADERS)
122
123 obj\ui.obj: $(HEADERS)
124
125 obj\uibase.obj: $(HEADERS)
126
127 cryptopp\obj\sha.obj: cryptopp\sha.cpp
128     cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
129
130 cryptopp\obj\cpu.obj: cryptopp\cpu.cpp
131     cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
132
133 obj\ui.res: $(RC)/ui.rc $(RC)/pixmaps/bitcoin.ico $(RC)/pixmaps/check.ico $(RC)/pixmaps/send16.bmp $(RC)/pixmaps/send16mask.bmp $(RC)/pixmaps/send16masknoshadow.bmp $(RC)/pixmaps/send20.bmp $(RC)/pixmaps/send20mask.bmp $(RC)/pixmaps/addressbook16.bmp $(RC)/pixmaps/addressbook16mask.bmp $(RC)/pixmaps/addressbook20.bmp $(RC)/pixmaps/addressbook20mask.bmp
134     rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
135
136 bitcoin.exe: $(OBJS) $(CRYPTOPP_OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
137     link /nologo /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
138
139         
140 .cpp{obj\nogui}.obj:
141     cl $(CFLAGS) /Fo$@ %s
142
143 obj\nogui\util.obj: $(HEADERS)
144
145 obj\nogui\script.obj: $(HEADERS)
146
147 obj\nogui\db.obj: $(HEADERS)
148
149 obj\nogui\net.obj: $(HEADERS)
150
151 obj\nogui\irc.obj: $(HEADERS)
152
153 obj\nogui\keystore.obj: $(HEADERS)
154
155 obj\nogui\main.obj: $(HEADERS)
156
157 obj\nogui\wallet.obj: $(HEADERS)
158
159 obj\nogui\rpc.obj: $(HEADERS)
160
161 obj\nogui\init.obj: $(HEADERS)
162
163 bitcoind.exe: $(OBJS:obj\=obj\nogui\) $(CRYPTOPP_OBJS) obj\ui.res
164     link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)
165
166
167 clean:
168     -del /Q obj\*
169     -del /Q obj\nogui\*
170     -del /Q cryptopp\obj\*
171     -del /Q *.ilk
172     -del /Q *.pdb