Skip to content

Commit 6746787

Browse files
committed
Merge pull request #3560
fe14e8d build: Change package name to Bitcoin Core (Wladimir J. van der Laan) 6c980c7 build: Package docs/ and don't package source. (Wladimir J. van der Laan) 39db27c build: Add bitcoin-cli.exe to installer (Wladimir J. van der Laan) 2f87b38 Adapt Windows installer for 64 bit (Wladimir J. van der Laan) f622232 gitian: Windows 64 bit support (Wladimir J. van der Laan)
2 parents 3c3cd87 + fe14e8d commit 6746787

15 files changed

+498
-387
lines changed

Makefile.am

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ GZIP_ENV="-9n"
66

77
BITCOIND_BIN=$(top_builddir)/src/bitcoind$(EXEEXT)
88
BITCOIN_QT_BIN=$(top_builddir)/src/qt/bitcoin-qt$(EXEEXT)
9-
BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win32-setup$(EXEEXT)
9+
BITCOIN_CLI_BIN=$(top_builddir)/src/bitcoin-cli$(EXEEXT)
10+
BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EXEEXT)
1011

1112
OSX_APP=Bitcoin-Qt.app
1213
OSX_DMG=Bitcoin-Qt.dmg
@@ -15,6 +16,8 @@ OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
1516
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
1617
OSX_PLIST=$(top_srcdir)/share/qt/Info.plist #not installed
1718

19+
DIST_DOCS = $(wildcard doc/*.md)
20+
1821
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
1922
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
2023
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp \
@@ -40,20 +43,16 @@ distcheck-hook:
4043
distcleancheck:
4144
@:
4245

43-
$(BITCOIN_WIN_INSTALLER): $(BITCOIND_BIN) $(BITCOIN_QT_BIN)
44-
$(MAKE) distdir
46+
$(BITCOIN_WIN_INSTALLER): $(BITCOIND_BIN) $(BITCOIN_QT_BIN) $(BITCOIN_CLI_BIN)
4547
$(MKDIR_P) $(top_builddir)/release
46-
$(INSTALL_STRIP_PROGRAM) $(top_builddir)/src/bitcoind$(EXEEXT) $(top_builddir)/release
47-
$(INSTALL_STRIP_PROGRAM) $(top_builddir)/src/qt/bitcoin-qt$(EXEEXT) $(top_builddir)/release
48+
$(INSTALL_STRIP_PROGRAM) $(BITCOIND_BIN) $(top_builddir)/release
49+
$(INSTALL_STRIP_PROGRAM) $(BITCOIN_QT_BIN) $(top_builddir)/release
50+
$(INSTALL_STRIP_PROGRAM) $(BITCOIN_CLI_BIN) $(top_builddir)/release
4851
@test -f $(MAKENSIS) && $(MAKENSIS) $(top_builddir)/share/setup.nsi || \
4952
echo error: could not build $@
5053

51-
$(BITCOIND_BIN):
52-
make -C $(top_srcdir)/src bitcoind$(EXEEXT)
53-
54-
$(BITCOIN_QT_BIN):
55-
make -C $(top_srcdir)/src/qt bitcoin-qt$(EXEEXT)
56-
54+
$(BITCOIND_BIN) $(BITCOIN_QT_BIN) $(BITCOIN_CLI_BIN):
55+
make -C $(dir $@) $(notdir $@)
5756

5857
$(OSX_APP)/Contents/PkgInfo:
5958
$(MKDIR_P) $(@D)
@@ -151,7 +150,7 @@ check-local:
151150
@qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool $(COMPARISON_TOOL_REORG_TESTS)
152151
endif
153152

154-
EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/pull-tester.sh $(WINDOWS_PACKAGING) $(OSX_PACKAGING)
153+
EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/pull-tester.sh $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING)
155154

156155
CLEANFILES = $(OSX_DMG) $(OSX_APP) $(BITCOIN_WIN_INSTALLER)
157156

configure.ac

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ define(_CLIENT_VERSION_REVISION, 99)
66
define(_CLIENT_VERSION_BUILD, 0)
77
define(_CLIENT_VERSION_IS_RELEASE, false)
88
define(_COPYRIGHT_YEAR, 2014)
9-
AC_INIT([Bitcoin],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[[email protected]],[bitcoin])
9+
AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[[email protected]],[bitcoin])
1010
AC_CONFIG_AUX_DIR([src/build-aux])
1111
AC_CONFIG_MACRO_DIR([src/m4])
1212
AC_CANONICAL_HOST
@@ -194,6 +194,12 @@ case $host in
194194
if test "x$CXXFLAGS_overridden" = "xno"; then
195195
CXXFLAGS="$CXXFLAGS -w"
196196
fi
197+
case $host in
198+
i?86-*) WINDOWS_BITS=32 ;;
199+
x86_64-*) WINDOWS_BITS=64 ;;
200+
*) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
201+
esac
202+
AC_SUBST(WINDOWS_BITS)
197203
;;
198204
*darwin*)
199205
TARGET_OS=darwin
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
---
2+
name: "boost"
3+
suites:
4+
- "precise"
5+
architectures:
6+
- "amd64"
7+
packages:
8+
- "mingw-w64"
9+
- "g++-mingw-w64"
10+
- "faketime"
11+
- "zip"
12+
reference_datetime: "2011-01-30 00:00:00"
13+
remotes: []
14+
files:
15+
- "boost_1_55_0.tar.bz2"
16+
- "boost-mingw-gas-cross-compile-2013-03-03.patch"
17+
script: |
18+
# Defines
19+
export TZ=UTC
20+
INDIR=$HOME/build
21+
# Input Integrity Check
22+
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c
23+
echo "d2b7f6a1d7051faef3c9cf41a92fa3671d905ef1e1da920d07651a43299f6268 boost-mingw-gas-cross-compile-2013-03-03.patch" | shasum -c
24+
25+
for BITS in 32 64; do # for architectures
26+
#
27+
INSTALLPREFIX=$HOME/staging${BITS}
28+
BUILDDIR=$HOME/build${BITS}
29+
if [ "$BITS" == "32" ]; then
30+
HOST=i686-w64-mingw32
31+
else
32+
HOST=x86_64-w64-mingw32
33+
fi
34+
#
35+
mkdir -p $INSTALLPREFIX $BUILDDIR
36+
cd $BUILDDIR
37+
#
38+
tar xjf $INDIR/boost_1_55_0.tar.bz2
39+
cd boost_1_55_0
40+
GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
41+
echo "using gcc : $GCCVERSION : $HOST-g++
42+
:
43+
<rc>$HOST-windres
44+
<archiver>$HOST-ar
45+
<cxxflags>-frandom-seed=boost1
46+
<ranlib>$HOST-ranlib
47+
;" > user-config.jam
48+
./bootstrap.sh --without-icu
49+
50+
# Workaround: Upstream boost dev refuses to include patch that would allow Free Software cross-compile toolchain to work
51+
# This patch was authored by the Fedora package developer and ships in Fedora's mingw32-boost.
52+
# Please obtain the exact patch that matches the above sha256sum from one of the following mirrors.
53+
#
54+
# Read History: https://svn.boost.org/trac/boost/ticket/7262
55+
# History Mirror: http://rose.makesad.us/~paulproteus/mirrors/7262%20Boost.Context%20fails%20to%20build%20using%20MinGW.html
56+
#
57+
# Patch: https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch
58+
# Patch Mirror: http://wtogami.fedorapeople.org/boost-mingw-gas-cross-compile-2013-03-03.patch
59+
# Patch Mirror: http://mindstalk.net/host/boost-mingw-gas-cross-compile-2013-03-03.patch
60+
# Patch Mirror: http://rose.makesad.us/~paulproteus/mirrors/boost-mingw-gas-cross-compile-2013-03-03.patch
61+
patch -p0 < $INDIR/boost-mingw-gas-cross-compile-2013-03-03.patch
62+
63+
# Bug Workaround: boost-1.54.0 broke the ability to disable zlib, still broken in 1.55
64+
# https://svn.boost.org/trac/boost/ticket/9156
65+
sed -i 's^\[ ac.check-library /zlib//zlib : <library>/zlib//zlib^^' libs/iostreams/build/Jamfile.v2
66+
sed -i 's^<source>zlib.cpp <source>gzip.cpp \]^^' libs/iostreams/build/Jamfile.v2
67+
68+
# http://statmt.org/~s0565741/software/boost_1_52_0/libs/context/doc/html/context/requirements.html
69+
# "For cross-compiling the lib you must specify certain additional properties at bjam command line: target-os, abi, binary-format, architecture and address-model."
70+
./bjam toolset=gcc binary-format=pe target-os=windows threadapi=win32 address-model=$BITS threading=multi variant=release link=static runtime-link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete --prefix="$INSTALLPREFIX" $MAKEOPTS install
71+
#
72+
cd "$INSTALLPREFIX"
73+
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
74+
export FAKETIME=$REFERENCE_DATETIME
75+
zip -r $OUTDIR/boost-win$BITS-1.55.0-gitian-r6.zip *
76+
unset LD_PRELOAD
77+
unset FAKETIME
78+
done # for BITS in
79+

contrib/gitian-descriptors/boost-win32.yml

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
name: "bitcoin-deps"
3+
suites:
4+
- "precise"
5+
architectures:
6+
- "amd64"
7+
packages:
8+
- "mingw-w64"
9+
- "g++-mingw-w64"
10+
- "git-core"
11+
- "zip"
12+
- "faketime"
13+
- "psmisc"
14+
reference_datetime: "2011-01-30 00:00:00"
15+
remotes: []
16+
files:
17+
- "openssl-1.0.1e.tar.gz"
18+
- "db-4.8.30.NC.tar.gz"
19+
- "miniupnpc-1.8.tar.gz"
20+
- "zlib-1.2.8.tar.gz"
21+
- "libpng-1.6.8.tar.gz"
22+
- "qrencode-3.4.3.tar.bz2"
23+
script: |
24+
#
25+
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
26+
export FAKETIME=$REFERENCE_DATETIME
27+
export TZ=UTC
28+
INDIR=$HOME/build
29+
# Input Integrity Check
30+
echo "f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3 openssl-1.0.1e.tar.gz" | sha256sum -c
31+
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
32+
echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
33+
echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c
34+
echo "32c7acf1608b9c8b71b743b9780adb7a7b347563dbfb4a5263761056da44cc96 libpng-1.6.8.tar.gz" | sha256sum -c
35+
echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
36+
37+
for BITS in 32 64; do # for architectures
38+
#
39+
INSTALLPREFIX=$HOME/staging${BITS}
40+
BUILDDIR=$HOME/build${BITS}
41+
if [ "$BITS" == "32" ]; then
42+
HOST=i686-w64-mingw32
43+
else
44+
HOST=x86_64-w64-mingw32
45+
fi
46+
#
47+
mkdir -p $INSTALLPREFIX $BUILDDIR
48+
cd $BUILDDIR
49+
#
50+
tar xzf $INDIR/openssl-1.0.1e.tar.gz
51+
cd openssl-1.0.1e
52+
if [ "$BITS" == "32" ]; then
53+
OPENSSL_TGT=mingw
54+
else
55+
OPENSSL_TGT=mingw64
56+
fi
57+
./Configure --cross-compile-prefix=$HOST- ${OPENSSL_TGT} no-shared no-dso --openssldir=$INSTALLPREFIX
58+
make
59+
make install_sw
60+
cd ..
61+
#
62+
tar xzf $INDIR/db-4.8.30.NC.tar.gz
63+
cd db-4.8.30.NC/build_unix
64+
../dist/configure --prefix=$INSTALLPREFIX --enable-mingw --enable-cxx --host=$HOST --disable-shared
65+
make $MAKEOPTS library_build
66+
make install_lib install_include
67+
cd ../..
68+
#
69+
tar xzf $INDIR/miniupnpc-1.8.tar.gz
70+
cd miniupnpc-1.8
71+
echo "
72+
--- miniupnpc-1.8/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000
73+
+++ miniupnpc-1.8/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000
74+
@@ -67,8 +67,8 @@
75+
76+
wingenminiupnpcstrings.o: wingenminiupnpcstrings.c
77+
78+
-miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings
79+
- wingenminiupnpcstrings \$< \$@
80+
+miniupnpcstrings.h: miniupnpcstrings.h.in
81+
+ sed -e 's|OS/version|MSWindows/5.1.2600|' -e 's|MINIUPNPC_VERSION_STRING \"version\"|MINIUPNPC_VERSION_STRING \"VERSIONHERE\"|' \$< > \$@
82+
83+
minixml.o: minixml.c minixml.h miniupnpcstrings.h
84+
85+
" | sed "s/VERSIONHERE/$(cat VERSION)/" | patch -p1
86+
mkdir -p dll
87+
make -f Makefile.mingw CC=$HOST-gcc AR=$HOST-ar libminiupnpc.a
88+
install -d $INSTALLPREFIX/include/miniupnpc
89+
install *.h $INSTALLPREFIX/include/miniupnpc
90+
install libminiupnpc.a $INSTALLPREFIX/lib
91+
cd ..
92+
#
93+
tar xzf $INDIR/zlib-1.2.8.tar.gz
94+
cd zlib-1.2.8
95+
CROSS_PREFIX=$HOST- ./configure --prefix=$INSTALLPREFIX --static
96+
make
97+
make install
98+
cd ..
99+
#
100+
tar xzf $INDIR/libpng-1.6.8.tar.gz
101+
cd libpng-1.6.8
102+
OPT="-O2"
103+
CPPFLAGS="${OPT} -I$INSTALLPREFIX/include" CFLAGS="${OPT} -I$INSTALLPREFIX/include" LDFLAGS="${OPT} -L$INSTALLPREFIX/lib" ./configure --disable-shared --prefix=$INSTALLPREFIX --host=$HOST
104+
make $MAKEOPTS
105+
make install
106+
cd ..
107+
#
108+
tar xjf $INDIR/qrencode-3.4.3.tar.bz2
109+
cd qrencode-3.4.3
110+
png_CFLAGS="-I$INSTALLPREFIX/include" png_LIBS="-L$INSTALLPREFIX/lib -lpng" ./configure --prefix=$INSTALLPREFIX --host=$HOST
111+
make
112+
make install
113+
cd ..
114+
#
115+
cd $INSTALLPREFIX
116+
zip -r $OUTDIR/bitcoin-deps-win$BITS-gitian-r10.zip include lib
117+
done # for BITS in

0 commit comments

Comments
 (0)