Advertisement
valandil211

gcc-6.1.1 PKGBUILD

May 9th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.48 KB | None | 0 0
  1. # Maintainer: Joey Dumont <joey.dumont@gmail.com>
  2. # Contributor: frankspace
  3. # Contributor: Renan Manola <rmanola@gmail.com>
  4. # Contributor: Stefan Husmann <stefan-husmann@t-online.de>
  5. # Based on a modified version of the gcc PKGBUILD
  6.  
  7. pkgname=gcc-gcj
  8. pkgver=6.1.1
  9. pkgrel=1
  10. _islver=0.17
  11. _cloogver=0.18.4
  12. _commit=80f78834
  13. pkgdesc="The GNU Compiler for Java"
  14. arch=('i686' 'x86_64')
  15. license=('GPL' 'LGPL')
  16. url="http://gcc.gnu.org"
  17. depends=('gtk2' 'libxtst' 'alsa-lib' 'libmpc>=0.8.1' 'classpath' 'gcc-gcj-ecj')
  18. makedepends=('mpfr>=2.4.2' 'elfutils' 'jack' 'zip' 'gcc=6.1.1' 'libart-lgpl' 'git')
  19. optdepends=('python2: for running /usr/bin/aot-compile'
  20.   'java-environment: for runnig some jars')
  21. options=('!libtool')
  22. install=$pkgname.install
  23. source=("git://gcc.gnu.org/git/gcc.git#commit=${_commit}"
  24.         "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
  25.     "http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz")
  26. sha512sums=('SKIP'
  27.             '8a2a51d8acbf966c37868fd714ee46cf0b87e1f9d8d9d3148eb2c4b331b7170916d7392fee7fa0af73988a3b8583a6e937dd643b5a574b7e61a09c5bc3347c27'
  28.             'd35d67b08ffe13c1a010b65bfe4dd02b0ae013d5b489e330dc950bd3514defca8f734bd37781856dcedf0491ff6122c34eecb4b0fe32a22d7e6bdadea98c8c23')
  29.  
  30. prepare() {
  31.   echo "You need at least 10GB of space to compile gcc-gcj,"
  32.   echo "and it will take a lot of time (~ hours)."
  33.   echo "It is better to compile it using makepkg directly."
  34.   sleep 5
  35.   cd "$srcdir"/gcc
  36.  
  37.   # Link isl/cloog for in-tree builds
  38.   ln -sf ../isl-${_islver} isl
  39.   ln -sf ../cloog-${_cloogver} cloog
  40.  
  41.   # Do not install libiberty
  42.   sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
  43.  
  44.   # Do not run fixincludes
  45.   sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
  46.  
  47.   # Arch Linux installs x86_64 libraries /lib
  48.   [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
  49.  
  50.   # Arch uses python version 3 as default python
  51.   sed -i '1s+python+python2+' libjava/contrib/aot-compile.in
  52.  
  53.   echo ${pkgver} > gcc/BASE-VER
  54.   [ -d build ] || mkdir build
  55.  
  56.   # Prepare a string for filename deletion later.
  57.   _ARCH_STR=
  58.  
  59.   if [ "${CARCH}" = "x86_64" ]; then
  60.     _ARCH_STR=x86_64-pc-linux-gnu
  61.  
  62.   elif ["${CARCH}" = "i686"]; then
  63.     _ARCH_STR=i686-pc-linux-gnu
  64.  
  65.   fi
  66. }
  67.  
  68. build() {
  69.  
  70.   # Configure and build gcc-gcj.
  71.   cd $srcdir/gcc/build
  72.  
  73.   ../configure CPPFLAGS="$CPPFLAGS -O2" \
  74.       --prefix=/usr                     \
  75.       --enable-shared                   \
  76.       --enable-languages=java           \
  77.       --enable-threads=posix            \
  78.       --mandir=/usr/share/man           \
  79.       --infodir=/usr/share/info         \
  80.       --enable-__cxa_atexit             \
  81.       --disable-multilib                \
  82.       --libdir=/usr/lib                 \
  83.       --libexecdir=/usr/lib             \
  84.       --enable-clocale=gnu              \
  85.       --disable-libstdcxx-pch           \
  86.       --with-tune=generic               \
  87.       --enable-java-awt=gtk             \
  88.       --with-java-home="$JAVA_HOME"     \
  89.       --enable-libgcj-multifile         \
  90.       --disable-plugin                  \
  91.       --with-system-zlib                \
  92.       --enable-cloog-backend=isl
  93.  
  94.   make
  95. }
  96.  
  97. package() {
  98.  
  99.   # Install libjava.
  100.   cd ${srcdir}/gcc/build
  101.   make -j1 DESTDIR=${pkgdir} install-target-libjava
  102.  
  103.   # Install java-common.
  104.   cd gcc
  105.   make -j1 DESTDIR=${pkgdir} java.install-common java.install-man
  106.  
  107.   install -Dm755 jc1       ${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/jc1
  108.   install -m755  jvgenmain ${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/
  109.  
  110.   # Remove files which belong to the base gcc package
  111.   rm -f ${pkgdir}/usr/bin/{c,g}++
  112.   _ARCH_STR=
  113.   if [ "${CARCH}" = "x86_64" ]; then
  114.     rm -f ${pkgdir}/usr/bin/${_ARCH_STR}-{c,g}++
  115.  
  116.   else
  117.     rm -f ${pkgdir}/usr/bin/${_ARCH_STR}-{c,g}++
  118.  
  119.   fi
  120.  
  121.   rm -f ${pkgdir}/usr/man/man1/g++.*
  122.  
  123.   # Rename two files to not conflict to classpath
  124.   mv ${pkgdir}/usr/share/info/cp-tools.info ${pkgdir}/usr/share/info/cp-tools-gcj.info
  125.   mv ${pkgdir}/usr/share/man/man1/gjdoc.1 ${pkgdir}/usr/share/man/man1/gjdoc.gcj.1
  126.   cd $pkgdir
  127.   rm                                                    \
  128.     usr/lib/libgcc_s.so                                 \
  129.     usr/lib/libgcc_s.so.1                               \
  130.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtbegin.o       \
  131.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtbeginS.o      \
  132.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtbeginT.o      \
  133.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtend.o         \
  134.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtendS.o        \
  135.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtfastmath.o    \
  136.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtprec32.o      \
  137.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtprec64.o      \
  138.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/crtprec80.o      \
  139.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/include/unwind.h \
  140.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/libgcc.a         \
  141.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/libgcc_eh.a      \
  142.     usr/lib/gcc/${_ARCH_STR}/${pkgver}/libgcov.a
  143.  
  144.   find ${pkgdir}/usr/lib -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
  145.  
  146.   linkdir=`basename $pkgdir/usr/lib/gcj-${pkgver}*`
  147.   ln -sf $linkdir ${pkgdir}/usr/lib/gcj-${pkgver%.?}
  148.   ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-${pkgver%.?}.jar
  149.   ln -sf libgcj-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj.jar
  150.   ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools-${pkgver%.?}.jar
  151.   ln -sf libgcj-tools-${pkgver}.jar ${pkgdir}/usr/share/java/libgcj-tools.jar
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement