java-scratchspace/gcj6-jdk/Pkgfile
2021-02-03 20:14:17 +11:00

91 lines
3.3 KiB
Plaintext

# Description: The GNU Compiler Collection Java Front End
# URL: http://gcc.gnu.org
# Maintainer: John Vogel, jvogel4 at stny dot rr dot com
# Depends on: gcc6 unzip zip
name=gcj6-jdk
version=6.5.0
release=1
source=(https://gcc.gnu.org/pub/gcc/releases/gcc-$version/gcc-$version.tar.xz
gcc-nocheck-fixincludes.patch gcc-4.7.3-multilib-dirs.patch libsanitizer.patch
ftp://gcc.gnu.org/pub/java/ecj-4.9.jar
https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar)
build() {
export CC='gcc-6'
export CXX='g++-6'
export CFLAGS="-O2 -march=x86-64"
export CXXFLAGS="${CFLAGS}"
patch -d gcc-$version -p1 -i $SRC/gcc-nocheck-fixincludes.patch
patch -d gcc-$version -p1 -i $SRC/gcc-4.7.3-multilib-dirs.patch
patch -d gcc-$version -p2 -i $SRC/libsanitizer.patch
mv $SRC/ecj-4.9.jar gcc-$version/ecj.jar
mkdir build
cd build
../gcc-$version/configure \
--prefix=/usr \
--libexecdir=/usr/lib \
--disable-bootstrap \
--enable-version-specific-runtime-libs \
--enable-languages=java \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-shared \
--disable-nls \
--with-system-zlib \
--enable-multilib \
--enable-java-home \
--with-jvm-root-dir=/usr/lib/java/$name \
--with-java-home=/usr/lib/java/$name/jre \
--with-jvm-jar-dir=/usr/lib/java/$name/jvm-exports \
--with-antlr-jar=$SRC/antlr-runtime-3.5.2.jar \
--with-pkgversion="CRUX-x86_64-multilib" \
--program-suffix="-${version%%.*}"
make
make -j1 DESTDIR=$PKG install-target-libjava
cd gcc
make -j1 DESTDIR=$PKG java.install-common java.install-man
target_alias=$(sed -n -e 's/^target=\(.*\)$/\1/p' Makefile)
ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj.so.17.0.0 $PKG/usr/lib/libgcj.so.17
ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj_bc.so.1.0.0 $PKG/usr/lib/libgcj_bc.so.1
ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj-tools.so.17.0.0 $PKG/usr/lib/libgcj-tools.so.17
ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgij.so.17.0.0 $PKG/usr/lib/libgij.so.17
install -m755 jc1 $PKG/usr/lib/gcc/$target_alias/$version/
install -m755 jvgenmain $PKG/usr/lib/gcc/$target_alias/$version/
$PKG/usr/bin/gcj-6 -B /usr/lib/gcc/$target_alias/$version -o $PKG/usr/bin/ecj \
$PKG/usr/share/java/ecj.jar --main=org.eclipse.jdt.internal.compiler.batch.Main
ln -sr $PKG/usr/bin/ecj $PKG/usr/lib/java/$name/bin/javac
ln -sr $PKG/usr/bin/jcf-dump-6 $PKG/usr/lib/java/$name/bin/javap
mv $PKG/usr/lib/gcc/$target_alias/$version/pkgconfig $PKG/usr/lib
rm -rf $PKG/usr/lib/gcc/$target_alias/lib{,32}
rm -rf $PKG/usr/lib/gcc/$target_alias/$version/{,32/}{*.a,*.o,pkgconfig}
rm -f $PKG/usr/lib/gcc/$target_alias/$version/include/unwind.h
rm -f $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
rm -rf $PKG/usr/share/{info,gcc-$version}
rm -f $PKG/usr/bin/${target_alias}-*
rm -rf $PKG/usr/include
rm -rf $PKG/usr/share/man/man7
# Broken link, no actual libjawt.so found, even in build directory
find $PKG/usr/lib -name 'libjawt.so' -delete
# The libtool archive files reference the build directories, purge until evidenced to be needed
find $PKG/usr/lib -name '*.la' -delete
for l in $(find $PKG/usr/lib/java/$name/include -lname '*/pkg/*/*.h'); do
ln -srf "$(find $PKG/usr/lib/gcc/$target_alias/$version/include -name ${l##*/} -type f)" $l
done
}