Updated Visual C++ makefile.
[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
45
46 DEBUGFLAGS=/Os
47 CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
48 HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
49     script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
50
51 OBJS= \
52     obj\util.obj \
53     obj\script.obj \
54     obj\db.obj \
55     obj\net.obj \
56     obj\irc.obj \
57     obj\main.obj \
58     obj\rpc.obj \
59     obj\init.obj
60
61 CRYPTOPP_OBJS= \
62     cryptopp\obj\sha.obj \
63     cryptopp\obj\cpu.obj
64
65 RC=../share
66
67
68 all: bitcoin.exe
69
70
71 .cpp{obj}.obj:
72     cl $(CFLAGS) /DGUI /Fo$@ %s
73
74 obj\util.obj: $(HEADERS)
75
76 obj\script.obj: $(HEADERS)
77
78 obj\db.obj: $(HEADERS)
79
80 obj\net.obj: $(HEADERS)
81
82 obj\irc.obj: $(HEADERS)
83
84 obj\main.obj: $(HEADERS)
85
86 obj\rpc.obj: $(HEADERS)
87
88 obj\init.obj: $(HEADERS)
89
90 obj\ui.obj: $(HEADERS)
91
92 obj\uibase.obj: $(HEADERS)
93
94 cryptopp\obj\sha.obj: cryptopp\sha.cpp
95     cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
96
97 cryptopp\obj\cpu.obj: cryptopp\cpu.cpp
98     cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
99
100 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
101     rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
102
103 bitcoin.exe: $(OBJS) $(CRYPTOPP_OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
104     link /nologo /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
105
106         
107 .cpp{obj\nogui}.obj:
108     cl $(CFLAGS) /Fo$@ %s
109
110 obj\nogui\util.obj: $(HEADERS)
111
112 obj\nogui\script.obj: $(HEADERS)
113
114 obj\nogui\db.obj: $(HEADERS)
115
116 obj\nogui\net.obj: $(HEADERS)
117
118 obj\nogui\irc.obj: $(HEADERS)
119
120 obj\nogui\main.obj: $(HEADERS)
121
122 obj\nogui\rpc.obj: $(HEADERS)
123
124 obj\nogui\init.obj: $(HEADERS)
125
126 bitcoind.exe: $(OBJS:obj\=obj\nogui\) $(CRYPTOPP_OBJS) obj\ui.res
127     link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)
128
129
130 clean:
131     -del /Q obj\*
132     -del /Q obj\nogui\*
133     -del /Q cryptopp\obj\*
134     -del /Q *.ilk
135     -del /Q *.pdb