diff options
author | Britney Fransen <brfransen@gmail.com> | 2014-04-30 18:03:49 (GMT) |
---|---|---|
committer | Britney Fransen <brfransen@gmail.com> | 2014-04-30 18:03:49 (GMT) |
commit | 9c2d818e627d8763a22d860b8f1d8977aa853102 (patch) | |
tree | a296c413144e50ca4ebf521a021ea2ec7dca9ea6 /abs/extra/llvm/PKGBUILD | |
parent | 6e4889e232ba0cdaf498eb2c624a0d6a496e45fc (diff) | |
download | linhes_pkgbuild-9c2d818e627d8763a22d860b8f1d8977aa853102.zip linhes_pkgbuild-9c2d818e627d8763a22d860b8f1d8977aa853102.tar.gz linhes_pkgbuild-9c2d818e627d8763a22d860b8f1d8977aa853102.tar.bz2 |
llvm: update to 3.4
Diffstat (limited to 'abs/extra/llvm/PKGBUILD')
-rw-r--r-- | abs/extra/llvm/PKGBUILD | 190 |
1 files changed, 110 insertions, 80 deletions
diff --git a/abs/extra/llvm/PKGBUILD b/abs/extra/llvm/PKGBUILD index 515dbc7..3a837d2 100644 --- a/abs/extra/llvm/PKGBUILD +++ b/abs/extra/llvm/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 159472 2012-05-24 20:02:15Z foutrelis $ +# $Id$ # Maintainer: Evangelos Foutras <evangelos@foutrelis.com> # Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> # Contributor: Sebastian Nowicki <sebnow@gmail.com> @@ -9,93 +9,63 @@ # Contributor: Roberto Alsina <ralsina@kde.org> # Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> -pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer') -pkgver=3.1 -pkgrel=2 +pkgname=('llvm' 'llvm-libs' 'llvm-ocaml' 'clang' 'clang-analyzer' + 'clang-tools-extra') +pkgver=3.4 +pkgrel=1 arch=('i686' 'x86_64') url="http://llvm.org/" license=('custom:University of Illinois/NCSA Open Source License') -makedepends=('libffi' 'python2' 'ocaml') -source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.src.tar.gz +makedepends=('libffi' 'python2' 'ocaml' 'python2-sphinx') +options=('staticlibs') +source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.gz http://llvm.org/releases/$pkgver/clang-$pkgver.src.tar.gz - http://dev.archlinux.org/~foutrelis/sources/compiler-rt/compiler-rt-$pkgver.src.tar.xz + http://llvm.org/releases/$pkgver/clang-tools-extra-$pkgver.src.tar.gz + http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.gz + clang-3.3-use-gold-linker.patch llvm-Config-config.h - llvm-Config-llvm-config.h - cindexer-clang-path.patch - clang-pure64.patch - enable-lto.patch - clang-3.1-fix-libprofile_rt.a-location.patch) -sha256sums=('1ea05135197b5400c1f88d00ff280d775ce778f8f9ea042e25a1e1e734a4b9ab' - 'ff63e215dcd3e2838ffdea38502f8d35bab17e487f3c3799579961e452d5a786' - '563d8a5ef86123ed8775e115ad7f90c1aa3e80f70b4e587f1bccab2c10753558' + llvm-Config-llvm-config.h) +sha256sums=('25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628' + '22a9780db3b85a7f2eb9ea1f7f6e00da0249e3d12851e8dea0f62f1783242b1b' + 'ba85187551ae97fe1c8ab569903beae5ff0900e21233e5eb5389f6ceab1028b4' + 'f37c89b1383ce462d47537a0245ac798600887a9be9f63073e16b79ed536ab5c' + '8240adda155d7961eeb5d07ed50ead10cb7125f70283dff7f1c9fee9df3cea09' '312574e655f9a87784ca416949c505c452b819fad3061f2cde8aced6540a19a3' - '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48' - '3074df5322900e087377a8e03a02115463ccc0011c25917c2f06df11facd9b92' - '288a82fbff17bc554f5863734246500e637882af33ee8511019d5e0d6cd20524' - 'f7145e203ffb4ce2c01976027f7840a9520e5341a9945f2459b6b11e5422d5b7' - '0d32ad283566357ca1bfbeb4cbe6b0b961943b79d3d718ed0435101c05629137') + '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48') -build() { - cd "$srcdir/$pkgname-$pkgver.src" +prepare() { + cd "$srcdir/llvm-$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.src" tools/clang + mv "$srcdir/clang-$pkgver" tools/clang - rm -rf projects/compiler-rt - cp -r "$srcdir/compiler-rt-$pkgver.src" projects/compiler-rt + mv "$srcdir/clang-tools-extra-$pkgver" tools/clang/tools/extra - # Fix symbolic links from OCaml bindings to LLVM libraries - sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml + mv "$srcdir/compiler-rt-$pkgver" projects/compiler-rt - # 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:' \ + # Fix docs installation directory + sed -i 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ Makefile.config.in - sed -i '/ActiveLibDir = ActivePrefix/s:lib:lib/llvm:' \ - tools/llvm-config/llvm-config.cpp - sed -i 's:LLVM_LIBDIR="${prefix}/lib":LLVM_LIBDIR="${prefix}/lib/llvm":' \ - autoconf/configure.ac \ - configure - - # Fix insecure rpath (http://bugs.archlinux.org/task/14017) - sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules - - # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799) - patch -d tools/clang -Np0 -i "$srcdir/cindexer-clang-path.patch" - - if [[ $CARCH == x86_64 ]]; then - # Adjust linker path - patch -d tools/clang -Np0 -i "$srcdir/clang-pure64.patch" - fi - # Make -flto work - # Use gold instead of default linker, and always use the plugin - patch -d tools/clang -Np0 -i "$srcdir/enable-lto.patch" + # Make -flto work; use ld.gold instead of the default linker + patch -d tools/clang -Np1 -i "$srcdir/clang-3.3-use-gold-linker.patch" +} - # Fix FS#29984: [clang] -coverage is broken - patch -d tools/clang -Np1 -i \ - "$srcdir/clang-3.1-fix-libprofile_rt.a-location.patch" +build() { + cd "$srcdir/llvm-$pkgver" # 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)" - - # Use Python 2 - mkdir "$srcdir/python2-path" - ln -s /usr/bin/python2 "$srcdir/python2-path/python" - export PATH="$srcdir/python2-path:$PATH" + CPPFLAGS+=" $(pkg-config --cflags libffi)" # Force the use of GCC instead of clang CC=gcc CXX=g++ \ ./configure \ --prefix=/usr \ - --libdir=/usr/lib/llvm \ --sysconfdir=/etc \ --enable-shared \ --enable-libffi \ @@ -104,16 +74,20 @@ build() { --disable-debug-runtime \ --disable-assertions \ --with-binutils-include=/usr/include \ + --with-python=/usr/bin/python2 \ --$_optimized_switch-optimized make REQUIRES_RTTI=1 + make -C docs -f Makefile.sphinx man + make -C docs -f Makefile.sphinx html + make -C tools/clang/docs -f Makefile.sphinx html } package_llvm() { pkgdesc="Low Level Virtual Machine" - depends=('perl' 'libffi') + depends=("llvm-libs=$pkgver-$pkgrel" 'perl') - cd "$srcdir/$pkgname-$pkgver.src" + 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 @@ -123,27 +97,26 @@ package_llvm() { make -j1 DESTDIR="$pkgdir" install mv "$srcdir/clang" tools + # The runtime library goes into llvm-libs + mv "$pkgdir/usr/lib/libLLVM-$pkgver.so" "$srcdir" + # 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} + rm "$pkgdir"/usr/{lib/libllvm*,share/doc/llvm/ocamldoc.tar.gz} # Fix permissions of static libs - chmod -x "$pkgdir"/usr/lib/llvm/*.a + chmod -x "$pkgdir"/usr/lib/*.a # 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" + rm "$pkgdir"/usr/lib/*LLVMHello.* # Symlink LLVMgold.so into /usr/lib/bfd-plugins # (https://bugs.archlinux.org/task/28479) install -d "$pkgdir/usr/lib/bfd-plugins" - ln -s ../llvm/LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so" + ln -s ../LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so" if [[ $CARCH == x86_64 ]]; then # Needed for multilib (https://bugs.archlinux.org/task/29951) @@ -155,14 +128,32 @@ package_llvm() { done fi + # Install man pages + install -d "$pkgdir/usr/share/man/man1" + cp docs/_build/man/*.1 "$pkgdir/usr/share/man/man1/" + + # Install html docs + cp -r docs/_build/html/* "$pkgdir/usr/share/doc/$pkgname/html/" + rm -r "$pkgdir/usr/share/doc/$pkgname/html/_sources" + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } +package_llvm-libs() { + pkgdesc="Low Level Virtual Machine (runtime library)" + depends=('gcc-libs' 'zlib' 'libffi' 'ncurses') + + install -D "$srcdir/libLLVM-$pkgver.so" "$pkgdir/usr/lib/libLLVM-$pkgver.so" + + install -Dm644 "$srcdir/llvm-$pkgver/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.src" + cd "$srcdir/llvm-$pkgver" install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm} cp -r "$srcdir/ocaml" "$pkgdir/usr/lib" @@ -171,7 +162,7 @@ package_llvm-ocaml() { # 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" + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_clang() { @@ -181,19 +172,35 @@ package_clang() { # Fix installation path for clang docs sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \ - "$srcdir/llvm-$pkgver.src/Makefile.config" + "$srcdir/llvm-$pkgver/Makefile.config" + + cd "$srcdir/llvm-$pkgver/tools/clang" + + # We move the extra tools directory out of the tree so it won't get + # installed and then we bring it back in for the clang-tools-extra package + mv tools/extra "$srcdir" - cd "$srcdir/llvm-$pkgver.src/tools/clang" make DESTDIR="$pkgdir" install + mv "$srcdir/extra" tools/ # Fix permissions of static libs - chmod -x "$pkgdir"/usr/lib/llvm/*.a + chmod -x "$pkgdir"/usr/lib/*.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.src/Makefile.config" + "$srcdir/llvm-$pkgver/Makefile.config" + + # Install html docs + cp -r docs/_build/html/* "$pkgdir/usr/share/doc/$pkgname/html/" + rm -r "$pkgdir/usr/share/doc/$pkgname/html/_sources" - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE" + # Install Python bindings + install -d "$pkgdir/usr/lib/python2.7/site-packages" + cp -r bindings/python/clang "$pkgdir/usr/lib/python2.7/site-packages/" + python2 -m compileall "$pkgdir/usr/lib/python2.7/site-packages/clang" + python2 -O -m compileall "$pkgdir/usr/lib/python2.7/site-packages/clang" + + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_clang-analyzer() { @@ -201,7 +208,7 @@ package_clang-analyzer() { url="http://clang-analyzer.llvm.org/" depends=("clang=$pkgver-$pkgrel" 'python2') - cd "$srcdir/llvm-$pkgver.src/tools/clang" + cd "$srcdir/llvm-$pkgver/tools/clang" install -d "$pkgdir"/usr/{bin,lib/clang-analyzer} for _tool in scan-{build,view}; do @@ -209,6 +216,14 @@ package_clang-analyzer() { ln -s /usr/lib/clang-analyzer/$_tool/$_tool "$pkgdir/usr/bin/" done + # scan-build looks for clang within the same directory + ln -s /usr/bin/clang "$pkgdir/usr/lib/clang-analyzer/scan-build/" + + # Relocate man page + install -d "$pkgdir/usr/share/man/man1" + mv "$pkgdir/usr/lib/clang-analyzer/scan-build/scan-build.1" \ + "$pkgdir/usr/share/man/man1/" + # Use Python 2 sed -i \ -e 's|env python$|&2|' \ @@ -220,7 +235,22 @@ package_clang-analyzer() { python2 -m compileall "$pkgdir/usr/lib/clang-analyzer" python2 -O -m compileall "$pkgdir/usr/lib/clang-analyzer" - install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE" + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +package_clang-tools-extra() { + pkgdesc="Extra tools built using Clang's tooling APIs" + url="http://clang.llvm.org/" + depends=("clang=$pkgver-$pkgrel") + + cd "$srcdir/llvm-$pkgver/tools/clang/tools/extra" + + make DESTDIR="$pkgdir" install + + # Fix permissions of static libs + chmod -x "$pkgdir"/usr/lib/*.a + + install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } # vim:set ts=2 sw=2 et: |