aboutsummaryrefslogtreecommitdiffstats
path: root/main/boost/APKBUILD
blob: e8a5c3139e7026016931de70bd2ecb550612b4ec (plain) (blame)
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
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=boost
pkgver=1.66.0
_pkgver="${pkgver//./_}"
pkgrel=0
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-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
	dual-python.patch
	"
builddir="$srcdir/${pkgname}_${_pkgver}"

_libs="date_time
	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
	subpackages="$subpackages $pkgname-$_lib:_boostlib"
done

prepare() {
	default_prepare || return 1

	cd "$builddir"

	PY2_VERSION="$(_pyversion python2)"
	PY3_VERSION="$(_pyversion python3)"
	abiflags=$(python3-config --abiflags)


	# create user-config.jam
	cat > user-config.jam <<-__EOF__

	using gcc : : $CC : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
	using python : ${PY2_VERSION} : /usr/bin/python2 : /usr/include/python${PY2_VERSION} : : : : ;
	using python : ${PY3_VERSION} : /usr/bin/python3 : /usr/include/python${PY3_VERSION}m : : : : $abiflags ;

	__EOF__
}

case "$CARCH" in
	armhf|aarch64) _boostarch=arm ;;
	ppc64*) _boostarch=ppc ;;
	s390x) _boostarch=s390 ;;
	*) _boostarch=$CARCH ;;
esac
_enginedir=tools/build/src/engine
_bjam="${builddir}/$_enginedir/bin.linux${_boostarch}/bjam"
[ "$_boostarch" = "s390" ] && _bjam="${builddir}/$_enginedir/bin.linux390/bjam" && \
	_options_s390="--without-context --without-coroutine"

_options="--user-config=\"$builddir/user-config.jam\"
	--prefix=\"$pkgdir/usr\"
	release
	debug-symbols=off
	threading=single,multi
	runtime-link=shared
	link=shared,static
	cflags=-fno-strict-aliasing
	-sPYTHON_ROOT=/usr
	-sPYTHON_VERSION=$PY2_VERSION
	-sTOOLS=gcc
	--layout=tagged
	-q
	-j${JOBS:-2}
	${_options_s390}
	"

build() {
	export BOOST_ROOT="$builddir"

	msg "Building bjam"
	cd "$builddir"/$_enginedir
	CC= ./build.sh cc || return 1

	msg "Building bcp"
	cd "$builddir"/tools/bcp
	"$_bjam" -j${JOBS:-2} || return 1

	msg "Building boost"
	cd "$builddir"
	"$_bjam" $_options
}

package() {
	export BOOST_ROOT="$builddir"
	cd "$builddir"

	install -Dm755 $_bjam \
		"$pkgdir"/usr/bin/bjam || return 1

	install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp || return 1

	install -Dm644 LICENSE_1_0.txt \
		"$pkgdir"/usr/share/licenses/$pkgname/LICENSE_1_0.txt || return 1

	"$pkgdir"/usr/bin/bjam $_options \
		--includedir="$pkgdir"/usr/include \
		--libdir="$pkgdir"/usr/lib \
		install || return 1
}

_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/
}

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

sha512sums="0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b  boost_1_66_0.tar.bz2
d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66  boost-1.57.0-python-abi_letters.patch
132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02  boost-1.57.0-python-libpython_dep.patch
de0d59b19f0a16a747b66833d399c62fa50a1f8baa68bd98195cc718d220ca98219a8a4b083c1962054a5d0299d0afdd83c0d2b54d8d457e37c34a9c05591265  dual-python.patch"