summaryrefslogtreecommitdiffstats
path: root/gcc5
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-10-19 15:52:50 +0000
committer Eric Hameleers <alien@slackware.com>2017-10-19 15:52:50 +0000
commit42b64667a214172b65aa20e7d96edb9c6a6e66b8 (patch)
treec32eef62bbc4435a3c87c5c7b97506780bdca97f /gcc5
parentb159d253cf12c2054814a5e2cde82f280e485d4f (diff)
downloadasb-42b64667a214172b65aa20e7d96edb9c6a6e66b8.tar.gz
asb-42b64667a214172b65aa20e7d96edb9c6a6e66b8.tar.xz
gcc5: only build java compiler if needed; several cleanups to the SlackBuild
Diffstat (limited to 'gcc5')
-rwxr-xr-xgcc5/build/gcc5.SlackBuild204
1 files changed, 113 insertions, 91 deletions
diff --git a/gcc5/build/gcc5.SlackBuild b/gcc5/build/gcc5.SlackBuild
index 83a8455f..6ba32c06 100755
--- a/gcc5/build/gcc5.SlackBuild
+++ b/gcc5/build/gcc5.SlackBuild
@@ -62,8 +62,12 @@ TAG=${TAG:-alien}
# How many jobs to run in parallel:
NUMJOBS=" -j7 "
-# What do we want to build
-LANGS=${LANGS:-'c,c++,java'}
+# If the current gcc is 5 or older it already contains java so we skip that:
+if [ $(gcc --version |grep "^gcc (GCC)" |rev |cut -d' ' -f1 |rev |cut -d. -f1) -le 5 ]; then
+ LANGS=${LANGS:-'c,c++'}
+else
+ LANGS=${LANGS:-'c,c++,java'}
+fi
echo "Building these compilers: $LANGS"; sleep 5
@@ -151,7 +155,7 @@ PKG=$TMP/package-gcc
if [ -d $TMP ]; then
rm -rf $TMP
fi
-mkdir -p $PKG/usr/doc/gcc-$VERSION
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
# Insert package description:
mkdir -p $PKG/install
@@ -171,14 +175,16 @@ tar xvf $CWD/gcc-$VERSION.tar.?z*
cat $CWD/patches/gcc.66782.diff | patch -p0 --verbose || exit 1
) || exit 1
-# Copy ecj.jar into the TLD of the source. Needed for java compiler.
-# This can be retrieved from ftp://sourceware.org/pub/java
-cp $CWD/ecj-4.9.jar gcc-$VERSION/ecj.jar
+if echo $LANGS | grep -wq java ; then
+ # Copy ecj.jar into the TLD of the source. Needed for java compiler.
+ # This can be retrieved from ftp://sourceware.org/pub/java
+ cp $CWD/ecj-4.9.jar gcc-$VERSION/ecj.jar
-# Use an antlr runtime to compile javadoc.
-# The runtime can be obtained from:
-#https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/
-ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
+ # Use an antlr runtime to compile javadoc.
+ # The runtime can be obtained from:
+ # https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/
+ ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
+fi
# install docs
( cd gcc-$VERSION
@@ -190,95 +196,99 @@ ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
find . -perm 775 -exec chmod 755 {} \;
find . -perm 754 -exec chmod 755 {} \;
find . -perm 664 -exec chmod 644 {} \;
- mkdir -p $PKG/usr/doc/gcc-$VERSION
+ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
COPYING* ChangeLog* FAQ INSTALL \
LAST_UPDATED MAINTAINERS NEWS \
README* *.html \
- $PKG/usr/doc/gcc-$VERSION
+ $PKG/usr/doc/$PRGNAM-$VERSION
# We will keep part of these, but they are really big...
if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/gcc-$VERSION)
+ DOCSDIR=$(echo $PKG/usr/doc/$PRGNAM-$VERSION)
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
if [ -r NEWS ]; then
- DOCSDIR=$(echo $PKG/usr/doc/gcc-$VERSION)
+ DOCSDIR=$(echo $PKG/usr/doc/$PRGNAM-$VERSION)
cat NEWS | head -n 1000 > $DOCSDIR/NEWS
touch -r NEWS $DOCSDIR/NEWS
fi
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/gcc
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/gcc
( cd gcc
cp -a \
ABOUT* COPYING* DATESTAMP DEV-PHASE LANG* ONEWS README* SERVICE \
- $PKG/usr/doc/gcc-$VERSION/gcc
-
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/gcc/java
- ( cd java
- cp -a \
- ChangeLog.tree-ssa \
- $PKG/usr/doc/gcc-${VERSION}/gcc/java
- if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/gcc/java/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/gcc/java/ChangeLog
- fi
- )
+ $PKG/usr/doc/$PRGNAM-$VERSION/gcc
+
+ if echo $LANGS|grep -wq java ; then
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/gcc/java
+ ( cd java
+ cp -a \
+ ChangeLog.tree-ssa \
+ $PKG/usr/doc/$PRGNAM-${VERSION}/gcc/java
+ if [ -r ChangeLog ]; then
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/gcc/java/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/gcc/java/ChangeLog
+ fi
+ )
+ fi
) || exit 1
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/libffi
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/libffi
( cd libffi
cp -a \
ChangeLog.libgcj ChangeLog.v1 \
LICENSE* README* \
- $PKG/usr/doc/gcc-${VERSION}/libffi
+ $PKG/usr/doc/$PRGNAM-${VERSION}/libffi
if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/libffi/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/libffi/ChangeLog
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/libffi/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/libffi/ChangeLog
fi
)
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/libjava
- ( cd libjava
- cp -a \
- COPYING* HACKING LIBGCJ_LICENSE \
- NEWS README* THANKS \
- $PKG/usr/doc/gcc-${VERSION}/libjava
- if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/libjava/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/libjava/ChangeLog
- fi
- )
+ if echo $LANGS|grep -wq java ; then
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/libjava
+ ( cd libjava
+ cp -a \
+ COPYING* HACKING LIBGCJ_LICENSE \
+ NEWS README* THANKS \
+ $PKG/usr/doc/$PRGNAM-${VERSION}/libjava
+ if [ -r ChangeLog ]; then
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/libjava/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/libjava/ChangeLog
+ fi
+ )
+ fi
if [ -d libmudflap ]; then
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/libmudflap
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/libmudflap
( cd libmudflap
if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/libmudflap/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/libmudflap/ChangeLog
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/libmudflap/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/libmudflap/ChangeLog
fi
)
fi
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/libgomp
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/libgomp
( cd libgomp
if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/libgomp/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/libgomp/ChangeLog
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/libgomp/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/libgomp/ChangeLog
fi
)
- mkdir -p $PKG/usr/doc/gcc-${VERSION}/libstdc++-v3
+ mkdir -p $PKG/usr/doc/$PRGNAM-${VERSION}/libstdc++-v3
( cd libstdc++-v3
cp -a \
README* \
doc/html/faq.html \
- $PKG/usr/doc/gcc-${VERSION}/libstdc++-v3
+ $PKG/usr/doc/$PRGNAM-${VERSION}/libstdc++-v3
if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-${VERSION}/libstdc++-v3/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PRGNAM-${VERSION}/libstdc++-v3/ChangeLog
fi
)
)
@@ -363,6 +373,18 @@ ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
# NOTE: For Slackware 15.0, look into removing --with-default-libstdcxx-abi=gcc4-compatible,
# which will then require rebuilding all C++ libraries. That is, if there's any benefit.
+ if echo $LANGS|grep -wq java ; then
+ JAVA_OPTS=" \
+ --enable-java-home \
+ --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \
+ --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \
+ --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \
+ --with-antlr-jar=$ANTLJAR \
+ "
+ else
+ JAVA_OPTS=""
+ fi
+
LDFLAGS="$SLKLDFLAGS" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -388,14 +410,10 @@ ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
--disable-install-libiberty \
--with-gnu-ld \
--verbose \
- --enable-java-home \
- --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \
- --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \
- --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \
--with-arch-directory=$LIB_ARCH \
- --with-antlr-jar=$ANTLJAR \
--program-suffix=-${MAJVER} \
--enable-version-specific-runtime-libs \
+ $JAVA_OPTS \
$GCC_ARCHOPTS \
--target=${TARGET} \
--build=${TARGET} \
@@ -450,12 +468,14 @@ if [ ${MULTILIB} = "YES" ]; then
chmod 755 $PKG/usr/lib/gcc/${TARGET}/${VERSION}/libgcc_s.so.1
fi
-# The (huge) static GNU java libraries are not packaged. In nearly all
-# cases one or more dependencies will not be available as static anyway.
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgcj.a
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgcj-tools.a
-rm -f $PKG/usr/lib/libgcj.a
-rm -f $PKG/usr/lib/libgcj-tools.a
+if echo $LANGS|grep -wq java ; then
+ # The (huge) static GNU java libraries are not packaged. In nearly all
+ # cases one or more dependencies will not be available as static anyway.
+ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgcj.a
+ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgcj-tools.a
+ rm -f $PKG/usr/lib/libgcj.a
+ rm -f $PKG/usr/lib/libgcj-tools.a
+fi
# Fix stuff up:
( cd $PKG/usr/info
@@ -494,35 +514,37 @@ cat $CWD/profile.d/gcc5.sh > $PKG/etc/profile.d/gcc5.sh
cat $CWD/profile.d/gcc5.csh > $PKG/etc/profile.d/gcc5.csh
chmod 644 $PKG/etc/profile.d/*
-# The ecj wrapper script:
-cat $CWD/ecj.sh | sed -e "s,@JAVADIR@,/usr/share/java," > $PKG/usr/bin/ecj
-chmod 755 $PKG/usr/bin/ecj
-# Some compatibility links.
-for JAVAPROG in gcj gcjh gcj-dbtool gjar gjarsigner gjavah ; do
- ln -s ${JAVAPROG}-${MAJVER} $PKG/usr/bin/${JAVAPROG}
-done
-( cd $PKG
- for JAVALIB in usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/libgcj* ; do
- ln -s /${JAVALIB} $PKG/usr/lib${LIBDIRSUFFIX}/
+if echo $LANGS|grep -wq java ; then
+ # The ecj wrapper script:
+ cat $CWD/ecj.sh | sed -e "s,@JAVADIR@,/usr/share/java," > $PKG/usr/bin/ecj
+ chmod 755 $PKG/usr/bin/ecj
+ # Some compatibility links.
+ for JAVAPROG in gcj gcjh gcj-dbtool gjar gjarsigner gjavah ; do
+ ln -s ${JAVAPROG}-${MAJVER} $PKG/usr/bin/${JAVAPROG}
done
-)
-# And add the missing javac symlink:
-ln -s ../../../bin/ecj $PKG/usr/lib$LIBDIRSUFFIX/jvm/bin/javac
-# Don't package libffi stuff anymore. GCC will link the internal version
-# statically, and we'll need a newer one elsewhere.
-find . -name "ffi*.h" | xargs rm -f
-find . -name "libffi*" | xargs rm -f
-rm -f usr/man/man3/ffi*
-rm -f usr/info/libffi*
-# Install a proper pkgconfig file for libgcj:
-rm $PKG/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/pkgconfig/libgcj*pc
-rm $PKG/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/32/pkgconfig/libgcj*pc
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
-cat $CWD/libgcj-5.pc \
- | sed -e "s,@LIBDIRSUFFIX@,${LIBDIRSUFFIX}," \
- | sed -e "s,@TARGET@,${TARGET}," \
- | sed -e "s,@VERSION@,${VERSION}," \
- > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/libgcj-5.pc
+ ( cd $PKG
+ for JAVALIB in usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/libgcj* ; do
+ ln -s /${JAVALIB} $PKG/usr/lib${LIBDIRSUFFIX}/
+ done
+ )
+ # And add the missing javac symlink:
+ ln -s ../../../bin/ecj $PKG/usr/lib$LIBDIRSUFFIX/jvm/bin/javac
+ # Don't package libffi stuff anymore. GCC will link the internal version
+ # statically, and we'll need a newer one elsewhere.
+ find . -name "ffi*.h" | xargs rm -f
+ find . -name "libffi*" | xargs rm -f
+ rm -f usr/man/man3/ffi*
+ rm -f usr/info/libffi*
+ # Install a proper pkgconfig file for libgcj:
+ rm $PKG/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/pkgconfig/libgcj*pc
+ rm $PKG/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/32/pkgconfig/libgcj*pc
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
+ cat $CWD/libgcj-5.pc \
+ | sed -e "s,@LIBDIRSUFFIX@,${LIBDIRSUFFIX}," \
+ | sed -e "s,@TARGET@,${TARGET}," \
+ | sed -e "s,@VERSION@,${VERSION}," \
+ > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/libgcj-5.pc
+fi
# Filter all .la files (thanks much to Mark Post for the sed script):
( cd $TMP