aboutsummaryrefslogtreecommitdiffstats
path: root/testing/julia/APKBUILD
blob: c534cf0427304ac46cdf32e02447e01a60855c8e (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
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=julia
pkgver=0.4.6
# Keep in sync with deps/libuv.version.
_libuv_ver=efb40768b7c7bd9f173a7868f74b92b1c5a61a0e
# Keep in sync with deps/Versions.make.
_rmathjulia_ver=0.1
pkgrel=2
pkgdesc="A high-level, high-performance dynamic language for technical computing"
url="http://julialang.org"
# x86: libunwind package is currently not built for x86
arch="x86_64"
license="MIT"
depends="arpack
	fftw>=3.3
	gmp>=5.0
	libgit2>=0.21
	mpfr3
	openblas
	openlibm
	openspecfun>=0.4
	pcre2>=10.0
	suitesparse>=4.1
	"
depends_dev="arpack-dev
	dsfmt-dev
	fftw-dev
	gmp-dev
	libgit2-dev
	libunwind-dev
	llvm3.7-dev
	mpfr-dev
	openblas-dev
	openlibm-dev
	openspecfun-dev
	pcre2-dev
	suitesparse-dev
	utf8proc-dev>=1.3
	"
makedepends="$depends_dev
	bash
	cmake
	dsfmt
	gfortran
	linux-headers
	openssl-dev
	paxmark
	perl
	"
subpackages="$pkgname-dev $pkgname-doc $pkgname-debug"
source="https://github.com/JuliaLang/julia/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz
	libuv-$_libuv_ver.tar.gz::https://api.github.com/repos/JuliaLang/libuv/tarball/$_libuv_ver
	Rmath-julia-$_rmathjulia_ver.tar.gz::https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v$_rmathjulia_ver
	find-syslibs
	0001-hardened.patch
	0002-verbose-build.patch
	0003-no-clean-docs.patch
	0004-remove-sysctl.h.patch
	0008-ldconfig-compat.patch
	"
builddir="$srcdir/$pkgname-$pkgver"
ldpath="/usr/lib/julia"

prepare() {
	cd "$builddir"

	cp "$srcdir"/Rmath-julia-$_rmathjulia_ver.tar.gz deps/ || return 1

	# Julia needs patched libuv.
	cp "$srcdir"/libuv-$_libuv_ver.tar.gz deps/ || return 1

	# Prevent fetching of bundled stuff in the build and package phase.
	cat > deps/jldownload <<-EOF
		#!/bin/sh
		echo "!!! Downloading disabled !!!"
		echo "Abuild should not fetch any files in the build phase."
		echo "Add all the needed files to the APKBUILD's source=."
		exit 1
	EOF

	cat > Make.user <<-EOF
		prefix=/usr
		libexecdir=/usr/lib
		sysconfdir=/etc
		DESTDIR="$pkgdir"
		LIBBLAS=-lopenblas
		LIBBLASNAME=libopenblas
		LIBLAPACK=-lopenblas
		LIBLAPACKNAME=libopenblas
		LLVM_CONFIG=llvm-config-3.7
		LLVM_VER=3.7
		USE_SYSTEM_LLVM=1
		USE_SYSTEM_LIBUNWIND=1
		USE_SYSTEM_PCRE=1
		USE_SYSTEM_LIBM=1
		USE_SYSTEM_OPENLIBM=1
		USE_SYSTEM_OPENSPECFUN=1
		USE_SYSTEM_DSFMT=1
		USE_SYSTEM_BLAS=1
		USE_SYSTEM_LAPACK=1
		USE_SYSTEM_FFTW=1
		USE_SYSTEM_GMP=1
		USE_SYSTEM_MPFR=1
		USE_SYSTEM_ARPACK=1
		USE_SYSTEM_SUITESPARSE=1
		USE_SYSTEM_LIBUV=0
		USE_SYSTEM_UTF8PROC=1
		USE_SYSTEM_LIBGIT2=1
		USE_SYSTEM_PATCHELF=1
		USE_LLVM_SHLIB=1
		VERBOSE=1
	EOF

	# Pre-SSE2 CPU targets are not supported;
	# create a generic 32-bit x86 binary.
	if [ "$CARCH" = x86 ]; then
		echo "MARCH=i686" >> Make.user
		echo "JULIA_CPU_TARGET=pentium4" >> Make.user
	else
		echo "MARCH=${CARCH/_/-}" >> Make.user
	fi
 
	default_prepare
}

build() {
	cd "$builddir"

	# If we don't clean here, then make install will recompile everything,
	# don't know why...
	make clean && make release
}

package() {
	cd "$builddir"

	make install || return 1
	install -D "$srcdir"/find-syslibs "$pkgdir"/usr/share/julia/find-syslibs
}

debug() {
	pkgdesc="$pkgdesc (debug build)"

	install -d "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/*-debug "$subpkgdir"/usr/bin/ || return 1

	install -d "$subpkgdir"/usr/lib/julia
	mv "$pkgdir"/usr/lib/julia/*-debug.* "$subpkgdir"/usr/lib/julia/
}

md5sums="2281e03cff9dde3592fee3370e86b04b  julia-0.4.6.tar.gz
b94c9164471d0492dce170961d7c65a2  libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
4e3f9e41e7b8cd3070225d1f5e8b21d9  Rmath-julia-0.1.tar.gz
d529d078678c242b6ac61d65ad61e530  find-syslibs
8a2ced6314457d47739deef08adb9ff4  0001-hardened.patch
2539b4abe49d669ae01a4239fb14243f  0002-verbose-build.patch
0fc44cc7b6a0167ee1e36310364e7049  0003-no-clean-docs.patch
e5a50262e22a97d7f8108e6e8fc160d1  0004-remove-sysctl.h.patch
3cf5ef31fd586ffac9a29cc3eca00e8a  0008-ldconfig-compat.patch"
sha256sums="e5d12b5a8ddff0131e460612ecf222ddf16014fc64c4fc3d8b021da7ebbd9a9f  julia-0.4.6.tar.gz
872a96b616fc3517526812df11ed188500abff8dd73b75ae92377916b6efd3fe  libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
64c1ac8ee12859cf295d23bc1c840ea52e5abbcf4384ffacdaec0fc2246c252a  Rmath-julia-0.1.tar.gz
b4bdd0dc307a76e51b40aa33de8856e9bd6e3d8be11b4c509d73f05d78a0cb79  find-syslibs
587f87971d0e8fa65cf06653c56f62db283be102f8ed57712cad30d18dfb6c22  0001-hardened.patch
892b3e0b3a94ad53a06574851dd397da4293c371ad980a03daa816a0585cb0ee  0002-verbose-build.patch
8dc6aabe30ff02acfdae7aea3c6ef8fcf397481dfe2a3e2ad7c65bd8d1bbb09a  0003-no-clean-docs.patch
70b9f2957d818ccd93f64a61f87eb5c7476258905d235c8e34745ec9c9e9a649  0004-remove-sysctl.h.patch
7895279378e08f394501af568b08fb59244c272735045b077de1d7ff67810787  0008-ldconfig-compat.patch"
sha512sums="744fbae14f7b38d5f7ef1c39d05c66f42833ee0e07b3f4be2ae377f2c997872777c6f7e9e667f52e5a33879032b2d02d76b00fab59f81ba6552f1fd4165953da  julia-0.4.6.tar.gz
21bdcffd0c13c864bac6a1f42c5f229a57fd91e124ab4c43bd14ab29e5334bfcbdcdda2e16b3b08e8f79df5ab133bac5cdaeb2a88627fe152dd91d5e18154e61  libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
1dd94eca05bc06c3f33e8be5087d3b1742d01c8b38588e0fa79b8f6b9998760bca21bee1b65873825c4dde2d994a8271166bc21f670a34810fa9db598473a887  Rmath-julia-0.1.tar.gz
0283c7b0ff7dd99ae79f6ddac63513ce7d58ba31de506a3fee07af9b8882ddc275d0f9cb002381ba1e304bcacf252612fa16b21b85667422477e6b945b725899  find-syslibs
15968d95b09ed0f2315e08a5fd14e798db7fd1faebd1327ceaf7886248b61d2e61f64e726d98cd70cbc2349c66fc3a707298a2481c6abf98c699826f3f2f4ccb  0001-hardened.patch
266e0170c133e5be98f843adca948a4d13f3549a3a01b0c6220d495149ef26a9a837e9d7b0d9066eb7f8370a46ee5de042882a7dd585ddb245a1573882e32365  0002-verbose-build.patch
2eae3ea85a56b5deaef464d36f543d60afb2e6a65ee4b57b599dd508046a02179ca53c5efd91351c8d0cbd5a3585b236da9b316e82416f9bff249b8b74ded305  0003-no-clean-docs.patch
6c111ccdd12af5b00fdf0b7cc8fba11980fceccf7c246b40e791cd1be8e39cd75b8c290c65ebd9b4add60fc242261e17e94807736fce6a96733e9bf18182b489  0004-remove-sysctl.h.patch
ab53aeaf3464236896295eab25092e4881def9e12483728be4d8323e5d3213c8b0fc064e62d21fd049df9acd2976eee032b254f10d2092ac0a4be4ecf9c319af  0008-ldconfig-compat.patch"