# Contributor: Devin Cofer # Contributor: Tobias Kieslich # Contributor: Geoffroy Carrier # Contributor: Tomas Lindquist Olsen # Contributor: Roberto Alsina # Contributor: Gerardo Exequiel Pozzi pkgname=('llvm' 'clang') pkgver=2.6 pkgrel=1 pkgdesc="Low Level Virtual Machine" arch=('i686' 'x86_64') url="http://llvm.org" license=("custom:University of Illinois/NCSA Open Source License") depends=('libelf') source=("http://llvm.org/releases/$pkgver/llvm-$pkgver.tar.gz" "http://llvm.org/releases/$pkgver/clang-$pkgver.tar.gz") md5sums=('34a11e807add0f4555f691944e1a404a' '09d696bf23bb4a3cf6af3c7341cdd946') sha256sums=('4cd9257350c5ff8b9b139d19497e2396c0604eef0e5d6504f5c1463b09bf2d84' '98e22f4f5877fb3c73abb9ddcb3065ba9c94a21146387da7f905e6fd559d39ea') build() { cd "$srcdir/llvm-$pkgver" mv "../clang-$pkgver/" "tools/clang" # --sysconfdir to configure apparently isn't enough... sed -i 's:$(PROJ_prefix)/etc/llvm:/etc/llvm:' Makefile.config.in || return 1 # --libdir to configure apparently isn't enough... sed -i 's:$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' Makefile.config.in || return 1 # Fix insecure rpath http://bugs.archlinux.org/task/14017 sed -i 's:\$(RPATH) -Wl,\$(ToolDir)::g' Makefile.rules || return 1 # Fix path that points to the build directory sed -i 's:^TOOLDIR.*:TOOLDIR=/usr/bin:' tools/gccas/gccas.sh || return 1 # Remove libHello transformation sed -i 's: Hello::' lib/Transforms/Makefile || return 1 # 64-bit needs PIC _pic_flag="--disable-pic" [ "$CARCH" = "x86_64" ] && _pic_flag="--enable-pic" # Apply strip option to configure _optimize_flag="--enable-optimize" [[ $(check_option strip) = "n" ]] && _optimize_flag="--disable-optimize" ./configure --prefix=/usr --libdir=/usr/lib/llvm --sysconfdir=/etc \ --enable-bindings=none --enable-targets=host-only --enable-jit \ --disable-debug-runtime --disable-expensive-checks --disable-assertions \ $_pic_flag $_optimize_flag || return 1 make || return 1 } package_llvm() { cd "$srcdir/llvm-$pkgver" make DESTDIR="$pkgdir" install || return 1 # Fix libpatch in llvm-config sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' \ "$pkgdir/usr/bin/llvm-config" || return 1 # PostScript docs and such rm -rf "$pkgdir/usr/docs/" # Check this after each LLVM release... the files LLVM+Clang installs but LLVM doesn't rm "$pkgdir/usr/bin/clang" || return 1 rm -rf "$pkgdir/usr/lib/clang/" || return 1 rm -rf "$pkgdir/usr/libexec/" || return 1 rm "$pkgdir/usr/share/man/man1/clang.1" || return 1 install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || return 1 } package_clang() { pkgdesc="C language family frontend for LLVM" url="http://clang.llvm.org/" depends=("llvm=$pkgver") cd "$srcdir/llvm-$pkgver" make DESTDIR="$pkgdir" install || return 1 # Check this after each LLVM release... the files LLVM+Clang installs but LLVM doesn't rm -rf "$startdir/tmp/" mkdir -p "$startdir/tmp/usr/"{bin,lib,share/man/man1}/ mv "$pkgdir/usr/bin/clang" "$startdir/tmp/usr/bin/" || return 1 mv "$pkgdir/usr/lib/clang/" "$startdir/tmp/usr/lib/" || return 1 mv "$pkgdir/usr/libexec/" "$startdir/tmp/usr/" || return 1 mv "$pkgdir/usr/share/man/man1/clang.1" "$startdir/tmp/usr/share/man/man1/" || return 1 rm -rf "$pkgdir/"* mv "$startdir/tmp/"* "$pkgdir/" || return 1 rmdir "$startdir/tmp/" || return 1 install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE" || return 1 }