mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-05 15:47:15 +08:00
170 lines
6.1 KiB
Bash
170 lines
6.1 KiB
Bash
# $Id: PKGBUILD 16819 2010-05-10 11:55:29Z foutrelis $
|
|
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
|
|
# Contributor: Sebastian Nowicki <sebnow@gmail.com>
|
|
# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
|
|
# Contributor: Tobias Kieslich <tobias@justdreams.de>
|
|
# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
|
|
# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
|
|
# Contributor: Roberto Alsina <ralsina@kde.org>
|
|
# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
|
|
|
|
pkgname=('llvm' 'llvm-ocaml')
|
|
#pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer')
|
|
pkgver=2.6
|
|
pkgrel=1
|
|
arch=('i686' 'x86_64')
|
|
license=('custom:University of Illinois/NCSA Open Source License')
|
|
makedepends=('gcc-libs' 'libffi' 'python' 'ocaml')
|
|
source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tar.gz)
|
|
# http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz
|
|
# cpp-headers.patch
|
|
# clang-plugin-loader-registry.patch)
|
|
md5sums=('34a11e807add0f4555f691944e1a404a')
|
|
# '09d696bf23bb4a3cf6af3c7341cdd946'
|
|
# '3f2bb0052b8f856f47ce01d771e78cad'
|
|
# '358346f002abd546feeea80cd5937dd6')
|
|
|
|
build() {
|
|
cd "$srcdir/$pkgname-$pkgver"
|
|
|
|
# At the present, clang must reside inside the LLVM source code tree to build
|
|
# See http://llvm.org/bugs/show_bug.cgi?id=4840
|
|
# rm -rf tools/clang
|
|
# cp -r "$srcdir/clang-$pkgver" tools/clang
|
|
|
|
# Fix symbolic links from OCaml bindings to LLVM libraries
|
|
sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' \
|
|
bindings/ocaml/Makefile.ocaml || return 1
|
|
|
|
# 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)/lib/llvm:' \
|
|
-e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
|
|
Makefile.config.in || return 1
|
|
|
|
# Fix insecure rpath (http://bugs.archlinux.org/task/14017)
|
|
sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' \
|
|
Makefile.rules || return 1
|
|
|
|
# Update hardcoded path to C++ header files
|
|
# patch -d tools/clang -p1 -i "$srcdir/cpp-headers.patch" || return 1
|
|
|
|
# Get the correct list of symbols to export
|
|
# See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html
|
|
# patch -p1 -i "$srcdir/clang-plugin-loader-registry.patch" || return 1
|
|
|
|
# Apply strip option to configure
|
|
_optimize_flag="--enable-optimize"
|
|
[ "$(check_option strip)" = "n" ] && _optimize_flag="--disable-optimize"
|
|
|
|
# Include location of libffi headers in CPPFLAGS
|
|
export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
|
|
|
|
./configure --prefix=/usr --libdir=/usr/lib/llvm --sysconfdir=/etc \
|
|
--enable-shared --enable-libffi \
|
|
--enable-bindings=ocaml --enable-targets=all \
|
|
--disable-expensive-checks --disable-debug-runtime \
|
|
--disable-assertions $_optimize_flag
|
|
make || return 1
|
|
}
|
|
|
|
package_llvm() {
|
|
pkgdesc="Low Level Virtual Machine"
|
|
url="http://llvm.org/"
|
|
depends=('perl' 'libffi')
|
|
|
|
cd "$srcdir/$pkgname-$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 || return 1
|
|
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/lib/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" || return 1
|
|
|
|
# Get rid of example Hello transformation
|
|
rm "$pkgdir"/usr/lib/llvm/*LLVMHello.*
|
|
|
|
# Add ld.so.conf.d entry
|
|
install -d "$pkgdir/etc/ld.so.conf.d"
|
|
echo /usr/lib/llvm >"$pkgdir/etc/ld.so.conf.d/llvm.conf"
|
|
|
|
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
}
|
|
|
|
package_llvm-ocaml() {
|
|
pkgdesc="OCaml bindings for LLVM"
|
|
depends=("llvm=$pkgver-$pkgrel" 'ocaml')
|
|
|
|
cd "$srcdir/llvm-$pkgver"
|
|
|
|
install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm}
|
|
mv "$srcdir/ocaml" "$pkgdir/usr/lib"
|
|
mv "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm"
|
|
|
|
# Remove execute bit from static libraries
|
|
chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a
|
|
|
|
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE"
|
|
}
|
|
|
|
package_clang() {
|
|
pkgdesc="C language family frontend for LLVM"
|
|
url="http://clang.llvm.org/"
|
|
# It looks like clang still needs GCC to assemble and link object files
|
|
# See http://old.nabble.com/%22clang--v%22-shows-a-GCC-call-td28378453.html
|
|
depends=("llvm=$pkgver-$pkgrel" 'gcc')
|
|
|
|
# Fix installation path for clang docs
|
|
sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
|
|
"$srcdir/llvm-$pkgver/Makefile.config" || return 1
|
|
|
|
cd "$srcdir/llvm-$pkgver/tools/clang"
|
|
make DESTDIR="$pkgdir" install || return 1
|
|
|
|
# Fix permissions of static libs
|
|
chmod -x "$pkgdir"/usr/lib/llvm/*.a
|
|
|
|
# Revert the path change in case we want to do a repackage later
|
|
sed -i 's:$(PROJ_prefix)/share/doc/clang:$(PROJ_prefix)/share/doc/llvm:' \
|
|
"$srcdir/llvm-$pkgver/Makefile.config" || return 1
|
|
|
|
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE"
|
|
}
|
|
|
|
package_clang-analyzer() {
|
|
pkgdesc="A source code analysis framework"
|
|
url="http://clang-analyzer.llvm.org/"
|
|
depends=("clang=$pkgver-$pkgrel" 'python')
|
|
|
|
cd "$srcdir/llvm-$pkgver/tools/clang"
|
|
|
|
install -d "$pkgdir"/usr/{bin,lib/clang-analyzer}
|
|
for tool in scan-{build,view}; do
|
|
cp -r tools/$tool "$pkgdir/usr/lib/clang-analyzer"
|
|
ln -s /usr/lib/clang-analyzer/$tool/$tool "$pkgdir/usr/bin"
|
|
done
|
|
|
|
# Compile Python scripts
|
|
python -m compileall "$pkgdir/usr/lib/clang-analyzer" || return 1
|
|
python -O -m compileall "$pkgdir/usr/lib/clang-analyzer" || return 1
|
|
|
|
install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE"
|
|
}
|
|
|
|
# vim:set ts=2 sw=2 et:
|