Added .gitignore, which prevents 'bitcoin' and 'bitcoind' from showing up in git.
[novacoin.git] / build-msw.txt
1 Copyright (c) 2009-2011 Bitcoin Developers
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 This product includes software developed by the OpenSSL Project for use in
5 the OpenSSL Toolkit (http://www.openssl.org/).  This product includes
6 cryptographic software written by Eric Young (eay@cryptsoft.com).
7
8
9 WINDOWS BUILD NOTES
10 ===================
11
12 Compilers Supported
13 -------------------
14 MinGW GCC  http://tdm-gcc.tdragon.net/
15    TDM-GCC with gcc 4.5.1 was used to build this release.
16 MSYS 1.0.11 was also used (sh needed to compile some dependencies)
17
18
19 Candidate releases were built with MSVC 10.0 (2010), but
20 compiling with Visual C++ caused rendering artifacts when
21 bitcoin was run.
22
23
24 Dependencies
25 ------------
26 Libraries you need to download separately and build:
27
28                 default path  download
29 wxWidgets       \wxwidgets-2.9.1-mgw   http://www.wxwidgets.org/downloads/
30 OpenSSL         \openssl-1.0.0c-mgw    http://www.openssl.org/source/
31 Berkeley DB     \db-4.7.25.NC-mgw      http://www.oracle.com/technology/software/products/berkeley-db/index.html
32 Boost           \boost-1.43.0-mgw      http://www.boost.org/users/download/
33
34 Their licenses:
35 wxWidgets      LGPL 2.1 with very liberal exceptions
36 OpenSSL        Old BSD license with the problematic advertising requirement
37 Berkeley DB    New BSD license with additional requirement that linked software must be free open source
38 Boost          MIT-like license
39
40 Versions used in this release:
41 wxWidgets    2.9.1
42 OpenSSL      1.0.0c
43 Berkeley DB  4.7.25.NC
44 Boost        1.43.0
45
46
47 Notes
48 -----
49 The UI layout is edited with wxFormBuilder.  The project file is
50 uiproject.fbp.  It generates uibase.cpp and uibase.h, which define base
51 classes that do the rote work of constructing all the UI elements.
52
53 wxWidgets
54 ---------
55 DOS shell:
56 cd \wxWidgets-2.9.1-mgw\build\msw
57 mingw32-make -f makefile.gcc
58
59 OpenSSL
60 -------
61 MSYS shell:
62 un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
63 change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'
64
65 cd /c/openssl-1.0.0c-mgw
66 ./config
67 make
68
69 perl util/mkdef.pl 32 libeay enable-static-engine > libeay32.def
70 dllwrap --dllname libeay32.dll --output-lib libeay32.a --def libeay32.def libcrypto.a -lws2_32 -lgdi32
71
72 after that openssl libeay is in main source dir (openssl-1.0.0c-mgw)
73
74 Berkeley DB
75 -----------
76 MSYS shell:
77 cd /c/db-4.7.25.NC-mgw/build_unix
78 sh ../dist/configure --enable-mingw --enable-cxx
79 make
80
81
82 Boost
83 -----
84 DOS prompt:
85 downloaded boost jam 3.1.18
86 cd \boost-1.43.0-mgw
87 bjam toolset=gcc --build-type=complete stage
88
89 Note:
90 building with boost 1.45.0 failed because of boost ticket 4614, 4258
91 builds fine with boost 1.43.0
92
93 Bitcoin
94 -------
95 DOS prompt:
96 cd \bitcoin
97 mingw32-make bitcoin.exe bitcoind.exe -f makefile.mingw
98 strip bitcoin.exe
99 strip bitcoind.exe