aboutsummaryrefslogtreecommitdiffstats
path: root/testing/ghc/APKBUILD
blob: d8b36fa79b6e4adbba2475124525b080e957b590 (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
#-*-mode: Shell-script; coding: utf-8;-*-
# Maintainer: Mitch Tishmack <mitch.tishmack@gmail.com>
pkgname=ghc
pkgver=8.0.2
pkgrel=0
pkgdesc="The Glasgow Haskell Compiler"
url="http://haskell.org"
subpackages="$pkgname-doc"
arch="x86_64 armhf"
builddir="$srcdir/$pkgname-$pkgver"
source="
	http://downloads.haskell.org/~ghc/${pkgver}/ghc-${pkgver}-src.tar.xz
	0001-rm-ghc-pwd.patch
	0002-Correct-issue-with-libffi-and-glibc.patch
	0003-do-not-use-SHELL.patch
	0004-reproducible-tmp-names.patch
	0005-buildpath-abi-stability.patch
"

# Note ghc's license is basically bsd3. If you'd like to know more visit:
# https://www.haskell.org/ghc/license
# https://ghc.haskell.org/trac/ghc/wiki/Licensing
#
# Note also that ghc is sensitive to the version of llvm used, hence the
# llvm3.7 package.
#
# Ref: https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.0.1
#      https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend
license="custom:bsd3"

# Note, gcc supports --no-pie on alpine linux 3.5+ only. We test for
# that version as it greatly simplifies the apkbuild process. The
# apks built on 3.5 will not work on any prior version of alpine linux.
depends="gmp-dev libffi musl zlib ncurses perl gcc>=6.2.1 llvm3.7"
install=""

# ghc build dependencies
makedepends="
	$depends
	autoconf
	linux-headers
	musl-dev
	ncurses-dev
	gmp-dev
	libffi-dev
	zlib-dev
	binutils-dev
	binutils-gold
	ghc-bootstrap
	paxmark
"

_ghc_build_tmp="$builddir/tmp"

build() {
	cd "$builddir"
	cp mk/build.mk.sample mk/build.mk || return 1
	cat >> mk/build.mk <<-EOF
	BuildFlavour         = perf-llvm
	INTEGER_LIBRARY      = integer-gmp
	BeConservative       = YES
	V                    = 0
	GhcStage3HcOpts     += -O3
	SplitSections        = YES
	EOF

	# Due to patches to the configure script
	autoreconf || return 1

	./configure \
		--prefix=/usr \
		--with-ld=ld.gold || return 1
	make || return 1
}

doc() {
	default_doc
	install -Dm644 "$builddir/LICENSE" "$subpkgdir/usr/share/licenses/$subpkgname/LICENSE" || return 1
}

package() {
	cd "$builddir"
	make -j1 DESTDIR="$pkgdir" install || return 1
	paxmark -m "$pkgdir/usr/lib/ghc-$pkgver/bin/ghc"
	paxmark -m "$pkgdir/usr/lib/ghc-$pkgver/bin/ghc-iserv"
	paxmark -m "$pkgdir/usr/lib/ghc-$pkgver/bin/ghc-iserv-dyn"
	paxmark -m "$pkgdir/usr/lib/ghc-$pkgver/bin/ghc-iserv-prof"
}
md5sums="d0afb5ec441b14527a53d2445cc26ec3  ghc-8.0.2-src.tar.xz
d88f1c2cc5d47fdb5020ef6a7d9d04be  0001-rm-ghc-pwd.patch
13c68861fdbab7239c7b9d8d13592046  0002-Correct-issue-with-libffi-and-glibc.patch
b7037daa0451975c4da0b74d79fad285  0003-do-not-use-SHELL.patch
55c57019d066a787655fad85569e5c2f  0004-reproducible-tmp-names.patch
ef549969967bef4bdbdb504c4bca6544  0005-buildpath-abi-stability.patch"
sha256sums="11625453e1d0686b3fa6739988f70ecac836cadc30b9f0c8b49ef9091d6118b1  ghc-8.0.2-src.tar.xz
aeb7a44a4dd2d7801eabc00fc3cf4b9116ecb0d6c9228b94e14ad7c3c0e3797c  0001-rm-ghc-pwd.patch
fc35b8e669189a4e95069f901ce2b3132c36a292f1f23fb14c6123cd784afa15  0002-Correct-issue-with-libffi-and-glibc.patch
c6b91ee04e1839c1d8d7fbf958f3e676bab59a83e970f419492ca289c4cd726c  0003-do-not-use-SHELL.patch
c9eb654cddda265e9f95c5aade71cc7e9cfb214e98f0bc7dbbf40c69f5a94ee1  0004-reproducible-tmp-names.patch
fba6eaa000c001be068b5e07ab4b71e128bc4eb074210c504ba8250f52566841  0005-buildpath-abi-stability.patch"
sha512sums="58ea3853cd93b556ecdc4abd0be079b2621171b8491f59004ea4e036a4cba4470aaafe6591b942e0a50a64bdc47540e01fe6900212a1ef7087850112d9bfc5ef  ghc-8.0.2-src.tar.xz
128eece1b103f286b915a1563a628b638f03509d18cdb2e6510957d26eb56a4ae66e33c946c0e6c2aac2f947b9646dc88c1f390c69ea21f9dc64e0bef4de4e97  0001-rm-ghc-pwd.patch
6f90b0de1e34c286e54ef14514ffabe17f9012fbc5448b4aacb3687aac065942e0a3a2c1c57b6338121140369a8870b4ce2a6b355c83c43344d4de8909a253a4  0002-Correct-issue-with-libffi-and-glibc.patch
59194e6994c8344c579ec16c3adf3e0cdc7c356b524b12f8b10ec940191463d686782e525537c94ffa8e1bf9efcc36a2b3da3004183586ab0e354ab0a7036e0a  0003-do-not-use-SHELL.patch
b5a5e73a2f01c0cabc96a49776d0d0f3d1d7a10759bb0b2982e7c7f6dc525d0559c0183ee779feb77ec6f2cec3bac17c1a5ba4c3bc0c6f780dfc1ed3dcf6c80e  0004-reproducible-tmp-names.patch
e1c2cef06d307eda4b35521204e95eb54ace5dbcd22de659e95356f884b4424d6304365e4ab45c5116192cba4c095e2e91114bc7cb73d7c7173a7035287d0854  0005-buildpath-abi-stability.patch"