source: npl/system/gcc/create_gcj_jvm.sh @ 105afb5

Last change on this file since 105afb5 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 3.1 KB
RevLine 
[c5c522c]1# ---------------------------------------------------------------------------
2# This script creates a directory structure below /usr/lib/jvm and populates
3# it with symlinks to GCC binaries.
4# This will work as a compatibility layer to emulate an Oracle JDK/JRE.
5# This emulation is required in order to compile OpenJDK using GNU java.
6#
7# The same can automatically be achieved in Slackware's gcc packages if
8# the 'configure' command is called with the following additional parameters:
9#     --enable-java-home \
10#     --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \
11#     --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \
12#     --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \
13#     --with-arch-directory=$LIB_ARCH \
14#
15# Author: Eric Hameleers <alien@slackware.com> December 2011
16# ---------------------------------------------------------------------------
17
18# Automatically determine the architecture we're building on:
19if [ -z "$ARCH" ]; then
20  case "$( uname -m )" in
21    i?86) export ARCH=i486 ;;
22    arm*) export ARCH=arm ;;
23    # Unless $ARCH is already set, use uname -m for all other archs:
24       *) export ARCH=$( uname -m ) ;;
25  esac
26fi
27
28if [ "$ARCH" = "i486" ]; then
29  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
30  LIBDIRSUFFIX=""
31  LIB_ARCH=i386
32elif [ "$ARCH" = "i686" ]; then
33  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
34  LIBDIRSUFFIX=""
35  LIB_ARCH=i386
36elif [ "$ARCH" = "x86_64" ]; then
37  SLKCFLAGS="-O2 -fPIC"
38  LIBDIRSUFFIX="64"
39  LIB_ARCH=amd64
40else
41  SLKCFLAGS="-O2"
42  LIBDIRSUFFIX=""
43  LIB_ARCH=$ARCH
44fi
45
46# Where does the OpenJDK SlackBuild expect the GNU java compatibility symlinks:
47JVM=${1:-/usr/lib${LIBDIRSUFFIX}/jvm}
48BINDIR=/usr/bin
49
50# What version of GCC do we have installed:
51GCJVER=$(gcj -dumpversion)
52
53# First, remove the old set of symlinks if they should exist:
54rm -fr $JVM
55
56# Create a JDK compatible directory structure for GNU java:
57mkdir -p $JVM
58mkdir -p $JVM/bin
59mkdir -p $JVM/jre/bin
60mkdir -p $JVM/jre/lib/${LIB_ARCH}/client
61mkdir -p $JVM/jre/lib/${LIB_ARCH}/server
62mkdir -p $JVM/lib
63
64ln -sf $BINDIR/gjar $JVM/bin/jar
65ln -sf $BINDIR/grmic $JVM/bin/rmic
66ln -sf $BINDIR/gjavah $JVM/bin/javah
67ln -sf $BINDIR/jcf-dump $JVM/bin/javap
68ln -sf $BINDIR/gappletviewer $JVM/bin/appletviewer
69ln -sf $BINDIR/grmiregistry $JVM/bin/rmiregistry
70ln -sf $BINDIR/grmiregistry $JVM/jre/bin/rmiregistry
71ln -sf $BINDIR/gkeytool $JVM/bin/keytool
72ln -sf $BINDIR/gkeytool $JVM/jre/bin/keytool
73ln -sf $BINDIR/gij $JVM/bin/java
74ln -sf $BINDIR/ecj $JVM/bin/javac
75ln -sf /usr/lib/gcj-${GCJVER}-11/libjvm.so $JVM/jre/lib/${LIB_ARCH}/client/libjvm.so
76ln -sf /usr/lib/gcj-${GCJVER}-11/libjvm.so $JVM/jre/lib/${LIB_ARCH}/server/libjvm.so
77ln -sf /usr/lib/gcj-${GCJVER}-11/libjawt.so $JVM/jre/lib/${LIB_ARCH}/libjawt.so
78ln -sf /usr/share/java/libgcj-${GCJVER}.jar $JVM/jre/lib/rt.jar
79ln -sf /usr/share/java/libgcj-tools-${GCJVER}.jar $JVM/lib/tools.jar
80ln -sf /usr/include/c++/${GCJVER}/gnu/java $JVM/include
81
82# Add a Eclipse Java Compiler wrapper which is required
83# for bootstrapping OpenJDK using GNU java:
84cat <<EOT > /usr/bin/ecj
85#!/bin/sh
86
87CLASSPATH=/usr/share/java/ecj.jar\${CLASSPATH:+:}\$CLASSPATH \
88  java org.eclipse.jdt.internal.compiler.batch.Main "\$@"
89
90EOT
91chmod 755 /usr/bin/ecj
92
93
Note: See TracBrowser for help on using the repository browser.