blob: 1754074191a2d38250f84098b49f3ff6dd9261aa (
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=boost
pkgver=1.69.0
_pkgver="${pkgver//./_}"
pkgrel=4
pkgdesc="Free peer-reviewed portable C++ source libraries"
url="http://www.boost.org/"
arch="all"
license="custom"
depends="$pkgname-libs"
depends_dev="$pkgname linux-headers"
makedepends="$depends_dev python2-dev>=2.6 python3-dev flex bison bzip2-dev icu-dev xz-dev zlib-dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://dl.bintray.com/boostorg/release/$pkgver/source/${pkgname}_$_pkgver.tar.bz2
boost-1.57.0-python-abi_letters.patch
boost-1.57.0-python-libpython_dep.patch
revert-wifsignaled-static-assert.patch
"
options="!checkroot"
builddir="$srcdir/${pkgname}_${_pkgver}"
case "$CARCH" in
arm*|aarch64) _boostarch=arm ;;
mips*) _boostarch=mips ;;
ppc64*) _boostarch=ppc ;;
s390x)
_boostarch=s390
_l_suffix=390
;;
*) _boostarch=$CARCH ;;
esac
case "$CARCH" in
armhf) ;; # zstd is not available for armhf
*) makedepends="$makedepends zstd-dev";;
esac
_enginedir="tools/build/src/engine"
_bjam="${builddir}/${_enginedir}/bin.linux${_l_suffix:-$_boostarch}/b2"
_libs="
atomic
chrono
container
context
contract
coroutine
date_time
fiber
filesystem
graph
iostreams
locale
log_setup
log
math
prg_exec_monitor
program_options
python3
python2
random
regex
serialization
stacktrace_basic
stacktrace_noop
system
thread
timer
type_erasure
unit_test_framework
wave
wserialization
"
for _lib in $_libs; do
subpackages="$subpackages ${pkgname}-${_lib}:_boostlib"
done; unset -v _lib
subpackages="$subpackages $pkgname-libs"
_set_options() {
[ -n "$PY2_VERSION" ] || PY2_VERSION="$(_pyversion python2)"
[ -n "$PY3_VERSION" ] || PY3_VERSION="$(_pyversion python3)"
local _options_python="${PY2_VERSION:+$PY2_VERSION,}${PY3_VERSION}"
[ -z "$_options_python" ] || _options_python="python=$_options_python"
_options="
--user-config=\"$builddir/user-config.jam\"
--prefix=\"$pkgdir/usr\"
release
$_options_python
toolset=gcc
debug-symbols=off
threading=multi
runtime-link=shared
link=shared,static
cflags=-fno-strict-aliasing
--layout=system
-q
-j${JOBS:-2}
$_options_carch
"
}
prepare() {
default_prepare
cd "$builddir"
_set_options
local abiflags="$(python3-config --abiflags)"
# create user-config.jam
cat > user-config.jam <<-__EOF__
using gcc : : $CC : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
using python : ${PY2_VERSION:+$PY2_VERSION }: /usr/bin/python2 : ${PY2_VERSION:+/usr/include/python${PY2_VERSION} }: : : : ;
using python : ${PY3_VERSION:+$PY3_VERSION }: /usr/bin/python3 : ${PY3_VERSION:+/usr/include/python${PY3_VERSION}${abiflags} }: : : : ${abiflags:+$abiflags };
__EOF__
}
build() {
export BOOST_ROOT="$builddir"
msg "Building bjam"
cd "$builddir"/$_enginedir
CC= ./build.sh cc
msg "Building bcp"
cd "$builddir"/tools/bcp
"$_bjam" -j${JOBS:-2}
msg "Building boost"
cd "$builddir"
_set_options
"$_bjam" $_options
}
check() {
cd "$builddir"/tools/build/test
PATH="${_bjam%/*}:${PATH}" python2 test_all.py --default-bjam
}
package() {
export BOOST_ROOT="$builddir"
cd "$builddir"
_set_options
install -Dm755 "$_bjam" \
"$pkgdir"/usr/bin/b2
ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary
install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp
install -Dm644 LICENSE_1_0.txt \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE_1_0.txt
"$pkgdir"/usr/bin/bjam $_options \
--includedir="$pkgdir"/usr/include \
--libdir="$pkgdir"/usr/lib \
install
}
static() {
pkgdesc="Boost static libraries"
depends="$depends_static"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/lib*.a "$subpkgdir"/usr/lib/
}
_boostlib() {
local name="${subpkgname#$pkgname-}"
pkgdesc="Boost $name shared library"
depends="$depends__boostlib"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libboost_$name*.so.[0-9]* "$subpkgdir"/usr/lib/
}
libs() {
default_libs
pkgdesc="Boost shared libraries"
depends="$depends_libs"
local _pkg; for _pkg in $origsubpackages; do
case "$_pkg" in
*:_boostlib) depends="$depends ${_pkg%%:*}" ;;
esac
done
mkdir -p "$subpkgdir"
rmdir "$pkgdir"/usr/lib >/dev/null 2>&1 || :
}
_pyversion() {
"$1" -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))'
}
sha512sums="d0e9bb858c44880d56c0291afef6a1b011a62f659a2d8f58dcb6147ea0899f9157bd8db3097896618fee0116847ebeac78b6d0f0fec8a92c3469500828bbe552 boost_1_69_0.tar.bz2
d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66 boost-1.57.0-python-abi_letters.patch
132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02 boost-1.57.0-python-libpython_dep.patch
1cae6ab9b3b97e0328aa5b85ee2220bb1e88b99256b31bc4a2d06275cf70704c8f4f1bd6abd77386d0490bb14a0393ae981be8e95f2cc054a1dc07de8847e8d5 revert-wifsignaled-static-assert.patch"
|