# Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka # 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. setvar pkgname = 'emscripten-fastcomp' # Keep in sync with package emscripten! setvar pkgver = '1.37.10' setvar pkgrel = '0' setvar pkgdesc = ""The Clang + LLVM backend for Emscripten"" setvar url = ""https://kripken.github.io/emscripten-site/"" setvar arch = ""all"" setvar license = ""UOI-NCSA"" setvar depends = ""python2"" setvar makedepends = ""cmake paxmark zlib-dev"" setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/kripken/$pkgname/archive/$pkgver.tar.gz $pkgname-clang-$pkgver.tar.gz::https://github.com/kripken/$pkgname-clang/archive/$pkgver.tar.gz llvm-fix-build-with-musl-libc.patch llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch"" setvar builddir = ""$srcdir/$pkgname-$pkgver"" setvar options = ""!check"" # some tests are broken, don't bother with it for now setvar _prefix = ""usr/lib/$pkgname"" setvar ldpath = ""/$_prefix/lib"" # Avoid conflicts in provided so:* names with llvm package. setvar sonameprefix = ""$pkgname:"" proc prepare { ln -sf ../../$pkgname-clang-$pkgver "$builddir"/tools/clang default_prepare } proc 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/python2 \ -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 } proc 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 } setvar sha512sums = ""911c4b1a23da149161dd2a8cc8e7b59db55f0d35665aa589edbf1207d8cf5c21e1dfab6af5a1bf99172bedda50b42ebc74d651eaa9a1f9547ad459e6adb074d7 emscripten-fastcomp-1.37.10.tar.gz 0c01945fe9a9e31c130f70baa7d495aba49bc951bb4043979d331b3173f2527dcbc0e0a8b9c670ac8ccfdf80db4c8393d38bba2aa1e49bca09c99d6aa43a1152 emscripten-fastcomp-clang-1.37.10.tar.gz f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch 19bfb9282455d39d07dbb2b1293b03a45c57d522fbb9c5e58dac034200669628b97e7a90cd4ff5d52d9bb79acfccbef653d8a1140a7f0589ecd6f9b7c4ba0eb6 llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch""