aboutsummaryrefslogtreecommitdiffstats
path: root/testing/ponyc/APKBUILD
blob: 6d74387db92254a9d5c4b0f7bcd7905e7137362a (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
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=ponyc
pkgver=0.32.0
pkgrel=0
pkgdesc="An open-source, actor-model, capabilities-secure, high performance programming language"
url="https://www.ponylang.org"
arch="all !s390x !ppc64le"
license="BSD-2-Clause"
_llvmver=6
depends="binutils-gold"
checkdepends="openssl-dev pcre2-dev"
# Ponyc _is_ compatible with LLVM7, but LLVM7 is pretty buggy on musl.
makedepends="libexecinfo-dev llvm$_llvmver-dev ncurses-dev paxmark
	zlib-dev linux-headers"
options="!check"
subpackages="$pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/ponylang/ponyc/archive/$pkgver.tar.gz
	more-portable-ln.patch
	makefile-remove-march-mtune.patch"

export LLVM_CONFIG=/usr/lib/llvm$_llvmver/bin/llvm-config
# Required to not crash gold: https://sourceware.org/bugzilla/show_bug.cgi?id=23856
export CFLAGS="$CFLAGS -fPIE"

build() {
	make \
		config=release \
		default_pic=true \
		verbose=true

	paxmark m build/release/ponyc \
		build/release/libponyc.tests

	mkdir docs
	build/release/ponyc packages/stdlib -rexpr -g -o docs
}

check() {
	make test
}

package() {
	make \
		config=release \
		default_pic=true \
		ponydir="$pkgdir"/usr/lib/pony/$pkgver \
		prefix="$pkgdir"/usr \
		install

	# links to $pkgdir
	ln -sf /usr/lib/pony/$pkgver/lib/native/libponyrt.a "$pkgdir"/usr/lib/libponyrt.a
	ln -sf /usr/lib/pony/$pkgver/lib/native/libponyrt-pic.a "$pkgdir"/usr/lib/libponyrt-pic.a
	ln -sf /usr/lib/pony/$pkgver/lib/native/libponyc.a "$pkgdir"/usr/lib/libponyc.a
	ln -sf /usr/lib/pony/$pkgver/bin/ponyc "$pkgdir"/usr/bin/ponyc

	# We install these manually in dev()
	rm -r "$pkgdir"/usr/include/

	mkdir -p "$pkgdir"/usr/share/doc/$pkgname
	cp -r docs/stdlib-docs/docs "$pkgdir"/usr/share/doc/$pkgname/stdlib
}

# Note: libponyrt*.a and libponyc.a are needed in runtime.
dev() {
	pkgdesc="$pkgdesc (development files)"
	depends="$pkgname=$pkgver-r$pkgrel"

	mkdir -p "$subpkgdir"/usr/
	mv "$pkgdir"/usr/lib/pony/$pkgver/include "$subpkgdir"/usr
}

sha512sums="16fb61d952017e9c40dd2683fd7ca78b2da1cabbf813f16374b8ab080e28c8c0cd8fd284b9eacd8e05e828dbf1ab647d4d1970be5c7aafd8d2a7e8162e768bf0  ponyc-0.32.0.tar.gz
38aa40f6000dcb823be7b542cdad8d04b6ac4cd0a4fff1a472520a7cb71631fb34e5bee74914fe559674594dd901aede91390809e143dd96c5d68a16f8ac196c  more-portable-ln.patch
c78156bc68332705c41e7f4f8ff65bb77a778d8ee1685e9376473041c9c0b815e96ebc4cfd68b03c5c5c9d53cff8e6c0deba0fc19a9bcb29b7f91caaa15a0803  makefile-remove-march-mtune.patch"