diff options
author | LW-archlinux | 2019-05-03 15:50:39 +0200 |
---|---|---|
committer | LW-archlinux | 2019-05-03 15:50:39 +0200 |
commit | 78277a4c2e64259d67e74d6bde6aeb52a2032cee (patch) | |
tree | b4f29164768fe12f74290f3243cdd2263a4377b7 | |
parent | d2aba7d38b57ec3436f8a612b22811ad6ee09d6b (diff) | |
download | aur-78277a4c2e64259d67e74d6bde6aeb52a2032cee.tar.gz |
many changes to get package working with lib32-mesa-git and closer to llvm-git
-rw-r--r-- | .SRCINFO | 41 | ||||
-rw-r--r-- | PKGBUILD | 202 |
2 files changed, 126 insertions, 117 deletions
@@ -1,42 +1,41 @@ pkgbase = lib32-llvm-git pkgdesc = Collection of modular and reusable compiler and toolchain technologies (32-bit, git) - pkgver = 9.0.0_r313674.af7314b3179 + pkgver = 9.0.0_r315633.d3cfaae2430 pkgrel = 1 url = https://llvm.org/ arch = x86_64 license = custom:University of Illinois/NCSA Open Source License makedepends = cmake - makedepends = gcc-multilib + makedepends = lib32-gcc-libs makedepends = git makedepends = lib32-libffi makedepends = lib32-libxml2 makedepends = lib32-zlib makedepends = ninja makedepends = python + source = llvm-project::git+https://github.com/llvm/llvm-project.git + sha512sums = SKIP + +pkgname = lib32-llvm-git + depends = lib32-llvm-libs-git + depends = llvm-git + provides = llvm=9.0.0_r315633.d3cfaae2430-1 + provides = clang=9.0.0_r315633.d3cfaae2430-1 + provides = lib32-clang-git + provides = lib32-clang-svn + provides = lib32-llvm-svn + conflicts = lib32-llvm + conflicts = lib32-clang + conflicts = lib32-llvm-svn + conflicts = lib32-clang-svn + +pkgname = lib32-llvm-libs-git depends = lib32-gcc-libs depends = lib32-libffi depends = lib32-libxml2 depends = lib32-ncurses depends = lib32-zlib - provides = lib32-clang - provides = lib32-clang-git - provides = lib32-clang-svn - provides = lib32-llvm-libs - provides = lib32-llvm-libs-git + provides = lib32-llvm-libs=9.0.0_r315633.d3cfaae2430-1 provides = lib32-llvm-libs-svn - provides = lib32-llvm-svn - conflicts = lib32-clang - conflicts = lib32-clang-git - conflicts = lib32-clang-svn - conflicts = lib32-llvm conflicts = lib32-llvm-libs - conflicts = lib32-llvm-libs-git - conflicts = lib32-llvm-libs-svn - conflicts = lib32-llvm-svn - options = staticlibs - options = !strip - source = llvm::git+https://github.com/llvm/llvm-project.git - sha256sums = SKIP - -pkgname = lib32-llvm-git @@ -9,54 +9,21 @@ # Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> # Contributor: Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com> -pkgname=lib32-llvm-git +pkgbase=lib32-llvm-git +pkgname=(lib32-llvm-git lib32-llvm-libs-git) _pkgname='llvm' pkgdesc="Collection of modular and reusable compiler and toolchain technologies (32-bit, git)" -pkgver=9.0.0_r313674.af7314b3179 +pkgver=9.0.0_r315633.d3cfaae2430 pkgrel=1 arch=('x86_64') url='https://llvm.org/' license=('custom:University of Illinois/NCSA Open Source License') -makedepends=( - 'cmake' - 'gcc-multilib' - 'git' - 'lib32-libffi' - 'lib32-libxml2' - 'lib32-zlib' - 'ninja' - 'python') -depends=( - 'lib32-gcc-libs' - 'lib32-libffi' - 'lib32-libxml2' - 'lib32-ncurses' - 'lib32-zlib') -provides=( - 'lib32-clang' - 'lib32-clang-git' - 'lib32-clang-svn' - 'lib32-llvm-libs' - 'lib32-llvm-libs-git' - 'lib32-llvm-libs-svn' - 'lib32-llvm-svn') -conflicts=( - 'lib32-clang' - 'lib32-clang-git' - 'lib32-clang-svn' - 'lib32-llvm' - 'lib32-llvm-libs' - 'lib32-llvm-libs-git' - 'lib32-llvm-libs-svn' - 'lib32-llvm-svn') -# this is always the latest svn so debug info can be useful -options=('staticlibs' '!strip') - -source=("${_pkgname}::git+https://github.com/llvm/llvm-project.git") -sha256sums=('SKIP') +makedepends=('cmake' 'lib32-gcc-libs' 'git' 'lib32-libffi' 'lib32-libxml2' 'lib32-zlib' 'ninja' 'python') +source=("llvm-project::git+https://github.com/llvm/llvm-project.git") +sha512sums=('SKIP') pkgver() { - cd "${srcdir}/${_pkgname}/${_pkgname}" + cd 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 @@ -70,73 +37,116 @@ pkgver() { } prepare() { - mkdir -p "${srcdir}/build" + # Somehow CMake finds the 64-bit library in /lib first, + # so let's preseed CMAKE_LIBRARY_PATH with /lib32. + sed -i \ + '/^[[:blank:]]*find_library(FFI_LIBRARY_PATH/i\ + list(INSERT CMAKE_LIBRARY_PATH 0 /usr/lib32)' \ + "$srcdir"/llvm-project/llvm/cmake/config-ix.cmake } build() { - export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" - - cd "${srcdir}/build" - cmake -G Ninja \ - -DLLVM_ENABLE_PROJECTS='clang' \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DPYTHON_EXECUTABLE=/usr/bin/python \ - -DLLVM_LIBDIR_SUFFIX=32 \ - -DCMAKE_C_FLAGS:STRING=-m32 \ - -DCMAKE_CXX_FLAGS:STRING=-m32 \ - -DLLVM_TARGET_ARCH:STRING=i686 \ - -DLLVM_CONFIG="/usr/bin/llvm-config32" \ - -DLLVM_HOST_TRIPLE=$CHOST \ - -DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_BINDINGS=OFF \ - -DLLVM_ENABLE_RTTI=ON \ - -DLLVM_ENABLE_FFI=ON \ - -DLLVM_BUILD_TESTS=ON \ - -DLLVM_BUILD_DOCS=OFF \ - -DLLVM_ENABLE_SPHINX=OFF \ - -DLLVM_ENABLE_DOXYGEN=OFF \ - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ - -DLLVM_BINUTILS_INCDIR=/usr/include \ - "../${_pkgname}/${_pkgname}" - - ninja all + if [ -d _build ]; then + rm -rf _build + fi + mkdir _build + cd _build + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + + cmake "$srcdir"/llvm-project/llvm -G Ninja \ + -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLLVM_LIBDIR_SUFFIX=32 \ + -DCMAKE_C_FLAGS:STRING=-m32 \ + -DCMAKE_CXX_FLAGS:STRING=-m32 \ + -DLLVM_TARGET_ARCH:STRING=i686 \ + -DLLVM_HOST_TRIPLE=$CHOST \ + -DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_BINDINGS=OFF \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_FFI=ON \ + -DLLVM_BUILD_TESTS=ON \ + -DLLVM_BUILD_DOCS=OFF \ + -DLLVM_ENABLE_SPHINX=OFF \ + -DLLVM_ENABLE_DOXYGEN=OFF \ + -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ + -DLLVM_BINUTILS_INCDIR=/usr/include \ + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ + -DLLVM_APPEND_VC_REV=ON + + if [[ ! $NINJAFLAGS ]]; then + ninja all + else + ninja "$NINJAFLAGS" all + fi } check() { - cd "${srcdir}/build" - ninja check + cd _build + ninja check-llvm + ninja check-clang } -package() { - cd "${srcdir}/build" +package_lib32-llvm-git() { +depends=('lib32-llvm-libs-git' 'llvm-git') +provides=(llvm=$pkgver-$pkgrel clang=$pkgver-$pkgrel 'lib32-clang-git' + 'lib32-clang-svn' 'lib32-llvm-svn') +conflicts=('lib32-llvm' 'lib32-clang' + 'lib32-llvm-svn' 'lib32-clang-svn') - DESTDIR="$pkgdir" ninja install + cd _build - # Fix permissions of static libs - chmod -x "$pkgdir"/usr/lib32/*.a + DESTDIR="$pkgdir" ninja install - mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/lib32/llvm-config" - mv "$pkgdir/usr/include/llvm/Config/llvm-config.h" \ - "$pkgdir/usr/lib32/llvm-config-32.h" + # The runtime library goes into lib32-llvm-libs + mv "$pkgdir"/usr/lib32/lib{LLVM,LTO}*.so* "$srcdir" + mv -f "$pkgdir"/usr/lib32/LLVMgold.so "$srcdir" - rm -rf "$pkgdir"/usr/{bin,include,libexec,share/{doc,man,llvm,opt-viewer,scan-build,scan-view,clang}} - - # Needed for multilib (https://bugs.archlinux.org/task/29951) - # Header stub is taken from Fedora - install -d "$pkgdir/usr/include/llvm/Config" - mv "$pkgdir/usr/lib32/llvm-config-32.h" "$pkgdir/usr/include/llvm/Config/" - - # mv "$pkgdir/usr/lib32/llvm-config" "$pkgdir/usr/bin/llvm-config32" - - install -d "$pkgdir/usr/lib32" + + mv "$pkgdir"/usr/bin/llvm-config "$pkgdir"/usr/lib32/llvm-config + mv "$pkgdir"/usr/include/llvm/Config/llvm-config.h \ + "$pkgdir"/usr/lib32/llvm-config-32.h - # Symlink LLVMgold.so from /usr/lib/bfd-plugins - # https://bugs.archlinux.org/task/28479 - install -d "$pkgdir/usr/lib32/bfd-plugins" - ln -s ../LLVMgold.so "$pkgdir/usr/lib32/bfd-plugins/LLVMgold.so" + rm -rf "$pkgdir"/usr/{bin,include,libexec,share/{doc,man,llvm,opt-viewer,scan-build,scan-view,clang}} + + # Needed for multilib (https://bugs.archlinux.org/task/29951) + # Header stub is taken from Fedora + install -d "$pkgdir"/usr/include/llvm/Config + mv "$pkgdir"/usr/lib32/llvm-config-32.h "$pkgdir"/usr/include/llvm/Config/ + + install -d "$pkgdir"/usr/bin + mv "$pkgdir"/usr/lib32/llvm-config "$pkgdir"/usr/bin/llvm-config32 + + cd "$srcdir"/llvm-project/ + install -D -m 0644 llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -Dm644 clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE + install -Dm644 clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE + install -Dm644 compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE +} - install -D -m 0644 "${srcdir}/${_pkgname}/${_pkgname}/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" -}
\ No newline at end of file +package_lib32-llvm-libs-git() { + depends=('lib32-gcc-libs' 'lib32-libffi' 'lib32-libxml2' 'lib32-ncurses' 'lib32-zlib') +provides=(lib32-llvm-libs=$pkgver-$pkgrel 'lib32-llvm-libs-svn') +conflicts=('lib32-llvm-libs') + + install -d "$pkgdir/usr/lib32" + + cp -P \ + "$srcdir"/lib{LLVM,LTO}*.so* \ + "$srcdir"/LLVMgold.so \ + "$pkgdir/usr/lib32/" + + # Symlink LLVMgold.so from /usr/lib/bfd-plugins + # https://bugs.archlinux.org/task/28479 + install -d "$pkgdir/usr/lib32/bfd-plugins" + ln -s ../LLVMgold.so "$pkgdir/usr/lib32/bfd-plugins/LLVMgold.so" + + cd "$srcdir"/llvm-project/ + install -D -m 0644 llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + install -Dm644 clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE + install -Dm644 clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE + install -Dm644 compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE + } |