diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..9e2f5c17a5f2 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,126 @@ +# $Id: PKGBUILD 310007 2017-11-15 14:11:34Z foutrelis $ +# Maintainer: Evangelos Foutras <evangelos@foutrelis.com> +# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> +# Contributor: Sebastian Nowicki <sebnow@gmail.com> +# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us> +# Contributor: Tobias Kieslich <tobias@justdreams.de> +# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org> +# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> +# Contributor: Roberto Alsina <ralsina@kde.org> +# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> + +# This package is meant to be used for compiling packages that have not been +# ported to LLVM 4.0 yet. Such packages may depend on llvm39-libs but not on +# llvm39 or clang39 which are not co-installable with the LLVM 4.0 packages. + +pkgname=('llvm39' 'llvm39-libs' 'clang39') +pkgver=3.9.1 +pkgrel=3 +arch=('x86_64') +url="http://llvm.org/" +license=('custom:University of Illinois/NCSA Open Source License') +makedepends=('cmake' 'libffi' 'python2' 'libedit') +options=('staticlibs') +source=(https://releases.llvm.org/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} + https://releases.llvm.org/$pkgver/cfe-$pkgver.src.tar.xz{,.sig} + 0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch + 0002-Enable-SSP-and-PIE-by-default.patch + disable-llvm-symbolizer-test.patch) +sha256sums=('1fd90354b9cf19232e8f168faf2220e79be555df3aa743242700879e8fd329ee' + 'SKIP' + 'e6c4cebb96dee827fa0470af313dff265af391cb6da8d429842ef208c8f25e63' + 'SKIP' + 'd26239d03983fab1f34970b94d727379ca0be689f5826e50503c4d2f314f207a' + '010d2e2f2a7d1a8aa027ebb912722910069d74ae815f697bc7efc0f3b5d8dbea' + '6fff47ab5ede79d45fe64bb4903b7dfc27212a38e6cd5d01e60ebd24b7557359') +validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294') + +prepare() { + cd "$srcdir/llvm-$pkgver.src" + mkdir build + + mv "$srcdir/cfe-$pkgver.src" tools/clang + + # Disable test that fails when compiled as PIE + # https://bugs.llvm.org/show_bug.cgi?id=31870 + patch -Np1 -i ../disable-llvm-symbolizer-test.patch + + # Enable SSP and PIE by default + patch -Np1 -d tools/clang <../0001-GCC-compatibility-Ignore-the-fno-plt-flag.patch + patch -Np1 -d tools/clang <../0002-Enable-SSP-and-PIE-by-default.patch +} + +build() { + cd "$srcdir/llvm-$pkgver.src/build" + + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_BUILD_TESTS=ON \ + -DCLANG_INSTALL_SCANBUILD=OFF \ + -DCLANG_INSTALL_SCANVIEW=OFF \ + -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ + -DLLVM_BINUTILS_INCDIR=/usr/include \ + .. + + make + + # Disable automatic installation of components that go into subpackages + sed -i '/clang\/cmake_install.cmake/d' tools/cmake_install.cmake +} + +check() { + cd "$srcdir/llvm-$pkgver.src/build" + make check-{llvm,clang} +} + +package_llvm39() { + pkgdesc="Low Level Virtual Machine" + depends=('llvm39-libs' 'perl') + conflicts=('llvm' 'llvm35') + + cd "$srcdir/llvm-$pkgver.src" + + make -C build DESTDIR="$pkgdir" install + + # The runtime library goes into llvm39-libs + mv -f "$pkgdir"/usr/lib/libLLVM-*.so "$srcdir" + + # Remove files which conflict with llvm-libs + rm "$pkgdir"/usr/lib/{LLVMgold,lib{LLVM,LTO}}.so + + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_llvm39-libs() { + pkgdesc="Low Level Virtual Machine (runtime libraries)" + depends=('gcc-libs' 'zlib' 'libffi' 'libedit' 'ncurses') + + install -d "$pkgdir/usr/lib" + cp -P "$srcdir"/libLLVM-*.so "$pkgdir/usr/lib/" + + install -Dm644 "$srcdir/llvm-$pkgver.src/LICENSE.TXT" \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_clang39() { + pkgdesc="C language family frontend for LLVM" + url="http://clang.llvm.org/" + depends=('llvm39-libs' 'gcc' 'libxml2') + optdepends=('openmp: OpenMP support in clang with -fopenmp') + conflicts=('clang' 'clang35') + + cd "$srcdir/llvm-$pkgver.src" + + make -C build/tools/clang DESTDIR="$pkgdir" install + + install -Dm644 tools/clang/LICENSE.TXT \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# vim:set ts=2 sw=2 et: |