aboutsummaryrefslogtreecommitdiffstats
path: root/main/boost/APKBUILD
blob: d2ad0dd246756cdb6f407dd8e45388b24e79ec52 (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
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=boost
pkgver=1.67.0
_pkgver="${pkgver//./_}"
pkgrel=1
pkgdesc="Free peer-reviewed portable C++ source libraries"
url="http://www.boost.org/"
arch="all"
license="custom"
depends=""
depends_dev="linux-headers"
makedepends="$depends_dev python2-dev>=2.6 python3-dev flex bison bzip2-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
	disable-debugger-test.patch
	"
options="!checkroot"
builddir="$srcdir/${pkgname}_${_pkgver}"

case "$CARCH" in
	armhf|aarch64) _boostarch=arm ;;
	ppc64*) _boostarch=ppc ;;
	s390x)
		_boostarch=s390
		_l_suffix=390
		_options_carch="--without-context --without-coroutine"
		;;
	*) _boostarch=$CARCH ;;
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
	math
	prg_exec_monitor
	program_options
	python3
	python
	random
	regex
	serialization
	signals
	system
	thread
	unit_test_framework
	wave
	wserialization
	"
for _lib in $_libs; do
	case "$_options_carch" in
		*$_lib*) continue;;
	esac
	subpackages="$subpackages $pkgname-$_lib:_boostlib"
done

_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=single,multi
		runtime-link=shared
		link=shared,static
		cflags=-fno-strict-aliasing
		--layout=tagged
		-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="Static libraries for boost"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}

_boostlib() {
	local name="${subpkgname#$pkgname-}"
	pkgdesc="Boost $name library"
	case "$name" in
	python*) depends="$depends $name"
	esac

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libboost_$name* "$subpkgdir"/usr/lib/
	rmdir "$pkgdir"/usr/lib >/dev/null 2>&1 || :
}

_pyversion() {
	"$(command -v "$1")" -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))'
}

sha512sums="82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8  boost_1_67_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
20d258303fd4e0644adc0e556b785a6f4e981a116595eb1a104c13b10e00802a7ff4fd086e696e38a311d1ddd400c48eced700234c634c0385fd09bf6f1327be  disable-debugger-test.patch"