# Lib32 Packages for Chakra, part of chakra-project.org # # maintainer (x86_64): Giuseppe CalĂ  # maintainer (x86_64): Anke Boersma # resynced with Arch's version from https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/lib32-llvm # adjusted for Chakra pkgname=('lib32-llvm' 'lib32-llvm-libs') pkgver=3.5.0 pkgrel=1 arch=('x86_64') url="http://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') makedepends=('lib32-libffi' 'lib32-zlib' 'python2' 'gcc-multilib') options=('staticlibs') source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig} http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.xz{,.sig} llvm-3.5.0-force-link-pass.o.patch) sha256sums=('28e199f368ef0a4666708f31c7991ad3bcc3a578342b0306526dd35f07595c03' 'SKIP' 'a4b3e655832bf8d9a357ea2c771db347237460e131988cbb96cda40ff39a8136' 'SKIP' '5702053503d49448598eda1b8dc8c263f0df9ad7486833273e3987b5dec25a19') prepare() { cd "$srcdir/llvm-$pkgver.src" mv "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt # Fix installation directories, ./configure doesn't seem to set them right sed -i -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib32:' \ -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ Makefile.config.in sed -i '/ActiveLibDir = ActivePrefix/s:lib:lib32:' \ tools/llvm-config/llvm-config.cpp sed -i 's:LLVM_LIBDIR="${prefix}/lib":LLVM_LIBDIR="${prefix}/lib32":' \ autoconf/configure.ac \ configure # Fix build with GCC 4.9 (patch from Debian) # http://llvm.org/bugs/show_bug.cgi?id=20067 patch -Np1 -i "$srcdir/llvm-3.5.0-force-link-pass.o.patch" } build() { cd "$srcdir/llvm-$pkgver.src" export CC="gcc -m32" export CXX="g++ -m32" export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" # Apply strip option to configure _optimized_switch="enable" [[ $(check_option strip) == n ]] && _optimized_switch="disable" # Include location of libffi headers in CPPFLAGS CPPFLAGS+=" $(pkg-config --cflags libffi)" # We had to force host and target to get # a proper triplet reported by llvm ./configure \ --prefix=/usr \ --libdir=/usr/lib32 \ --sysconfdir=/etc \ --enable-shared \ --enable-libffi \ --enable-targets=all \ --disable-expensive-checks \ --disable-debug-runtime \ --disable-assertions \ --with-binutils-include=/usr/include \ --with-python=/usr/bin/python2 \ --build=i686-pc-linux-gnu \ --host=i686-pc-linux-gnu \ --$_optimized_switch-optimized make REQUIRES_RTTI=1 } package_lib32-llvm() { pkgdesc="Low Level Virtual Machine (32-bit)" depends=('lib32-llvm-libs' "llvm=${pkgver}") cd "$srcdir/llvm-$pkgver.src" make DESTDIR="$pkgdir" install # The runtime library goes into lib32-llvm-libs mv "$pkgdir/usr/lib32/libLLVM-$pkgver.so" "$srcdir/" mv "$pkgdir/usr/lib32/libLLVM-${pkgver%.*}.so" "$srcdir/" # Fix permissions of static libs chmod -x "$pkgdir"/usr/lib32/*.a mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/lib32/llvm-config" # Get rid of example Hello transformation rm "$pkgdir"/usr/lib32/*LLVMHello.* # Symlink LLVMgold.so from /usr/lib32/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" mv "$pkgdir"/usr/include/llvm/Config/*config.h "$pkgdir/" rm -rf "$pkgdir"/usr/{bin,include,share/{doc,man,llvm}} install -d "$pkgdir/usr/include/llvm/Config" mv "$pkgdir/config.h" "$pkgdir/usr/include/llvm/Config/config-32.h" mv "$pkgdir/llvm-config.h" "$pkgdir/usr/include/llvm/Config/llvm-config-32.h" mkdir "$pkgdir"/usr/bin mv "$pkgdir/usr/lib32/llvm-config" "$pkgdir/usr/bin/llvm-config32" install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_lib32-llvm-libs() { pkgdesc="Low Level Virtual Machine (runtime library)(32-bit)" depends=('lib32-libffi' 'lib32-zlib' 'lib32-gcc-libs') cd "$srcdir" install -d "$pkgdir/usr/lib32" cp -P libLLVM-$pkgver.so libLLVM-${pkgver%.*}.so "$pkgdir/usr/lib32/" install -Dm644 llvm-$pkgver.src/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } # vim:set ts=2 sw=2 et: