Update windows build process for 0.3.20 release
This commit is contained in:
parent
47908a8907
commit
cf7c1874fe
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2009-2010 Satoshi Nakamoto
|
Copyright (c) 2009-2011 Bitcoin Developers
|
||||||
Distributed under the MIT/X11 software license, see the accompanying
|
Distributed under the MIT/X11 software license, see the accompanying
|
||||||
file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
This product includes software developed by the OpenSSL Project for use in
|
This product includes software developed by the OpenSSL Project for use in
|
||||||
@ -11,23 +11,22 @@ WINDOWS BUILD NOTES
|
|||||||
|
|
||||||
Compilers Supported
|
Compilers Supported
|
||||||
-------------------
|
-------------------
|
||||||
MinGW GCC (recommended)
|
MinGW GCC
|
||||||
http://tdm-gcc.tdragon.net/ has an easy installer. Go back a few versions
|
http://tdm-gcc.tdragon.net/ has an easy installer. Go back a few versions
|
||||||
for a little older gcc like gcc 4.4.?.
|
for a little older gcc like gcc 4.4.?.
|
||||||
|
|
||||||
MSVC 8.0 (2005) SP1 has been tested. Note: MSVC 7.0 and up have a habit of
|
MSVC 10.0 (2010) was used to build this release.
|
||||||
linking to runtime DLLs that are not installed on XP by default.
|
|
||||||
|
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
------------
|
------------
|
||||||
Libraries you need to download separately and build:
|
Libraries you need to download separately and build:
|
||||||
|
|
||||||
default path download
|
default path download
|
||||||
wxWidgets-2.9 \wxwidgets http://www.wxwidgets.org/downloads/
|
wxWidgets \wxwidgets http://www.wxwidgets.org/downloads/
|
||||||
OpenSSL \openssl http://www.openssl.org/source/
|
OpenSSL \openssl http://www.openssl.org/source/
|
||||||
Berkeley DB \db http://www.oracle.com/technology/software/products/berkeley-db/index.html
|
Berkeley DB \db http://www.oracle.com/technology/software/products/berkeley-db/index.html
|
||||||
Boost \boost http://www.boost.org/users/download/
|
Boost \boost http://www.boost.org/users/download/
|
||||||
|
|
||||||
Their licenses:
|
Their licenses:
|
||||||
wxWidgets LGPL 2.1 with very liberal exceptions
|
wxWidgets LGPL 2.1 with very liberal exceptions
|
||||||
@ -36,11 +35,10 @@ Berkeley DB New BSD license with additional requirement that linked software
|
|||||||
Boost MIT-like license
|
Boost MIT-like license
|
||||||
|
|
||||||
Versions used in this release:
|
Versions used in this release:
|
||||||
MinGW GCC 3.4.5
|
wxWidgets 2.9.1
|
||||||
wxWidgets 2.9.0
|
OpenSSL 1.0.0c
|
||||||
OpenSSL 0.9.8k
|
|
||||||
Berkeley DB 4.7.25.NC
|
Berkeley DB 4.7.25.NC
|
||||||
Boost 1.42.1
|
Boost 1.45.0
|
||||||
|
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
@ -49,61 +47,33 @@ The UI layout is edited with wxFormBuilder. The project file is
|
|||||||
uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
|
uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
|
||||||
classes that do the rote work of constructing all the UI elements.
|
classes that do the rote work of constructing all the UI elements.
|
||||||
|
|
||||||
The release is built with GCC and then "strip bitcoin.exe" to strip the debug
|
This release was built with a Visual C++ 10.0 toolchain (nmake); previous
|
||||||
symbols, which reduces the executable size by about 90%.
|
releases were built using mingw.
|
||||||
|
|
||||||
|
|
||||||
wxWidgets
|
wxWidgets
|
||||||
---------
|
---------
|
||||||
cd \wxwidgets\build\msw
|
cd \wxwidgets\build\msw
|
||||||
make -f makefile.gcc
|
nmake -f makefile.vc SHARED=0 MONOLITHIC=1 BUILD=release UNICODE=1 CFB=Unicode
|
||||||
or
|
|
||||||
nmake -f makefile.vc
|
|
||||||
|
|
||||||
|
|
||||||
OpenSSL
|
OpenSSL
|
||||||
-------
|
-------
|
||||||
If you want to exclude unused optional algorithms, a few patches are required.
|
cd c:\openssl\src\openssl-1.0.0c
|
||||||
(instructions for OpenSSL v0.9.8k)
|
perl Configure VC-WIN32 --prefix=c:/openssl
|
||||||
|
ms\do_ms.bat
|
||||||
Edit engines\e_gmp.c and engines\e_capi.c and add this #ifndef around
|
nmake -f ms\nt.mak
|
||||||
the openssl/rsa.h include:
|
nmake -f ms\nt.mak install
|
||||||
#ifndef OPENSSL_NO_RSA
|
|
||||||
#include <openssl/rsa.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Edit ms\mingw32.bat and replace the Configure line's parameters with this
|
|
||||||
no-everything list. You have to put this in the batch file because batch
|
|
||||||
files can't take more than nine command line parameters.
|
|
||||||
perl Configure mingw threads no-rc2 no-rc4 no-rc5 no-idea no-des no-bf no-cast no-aes no-camellia no-seed no-rsa no-dh
|
|
||||||
|
|
||||||
Also REM out the following line in ms\mingw32.bat after the mingw32-make
|
|
||||||
line. The build fails after it's already finished building libeay32, which
|
|
||||||
is all we care about, but the failure aborts the script before it runs
|
|
||||||
dllwrap to generate libeay32.dll.
|
|
||||||
REM if errorlevel 1 goto end
|
|
||||||
|
|
||||||
Build
|
|
||||||
cd \openssl
|
|
||||||
ms\mingw32.bat
|
|
||||||
|
|
||||||
If you're using MSVC, generate the .lib file
|
|
||||||
lib /machine:i386 /def:ms\libeay32.def /out:out\libeay32.lib
|
|
||||||
|
|
||||||
|
|
||||||
Berkeley DB
|
Berkeley DB
|
||||||
-----------
|
-----------
|
||||||
Using MinGW and MSYS:
|
Built in Visual C++ Express (project files had to be converted
|
||||||
cd \db\build_unix
|
using Visual C++ Pro and then copied to build environment)
|
||||||
sh ../dist/configure --enable-mingw --enable-cxx
|
Compiled Release db_static project in Visual Studio Express.
|
||||||
make
|
|
||||||
|
|
||||||
|
|
||||||
Boost
|
Boost
|
||||||
-----
|
-----
|
||||||
download bjam.exe from
|
download bjam.exe from
|
||||||
http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
|
http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
|
||||||
cd \boost
|
cd \boost
|
||||||
bjam toolset=gcc --build-type=complete stage
|
|
||||||
or
|
|
||||||
bjam toolset=msvc --build-type=complete stage
|
bjam toolset=msvc --build-type=complete stage
|
||||||
|
|
||||||
|
31
makefile.vc
31
makefile.vc
@ -7,29 +7,32 @@ INCLUDEPATHS= \
|
|||||||
/I"/boost" \
|
/I"/boost" \
|
||||||
/I"/db/build_windows" \
|
/I"/db/build_windows" \
|
||||||
/I"/openssl/include" \
|
/I"/openssl/include" \
|
||||||
/I"/wxwidgets/lib/vc_lib/mswud" \
|
/I"/wxwidgets/lib/vc_lib/mswu" \
|
||||||
/I"/wxwidgets/include"
|
/I"/wxwidgets/include"
|
||||||
|
|
||||||
LIBPATHS= \
|
LIBPATHS= \
|
||||||
/LIBPATH:"/boost/stage/lib" \
|
/LIBPATH:"/boost/stage/lib" \
|
||||||
/LIBPATH:"/db/build_windows/debug" \
|
/LIBPATH:"/db/build_windows/Release" \
|
||||||
/LIBPATH:"/openssl/out" \
|
/LIBPATH:"/openssl/lib" \
|
||||||
/LIBPATH:"/wxwidgets/lib/vc_lib"
|
/LIBPATH:"/wxwidgets/lib/vc_lib" \
|
||||||
|
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib \
|
||||||
|
/NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib \
|
||||||
|
/NODEFAULTLIB:msvcrtd.lib
|
||||||
|
|
||||||
WXLIBS=wxmsw29ud_html.lib wxmsw29ud_core.lib wxmsw29ud_adv.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib
|
WXLIBS=wxmsw29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib
|
||||||
|
|
||||||
LIBS= \
|
LIBS= \
|
||||||
libboost_system-vc80-mt-gd.lib \
|
libboost_system-vc100-mt.lib \
|
||||||
libboost_filesystem-vc80-mt-gd.lib \
|
libboost_filesystem-vc100-mt.lib \
|
||||||
libboost_program_options-vc80-mt-gd.lib \
|
libboost_program_options-vc100-mt.lib \
|
||||||
libboost_thread-vc80-mt-gd.lib \
|
libboost_thread-vc100-mt.lib \
|
||||||
libdb47sd.lib \
|
libdb47s.lib \
|
||||||
libeay32.lib \
|
libeay32.lib \
|
||||||
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
|
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
|
||||||
|
|
||||||
DEFS=/DWIN32 /D__WXMSW__ /D_WINDOWS /DNOPCH
|
DEFS=/DWIN32 /D__WXMSW__ /D_WINDOWS /DNOPCH
|
||||||
DEBUGFLAGS=/Zi /D__WXDEBUG__
|
DEBUGFLAGS=/Os
|
||||||
CFLAGS=/c /nologo /MDd /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
|
||||||
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
|
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
|
||||||
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
|
script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
|
||||||
|
|
||||||
@ -82,7 +85,7 @@ obj\ui.res: ui.rc rc/bitcoin.ico rc/check.ico rc/send16.bmp rc/send16mask.bmp r
|
|||||||
rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
|
rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
|
||||||
|
|
||||||
bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
|
bitcoin.exe: $(OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
|
||||||
link /nologo /DEBUG /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
|
link /nologo /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
.cpp{obj\nogui}.obj:
|
.cpp{obj\nogui}.obj:
|
||||||
@ -105,7 +108,7 @@ obj\nogui\rpc.obj: $(HEADERS)
|
|||||||
obj\nogui\init.obj: $(HEADERS)
|
obj\nogui\init.obj: $(HEADERS)
|
||||||
|
|
||||||
bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\ui.res
|
bitcoind.exe: $(OBJS:obj\=obj\nogui\) obj\ui.res
|
||||||
link /nologo /DEBUG /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
17
setup.nsi
17
setup.nsi
@ -1,13 +1,10 @@
|
|||||||
# Auto-generated by EclipseNSIS Script Wizard
|
|
||||||
# 3.10.2009 19:00:28
|
|
||||||
|
|
||||||
Name Bitcoin
|
Name Bitcoin
|
||||||
|
|
||||||
RequestExecutionLevel highest
|
RequestExecutionLevel highest
|
||||||
|
|
||||||
# General Symbol Definitions
|
# General Symbol Definitions
|
||||||
!define REGKEY "SOFTWARE\$(^Name)"
|
!define REGKEY "SOFTWARE\$(^Name)"
|
||||||
!define VERSION 0.3.19
|
!define VERSION 0.3.20
|
||||||
!define COMPANY "Bitcoin project"
|
!define COMPANY "Bitcoin project"
|
||||||
!define URL http://www.bitcoin.org/
|
!define URL http://www.bitcoin.org/
|
||||||
|
|
||||||
@ -42,12 +39,12 @@ Var StartMenuGroup
|
|||||||
!insertmacro MUI_LANGUAGE English
|
!insertmacro MUI_LANGUAGE English
|
||||||
|
|
||||||
# Installer attributes
|
# Installer attributes
|
||||||
OutFile bitcoin-0.3.19-win32-setup.exe
|
OutFile bitcoin-0.3.20-win32-setup.exe
|
||||||
InstallDir $PROGRAMFILES\Bitcoin
|
InstallDir $PROGRAMFILES\Bitcoin
|
||||||
CRCCheck on
|
CRCCheck on
|
||||||
XPStyle on
|
XPStyle on
|
||||||
ShowInstDetails show
|
ShowInstDetails show
|
||||||
VIProductVersion 0.3.19.0
|
VIProductVersion 0.3.20.0
|
||||||
VIAddVersionKey ProductName Bitcoin
|
VIAddVersionKey ProductName Bitcoin
|
||||||
VIAddVersionKey ProductVersion "${VERSION}"
|
VIAddVersionKey ProductVersion "${VERSION}"
|
||||||
VIAddVersionKey CompanyName "${COMPANY}"
|
VIAddVersionKey CompanyName "${COMPANY}"
|
||||||
@ -63,8 +60,8 @@ Section -Main SEC0000
|
|||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
SetOverwrite on
|
SetOverwrite on
|
||||||
File bitcoin.exe
|
File bitcoin.exe
|
||||||
File libeay32.dll
|
File msvcp100.dll
|
||||||
File mingwm10.dll
|
File msvcr100.dll
|
||||||
File license.txt
|
File license.txt
|
||||||
File readme.txt
|
File readme.txt
|
||||||
SetOutPath $INSTDIR\daemon
|
SetOutPath $INSTDIR\daemon
|
||||||
@ -112,8 +109,8 @@ done${UNSECTION_ID}:
|
|||||||
# Uninstaller sections
|
# Uninstaller sections
|
||||||
Section /o -un.Main UNSEC0000
|
Section /o -un.Main UNSEC0000
|
||||||
Delete /REBOOTOK $INSTDIR\bitcoin.exe
|
Delete /REBOOTOK $INSTDIR\bitcoin.exe
|
||||||
Delete /REBOOTOK $INSTDIR\libeay32.dll
|
Delete /REBOOTOK $INSTDIR\msvcp100.dll
|
||||||
Delete /REBOOTOK $INSTDIR\mingwm10.dll
|
Delete /REBOOTOK $INSTDIR\msvcr100.dll
|
||||||
Delete /REBOOTOK $INSTDIR\license.txt
|
Delete /REBOOTOK $INSTDIR\license.txt
|
||||||
Delete /REBOOTOK $INSTDIR\readme.txt
|
Delete /REBOOTOK $INSTDIR\readme.txt
|
||||||
RMDir /r /REBOOTOK $INSTDIR\daemon
|
RMDir /r /REBOOTOK $INSTDIR\daemon
|
||||||
|
Loading…
Reference in New Issue
Block a user