lib32/lib32-llvm/PKGBUILD
2014-10-26 02:17:10 -04:00

132 lines
4.2 KiB
Bash

# Lib32 Packages for Chakra, part of chakra-project.org
#
# maintainer (x86_64): Giuseppe Calà <jiveaxe@gmail.com>
# maintainer (x86_64): Anke Boersma <abveritas[at]chakra-project[dot]org>
# 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: