aboutsummaryrefslogtreecommitdiff
path: root/contrib/gitian-descriptors/gitian-win32.yml
blob: 493b61ca539c204ab5f26a7aa4d5f6eee924d109 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
packages: 
- "mingw32"
- "git-core"
- "unzip"
- "nsis"
- "faketime"
- "wine"
reference_datetime: "2011-01-30 00:00:00"
remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
  "dir": "bitcoin"
files:
- "qt-win32-4.7.4-gitian.zip"
- "boost-win32-1.47.0-gitian.zip"
- "openssl-1.0.0e.tar.gz"
- "db-4.8.30.NC.tar.gz"
- "miniupnpc-1.6.tar.gz"
- "zlib-1.2.5.tar.gz"
- "libpng-1.5.7.tar.gz"
- "qrencode-3.2.0.tar.bz2"
script: |
  #
  mkdir $HOME/qt
  cd $HOME/qt
  unzip ../build/qt-win32-4.7.4-gitian.zip
  cd $HOME/build/
  export PATH=$PATH:$HOME/qt/bin/
  #
  mkdir boost_1_47_0
  cd boost_1_47_0
  mkdir -p stage/lib
  unzip ../boost-win32-1.47.0-gitian.zip
  cd bin/$GBUILD_BITS
  for lib in *; do
    i586-mingw32msvc-ar rc ../../stage/lib/libboost_${lib}-mt-s.a $lib/*.o
    i586-mingw32msvc-ranlib ../../stage/lib/libboost_${lib}-mt-s.a
  done
  cd ../..
  mv include/boost .
  cd ..
  #
  tar xzf openssl-1.0.0e.tar.gz
  cd openssl-1.0.0e
  ./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
  make
  cd ..
  #
  tar xzf db-4.8.30.NC.tar.gz
  cd db-4.8.30.NC/build_unix
  ../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
  make $MAKEOPTS
  cd ../..
  #
  tar xzf miniupnpc-1.6.tar.gz
  cd miniupnpc-1.6
  sed 's/dllwrap -k --driver-name gcc/$(DLLWRAP) -k --driver-name $(CC)/' -i Makefile.mingw
  sed 's|wingenminiupnpcstrings $< $@|./wingenminiupnpcstrings $< $@|' -i Makefile.mingw
  make -f Makefile.mingw DLLWRAP=i586-mingw32msvc-dllwrap CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar
  cd ..
  mv miniupnpc-1.6 miniupnpc
  #
  tar xzf zlib-1.2.5.tar.gz
  cd zlib-1.2.5
  make -f win32/Makefile.gcc PREFIX=i586-mingw32msvc- $MAKEOPTS
  cd ..
  #
  tar xzf libpng-1.5.7.tar.gz
  cd libpng-1.5.7
  ./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld LDFLAGS="-L../zlib-1.2.5/" CFLAGS="-I../zlib-1.2.5/"
  make $MAKEOPTS
  cd ..
  #
  tar xjf qrencode-3.2.0.tar.bz2
  cd qrencode-3.2.0
  ./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld png_LIBS="../libpng-1.5.7/.libs/libpng15.a ../zlib-1.2.5/libz.a" png_CFLAGS="-I../libpng-1.5.7"
  make $MAKEOPTS
  cd ..
  #
  cd bitcoin
  mkdir -p $OUTDIR/src
  cp -a . $OUTDIR/src
  rm -rf $OUTDIR/src/.git
  cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
  cp $OUTDIR/src/COPYING $OUTDIR/license.txt
  export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
  export FAKETIME=$REFERENCE_DATETIME
  export TZ=UTC
  $HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross USE_SSL=1 MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.0e OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.0e/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin
  make $MAKEOPTS
  cp release/bitcoin-qt.exe $OUTDIR/
  #
  cd src
  sed 's/$(DEBUGFLAGS)/-frandom-seed=bitcoin/' -i makefile.linux-mingw
  export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
  export FAKETIME=$REFERENCE_DATETIME
  export TZ=UTC
  make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_SSL=1 USE_UPNP=0
  i586-mingw32msvc-strip bitcoind.exe
  makensis ../share/setup.nsi
  cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/
  mkdir $OUTDIR/daemon
  cp bitcoind.exe $OUTDIR/daemon