mirror of
https://gitdl.cn/https://github.com/chakralinux/lib32.git
synced 2025-01-24 09:52:15 +08:00
147 lines
5.0 KiB
Bash
147 lines
5.0 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>
|
|
|
|
pkgname=('lib32-llvm')
|
|
pkgver=2.9
|
|
pkgrel=1
|
|
arch=('x86_64')
|
|
url="http://llvm.org/"
|
|
license=('custom:University of Illinois/NCSA Open Source License')
|
|
makedepends=('lib32-libffi' 'python2' 'gcc-multilib')
|
|
source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.tgz
|
|
http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
|
|
ftp://ftp.archlinux.org/other/community/clang/gcc-headers-4.5.2.tar.xz
|
|
clang-plugin-loader-registry.patch
|
|
cindexer-clang-path.patch
|
|
clang-toolchains-gcc-versions.patch
|
|
clang-pure64.patch
|
|
enable-lto.patch)
|
|
md5sums=('793138412d2af2c7c7f54615f8943771'
|
|
'634de18d04b7a4ded19ec4c17d23cfca'
|
|
'70e23a3dc2b38ecb2bb4d2c48f47295d'
|
|
'02c23b4aaca3445b8bf39fddb2f9906e'
|
|
'87a7162dbe99e9ffce6c40bd09f5f4f0'
|
|
'8da236120a9a287a977b575b8b905c93'
|
|
'225ee6b531f8327f34f344a18cb4ec81'
|
|
'8f7582d7440e4a8342c3aea9ec714fb4')
|
|
|
|
build() {
|
|
cd "$srcdir/llvm-$pkgver"
|
|
|
|
export CC="gcc -m32"
|
|
export CXX="g++ -m32"
|
|
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
|
|
|
|
# Fix symbolic links from OCaml bindings to LLVM libraries
|
|
sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml
|
|
|
|
# Fix installation directories, ./configure doesn't seem to set them right
|
|
sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
|
|
-e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib32/llvm:' \
|
|
-e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
|
|
Makefile.config.in
|
|
|
|
# Fix insecure rpath (http://bugs.archlinux.org/task/14017)
|
|
sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
|
|
|
|
# Get the correct list of symbols to export
|
|
# See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html
|
|
patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch"
|
|
|
|
# Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
|
|
#patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch"
|
|
|
|
# Add GCC 4.6.0 to GccVersions (FS#23631)
|
|
#patch -d tools/clang -Np1 -i "$srcdir/clang-toolchains-gcc-versions.patch"
|
|
|
|
# Adjust lib paths
|
|
#patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch"
|
|
|
|
# Make -flto work
|
|
# Use gold instead of default linker, and always use the plugin
|
|
#patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch"
|
|
|
|
# Apply strip option to configure
|
|
_optimized_switch="enable"
|
|
[[ $(check_option strip) == n ]] && _optimized_switch="disable"
|
|
|
|
# Include location of libffi headers in CPPFLAGS
|
|
export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
|
|
|
|
# TODO: Uncomment when clang works with GCC 4.6+
|
|
#_cxx_headers="/usr/include/c++/$_gcc_ver"
|
|
#if [[ ! -d $_cxx_headers ]]; then
|
|
# error "Couldn't find the C++ headers, PKGBUILD needs fixing!"
|
|
# return 1
|
|
#fi
|
|
_cxx_headers="/usr/include/c++/clang-$pkgver"
|
|
|
|
_32bit_headers=""
|
|
if [[ $CARCH == x86_64 ]]; then
|
|
# Important for multilib
|
|
_32bit_headers="32"
|
|
fi
|
|
|
|
./configure \
|
|
--prefix=/usr \
|
|
--libdir=/usr/lib32/llvm \
|
|
--sysconfdir=/etc \
|
|
--enable-shared \
|
|
--enable-libffi \
|
|
--enable-targets=all \
|
|
--disable-expensive-checks \
|
|
--disable-debug-runtime \
|
|
--disable-assertions \
|
|
--with-binutils-include=/usr/include \
|
|
--with-cxx-include-root=$_cxx_headers \
|
|
--with-cxx-include-arch=$CHOST \
|
|
--with-cxx-include-32bit-dir=$_32bit_headers \
|
|
--$_optimized_switch-optimized
|
|
|
|
make REQUIRES_RTTI=1
|
|
}
|
|
|
|
package() {
|
|
pkgdesc="Low Level Virtual Machine (32 bits version)"
|
|
depends=('perl' 'lib32-libffi' 'llvm')
|
|
|
|
cd "$srcdir/llvm-$pkgver"
|
|
|
|
# We move the clang directory out of the tree so it won't get installed and
|
|
# then we bring it back in for the clang package
|
|
# mv tools/clang "$srcdir"
|
|
# -j1 is due to race conditions during the installation of the OCaml bindings
|
|
make -j1 DESTDIR="$pkgdir" install
|
|
# mv "$srcdir/clang" tools
|
|
|
|
# OCaml bindings go to a separate package
|
|
# rm -rf "$srcdir"/{ocaml,ocamldoc}
|
|
# mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir"
|
|
|
|
# Remove duplicate files installed by the OCaml bindings
|
|
# rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz}
|
|
|
|
# Fix permissions of static libs
|
|
chmod -x "$pkgdir"/usr/lib32/llvm/*.a
|
|
|
|
# Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487)
|
|
#sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' "$pkgdir/usr/bin/llvm-config"
|
|
sed -i 's:ABS_RUN_DIR/lib:ABS_RUN_DIR/llvm:' "$pkgdir/usr/bin/llvm-config"
|
|
mv "$pkgdir/usr/bin/llvm-config" "$pkgdir/usr/lib32/llvm/llvm-config"
|
|
# Get rid of example Hello transformation
|
|
rm "$pkgdir"/usr/lib32/llvm/*LLVMHello.*
|
|
|
|
# Symlink the gold plugin where clang expects it
|
|
ln -s llvm/LLVMgold.so "$pkgdir/usr/lib32/LLVMgold.so"
|
|
|
|
# Add ld.so.conf.d entry
|
|
install -d "$pkgdir/etc/ld.so.conf.d"
|
|
echo /usr/lib32/llvm >"$pkgdir/etc/ld.so.conf.d/llvm32.conf"
|
|
|
|
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
|
|
rm -r "$pkgdir"/usr/{bin,include,share/{doc,man}}
|
|
}
|