7eb99a844f
Build only the mt-s (multithreaded, static runtime link) variant of the library. This cuts the build time in half. Also prevent unpacked boost from ending up in output directory, checking and hashing all the source files as output files this takes a lot of time and is pointless.
66 lines
3.2 KiB
YAML
66 lines
3.2 KiB
YAML
---
|
|
name: "boost"
|
|
suites:
|
|
- "precise"
|
|
architectures:
|
|
- "amd64"
|
|
packages:
|
|
- "mingw-w64"
|
|
- "g++-mingw-w64"
|
|
- "faketime"
|
|
- "zip"
|
|
reference_datetime: "2011-01-30 00:00:00"
|
|
remotes: []
|
|
files:
|
|
- "boost_1_55_0.tar.bz2"
|
|
- "boost-mingw-gas-cross-compile-2013-03-03.patch"
|
|
script: |
|
|
# Defines
|
|
INSTALLPREFIX="$HOME/install"
|
|
HOST=i686-w64-mingw32
|
|
# Input Integrity Check
|
|
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c
|
|
echo "d2b7f6a1d7051faef3c9cf41a92fa3671d905ef1e1da920d07651a43299f6268 boost-mingw-gas-cross-compile-2013-03-03.patch" | shasum -c
|
|
|
|
mkdir -p "$INSTALLPREFIX"
|
|
tar xjf boost_1_55_0.tar.bz2
|
|
cd boost_1_55_0
|
|
GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
|
|
echo "using gcc : $GCCVERSION : $HOST-g++
|
|
:
|
|
<rc>$HOST-windres
|
|
<archiver>$HOST-ar
|
|
<cxxflags>-frandom-seed=boost1
|
|
<ranlib>$HOST-ranlib
|
|
;" > user-config.jam
|
|
./bootstrap.sh --without-icu
|
|
|
|
# Workaround: Upstream boost dev refuses to include patch that would allow Free Software cross-compile toolchain to work
|
|
# This patch was authored by the Fedora package developer and ships in Fedora's mingw32-boost.
|
|
# Please obtain the exact patch that matches the above sha256sum from one of the following mirrors.
|
|
#
|
|
# Read History: https://svn.boost.org/trac/boost/ticket/7262
|
|
# History Mirror: http://rose.makesad.us/~paulproteus/mirrors/7262%20Boost.Context%20fails%20to%20build%20using%20MinGW.html
|
|
#
|
|
# Patch: https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch
|
|
# Patch Mirror: http://wtogami.fedorapeople.org/boost-mingw-gas-cross-compile-2013-03-03.patch
|
|
# Patch Mirror: http://mindstalk.net/host/boost-mingw-gas-cross-compile-2013-03-03.patch
|
|
# Patch Mirror: http://rose.makesad.us/~paulproteus/mirrors/boost-mingw-gas-cross-compile-2013-03-03.patch
|
|
patch -p0 < ../boost-mingw-gas-cross-compile-2013-03-03.patch
|
|
|
|
# Bug Workaround: boost-1.54.0 broke the ability to disable zlib, still broken in 1.55
|
|
# https://svn.boost.org/trac/boost/ticket/9156
|
|
sed -i 's^\[ ac.check-library /zlib//zlib : <library>/zlib//zlib^^' libs/iostreams/build/Jamfile.v2
|
|
sed -i 's^<source>zlib.cpp <source>gzip.cpp \]^^' libs/iostreams/build/Jamfile.v2
|
|
|
|
# http://statmt.org/~s0565741/software/boost_1_52_0/libs/context/doc/html/context/requirements.html
|
|
# Note: Might need these options in the future for 64bit builds.
|
|
# "Please note that address-model=64 must be given to bjam command line on 64bit Windows for 64bit build; otherwise 32bit code will be generated."
|
|
# "For cross-compiling the lib you must specify certain additional properties at bjam command line: target-os, abi, binary-format, architecture and address-model."
|
|
./bjam toolset=gcc binary-format=pe target-os=windows threadapi=win32 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
|
|
|
|
cd "$INSTALLPREFIX"
|
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
|
export FAKETIME=$REFERENCE_DATETIME
|
|
zip -r $OUTDIR/boost-win32-1.55.0-gitian-r6.zip *
|