diff options
author | LW-archlinux | 2019-04-06 17:22:47 +0200 |
---|---|---|
committer | LW-archlinux | 2019-04-06 17:22:47 +0200 |
commit | 56972945d360ae269fbad8446ac70072b077799b (patch) | |
tree | 1676b45289f728f0dca50f25d20b97d7cc22778c | |
download | aur-56972945d360ae269fbad8446ac70072b077799b.tar.gz |
initial upload
-rw-r--r-- | .SRCINFO | 51 | ||||
-rw-r--r-- | PKGBUILD | 151 | ||||
-rw-r--r-- | llvm-config.h | 9 |
3 files changed, 211 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..26f35fb5beb6 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,51 @@ +pkgbase = llvm-lw-git + pkgver = 9.0.0_r313655.2ea8dbf5642 + pkgrel = 1 + url = https://llvm.org/ + arch = x86_64 + license = custom:University of Illinois/NCSA Open Source License + makedepends = git + makedepends = cmake + makedepends = ninja + makedepends = libffi + makedepends = libedit + makedepends = ncurses + makedepends = libxml2 + makedepends = ocaml=4.07.1 + makedepends = ocaml-ctypes + makedepends = ocaml-findlib + makedepends = python-sphinx + makedepends = python-recommonmark + options = staticlibs + source = llvm-project::git+https://github.com/llvm/llvm-project.git + source = llvm-config.h + sha256sums = SKIP + sha256sums = 597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48 + +pkgname = llvm-lw-git + pkgdesc = Collection of modular and reusable compiler and toolchain technologies + depends = llvm-libs + depends = perl + optdepends = python-setuptools: for using lit (LLVM Integrated Tester) + provides = llvm + provides = llvm-svn + +pkgname = llvm-libs-lw-git + pkgdesc = LLVM runtime libraries + depends = gcc-libs + depends = zlib + depends = libffi + depends = libedit + depends = ncurses + depends = libxml2 + provides = llvm-libs + provides = llvm-libs-svn + +pkgname = llvm-ocaml-lw-git + pkgdesc = OCaml bindings for LLVM + depends = llvm + depends = ocaml=4.07.1 + depends = ocaml-ctypes + provides = llvm-ocaml + provides = llvm-ocaml-svn + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..d812183b41a1 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,151 @@ +# Maintainer: Lone_Wolf <lonewolf@xs4all.nl> +# Contributor: yurikoles <root@yurikoles.com> +# Contributor: bearoso <bearoso@gmail.com> +# Contributor: Luchesar V. ILIEV <luchesar%2eiliev%40gmail%2ecom> +# Contributor: Anders Bergh <anders@archlinuxppc.org> +# Contributor: Armin K. <krejzi at email dot com> +# Contributor: Christian Babeux <christian.babeux@0x80.ca> +# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> +# Contributor: Evangelos Foutras <evangelos@foutrelis.com> +# Contributor: Hesiod (https://github.com/hesiod) +# Contributor: Roberto Alsina <ralsina@kde.org> +# Contributor: Thomas Dziedzic < gostrc at gmail > +# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> +# Contributor: Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com> + + +pkgname=('llvm-lw-git' 'llvm-libs-lw-git' 'llvm-ocaml-lw-git') +pkgver=9.0.0_r313655.2ea8dbf5642 +pkgrel=1 +_ocaml_ver=4.07.1 +arch=('x86_64') +url="https://llvm.org/" +license=('custom:University of Illinois/NCSA Open Source License') +makedepends=('git' 'cmake' 'ninja' 'libffi' 'libedit' 'ncurses' 'libxml2' + "ocaml=$_ocaml_ver" 'ocaml-ctypes' 'ocaml-findlib' + 'python-sphinx' 'python-recommonmark') +options=('staticlibs') +source=("llvm-project::git+https://github.com/llvm/llvm-project.git" + llvm-config.h) +sha256sums=('SKIP' + '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48') + +pkgver() { + cd "${srcdir}/llvm-project/llvm" + + # This will almost match the output of `llvm-config --version` when the + # LLVM_APPEND_VC_REV cmake flag is turned on. The only difference is + # dash being replaced with underscore because of Pacman requirements. + local _pkgver=$(awk -F 'MAJOR |MINOR |PATCH |)' \ + 'BEGIN { ORS="." ; i=0 } \ + /set\(LLVM_VERSION_/ { print $2 ; i++ ; if (i==2) ORS="" } \ + END { print "\n" }' \ + CMakeLists.txt)_r$(git rev-list --count HEAD).$(git rev-parse --short HEAD) + echo "${_pkgver}" +} + +prepare() { + cd "$srcdir/llvm-project/llvm" + mkdir build +} + +build() { + cd "$srcdir/llvm-project/llvm/build" + + cmake .. -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLLVM_HOST_TRIPLE=$CHOST \ + -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 \ + -DLLVM_BUILD_DOCS=ON \ + -DLLVM_ENABLE_SPHINX=ON \ + -DLLVM_ENABLE_DOXYGEN=OFF \ + -DSPHINX_WARNINGS_AS_ERRORS=OFF \ + -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ + -DLLVM_BINUTILS_INCDIR=/usr/include \ + -DLLVM_VERSION_SUFFIX="" \ + -DLLVM_APPEND_VC_REV=ON + ninja all ocaml_doc +} + +check() { + cd "$srcdir/llvm-project/llvm/build" + ninja check +} + +package_llvm-lw-git() { + pkgdesc="Collection of modular and reusable compiler and toolchain technologies" + depends=('llvm-libs' 'perl') + optdepends=('python-setuptools: for using lit (LLVM Integrated Tester)') + provides=('llvm' 'llvm-svn') + + cd "$srcdir/llvm-project/llvm/build" + + DESTDIR="$pkgdir" ninja install + + # Include lit for running lit-based tests in other projects + pushd ../utils/lit + python3 setup.py install --root="$pkgdir" -O1 + popd + + # Remove documentation sources + rm -r "$pkgdir"/usr/share/doc/llvm/html/{_sources,.buildinfo} + + # The runtime libraries go into llvm-libs + mv -f "$pkgdir"/usr/lib/lib{LLVM,LTO}*.so* "$srcdir" + mv -f "$pkgdir"/usr/lib/LLVMgold.so "$srcdir" + + # OCaml bindings go to a separate package + rm -rf "$srcdir"/ocaml.{lib,doc} + mv "$pkgdir/usr/lib/ocaml" "$srcdir/ocaml.lib" + mv "$pkgdir/usr/share/doc/llvm/ocaml-html" "$srcdir/ocaml.doc" + + if [[ $CARCH == x86_64 ]]; then + # Needed for multilib (https://bugs.archlinux.org/task/29951) + # Header stub is taken from Fedora + mv "$pkgdir/usr/include/llvm/Config/llvm-config"{,-64}.h + cp "$srcdir/llvm-config.h" "$pkgdir/usr/include/llvm/Config/llvm-config.h" + fi + + install -Dm644 ../LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_llvm-libs-lw-git() { + pkgdesc="LLVM runtime libraries" + depends=('gcc-libs' 'zlib' 'libffi' 'libedit' 'ncurses' 'libxml2') + provides=('llvm-libs' 'llvm-libs-svn') + + install -d "$pkgdir/usr/lib" + cp -P \ + "$srcdir"/lib{LLVM,LTO}*.so* \ + "$srcdir"/LLVMgold.so \ + "$pkgdir/usr/lib/" + + # Symlink LLVMgold.so from /usr/lib/bfd-plugins + # https://bugs.archlinux.org/task/28479 + install -d "$pkgdir/usr/lib/bfd-plugins" + ln -s ../LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so" + + install -Dm644 "$srcdir/llvm-project/llvm/LICENSE.TXT" \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_llvm-ocaml-lw-git() { + pkgdesc="OCaml bindings for LLVM" + depends=('llvm' "ocaml=$_ocaml_ver" 'ocaml-ctypes') + provides=('llvm-ocaml' 'llvm-ocaml-svn') + + install -d "$pkgdir"/{usr/lib,usr/share/doc/$pkgname} + cp -a "$srcdir/ocaml.lib" "$pkgdir/usr/lib/ocaml" + cp -a "$srcdir/ocaml.doc" "$pkgdir/usr/share/doc/$pkgname/html" + + install -Dm644 "$srcdir/llvm-project/llvm/LICENSE.TXT" \ + "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# vim:set ts=2 sw=2 et: diff --git a/llvm-config.h b/llvm-config.h new file mode 100644 index 000000000000..2fa08c9be696 --- /dev/null +++ b/llvm-config.h @@ -0,0 +1,9 @@ +#include <bits/wordsize.h> + +#if __WORDSIZE == 32 +#include "llvm-config-32.h" +#elif __WORDSIZE == 64 +#include "llvm-config-64.h" +#else +#error "Unknown word size" +#endif |