blob: a7d48d9469132173aa4b7661036612f6822f6cce (
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
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
# NOTE: This is a fork of LLVM project needed for emscripten. It provides
# JSBackend and WebAssembly, these will be hopefully someday merged into
# upstream LLVM.
# TODO: Remove unneeded binaries.
pkgname=emscripten-fastcomp
# Keep in sync with package emscripten!
pkgver=1.39.0
pkgrel=0
pkgdesc="The Clang + LLVM backend for Emscripten"
url="https://emscripten.org/"
arch="all"
license="UOI-NCSA"
depends="python3"
makedepends="cmake paxmark zlib-dev"
source="emscripten-fastcomp-$pkgver.tar.gz::https://github.com/emscripten-core/emscripten-fastcomp/archive/$pkgver.tar.gz
emscripten-fastcomp-clang-$pkgver.tar.gz::https://github.com/emscripten-core/emscripten-fastcomp-clang/archive/$pkgver.tar.gz
llvm-fix-build-with-musl-libc.patch
"
options="!check" # some tests are broken, don't bother with it for now
_prefix="usr/lib/$pkgname"
ldpath="/$_prefix/lib"
# Avoid conflicts in provided so:* names with llvm package.
sonameprefix="$pkgname:"
prepare() {
ln -sf ../../$pkgname-clang-$pkgver "$builddir"/tools/clang
default_prepare
}
build() {
mkdir -p "$builddir"/build
cd "$builddir"/build
# XXX: Is it a good idea to omit X86 in LLVM_TARGETS_TO_BUILD?
# https://github.com/kripken/emscripten-fastcomp/issues/174
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="/$_prefix" \
-DCMAKE_VERBOSE_MAKEFILE=NO \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DCLANG_BUILD_EXAMPLES=OFF \
-DCLANG_INCLUDE_TESTS=OFF \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_BUILD_RUNTIME=OFF \
-DLLVM_ENABLE_ZLIB=ON \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly \
-DLLVM_HOST_TRIPLE="$CHOST" \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_TARGETS_TO_BUILD=JSBackend
make -j ${JOBS:-2}
paxmark m \
bin/llvm-rtdyld \
bin/lli \
bin/lli-child-target
}
package() {
cd "$builddir"/build
make install DESTDIR="$pkgdir"
cd "$pkgdir"/$_prefix
# emcc -v expects this file to exist.
cp "$builddir"/emscripten-version.txt .
# Remove unneeded files and clutter.
rm -r include libexec share lib/clang lib/cmake
rm lib/*.a bin/*-test
}
sha512sums="574e5b4cf86f16ae455b1f399ecec414f4d791b1b3b49afcd21e967bad62efc572e9f4cd1d2bdce050214ab25e419149bdbfc89cc868ab1019d6ca24c245db63 emscripten-fastcomp-1.39.0.tar.gz
58422eabd5795d1f9a5806862e7e2ec4489542227765064fa2f7f0930a6b96b59185302ded976189666a4fb452450fbfb37a525b8c7a3d1cc33b7e39b9909dcf emscripten-fastcomp-clang-1.39.0.tar.gz
f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch"
|