aboutsummaryrefslogtreecommitdiffstats
path: root/main/llvm/APKBUILD
blob: a4ce52f51f0b40c39506a17d876497ac2bba7734 (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
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: William Pitcock <nenolod@dereferenced.org>
pkgname=llvm
pkgver=2.9
pkgrel=2
pkgdesc="low level virtual machine compiler system"
arch="x86 x86_64"
url="http://llvm.org/"
license="UOI-NCSA"
depends=
makedepends="groff perl libffi-dev"
install=
subpackages="clang $pkgname-dev $pkgname-doc $pkgname-libs"
source="http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz
	http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
	clang-2.9-alpine-linux.patch
	"

_builddir="$srcdir"/build

prepare() {
	mkdir "$_builddir"

	msg "Preparing CLANG sources..."

	mv "$srcdir"/clang-$pkgver "$srcdir"/$pkgname-$pkgver/tools/clang

	msg "Patching LLVM core..."

	cd "$srcdir"/$pkgname-$pkgver

	for i in $source; do
		case $i in
		*.patch)
			msg "Applying $i..."
			patch -s -p1 -N -i "$srcdir"/$i || return 1
			;;
		esac
	done
}

build() {
	cd "$_builddir"
	../$pkgname-$pkgver/configure \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--enable-ffi  \
		--enable-shared \
		|| return 1

	# configure gets it wrong. We do have error_t
	sed -i -e 's/.*undef HAVE_ERROR_T.*/#define HAVE_ERROR_T 1/'  \
		-e '/define error_t/d' \
		./include/llvm/Config/config.h || return 1

	make || return 1
}

package() {
	cd "$_builddir"
	make DESTDIR="$pkgdir" install

	#relocate docs
	mkdir -p "$pkgdir"/usr/share/doc
	mv "$pkgdir"/usr/docs/llvm "$pkgdir"/usr/share/doc/ || return 1
	rmdir "$pkgdir"/usr/docs || return 1
}

clang() {
	pkgdesc="A C language family front-end for LLVM"
	mkdir -p "$subpkgdir"/usr/bin \
		"$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/bin/clang* "$pkgdir"/usr/bin/tblgen \
		"$subpkgdir"/usr/bin/ || return 1
	mv "$pkgdir"/usr/lib/clang \
		"$pkgdir"/usr/lib/libclang.so \
		"$subpkgdir"/usr/lib/ || return 1
	
}

libs() {
	pkgdesc="LLVM shared libraries"
	mkdir -p "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/lib/*.so "$subpkgdir"/usr/lib/
}

md5sums="793138412d2af2c7c7f54615f8943771  llvm-2.9.tgz
634de18d04b7a4ded19ec4c17d23cfca  clang-2.9.tgz
9aff59aadf89e56e173fa7be011915f1  clang-2.9-alpine-linux.patch"