java-init: some cleanups
This commit is contained in:
parent
99074f2b79
commit
d1f959d325
@ -1,7 +1,7 @@
|
|||||||
# Description: Initial Java bootstrap
|
# Description: Initial Java bootstrap
|
||||||
# URL: https://stygian.me/java-bootstrap/
|
# URL: https://stygian.me/java-bootstrap/
|
||||||
# Maintainer: John Vogel, jvogel4 at stny dot rr dot com
|
# Maintainer:
|
||||||
# Depends on: libffi unzip zip
|
# Depends on: libffi unzip zip
|
||||||
|
|
||||||
name=java-init
|
name=java-init
|
||||||
version=20180530
|
version=20180530
|
||||||
@ -15,211 +15,214 @@ jamvm2_vers=2.0.0
|
|||||||
jikes_vers=1.22
|
jikes_vers=1.22
|
||||||
release=1
|
release=1
|
||||||
source=(https://ftp.gnu.org/gnu/classpath/classpath-$cp1_vers.tar.gz
|
source=(https://ftp.gnu.org/gnu/classpath/classpath-$cp1_vers.tar.gz
|
||||||
https://ftp.gnu.org/gnu/classpath/classpath-$cp2_vers.tar.gz
|
https://ftp.gnu.org/gnu/classpath/classpath-$cp2_vers.tar.gz
|
||||||
http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm1_vers/jamvm-$jamvm1_vers.tar.gz
|
http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm1_vers/jamvm-$jamvm1_vers.tar.gz
|
||||||
http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm2_vers/jamvm-$jamvm2_vers.tar.gz
|
http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm2_vers/jamvm-$jamvm2_vers.tar.gz
|
||||||
http://archive.apache.org/dist/ant/source/apache-ant-$ant_vers-src.tar.bz2
|
http://archive.apache.org/dist/ant/source/apache-ant-$ant_vers-src.tar.bz2
|
||||||
http://archive.eclipse.org/eclipse/downloads/drops/R-$ecj_vers/ecjsrc.zip
|
http://archive.eclipse.org/eclipse/downloads/drops/R-$ecj_vers/ecjsrc.zip
|
||||||
http://download.savannah.nongnu.org/releases/fastjar/fastjar-$fastjar_vers.tar.gz
|
http://download.savannah.nongnu.org/releases/fastjar/fastjar-$fastjar_vers.tar.gz
|
||||||
https://sourceforge.net/projects/jikes/files/Jikes/$jikes_vers/jikes-$jikes_vers.tar.bz2
|
https://sourceforge.net/projects/jikes/files/Jikes/$jikes_vers/jikes-$jikes_vers.tar.bz2
|
||||||
fastjar-jartool.c_rev1.62.patch
|
fastjar-jartool.c_rev1.62.patch
|
||||||
fix-update-mode.diff
|
fix-update-mode.diff
|
||||||
build.xml)
|
build.xml)
|
||||||
|
|
||||||
unpack_source() {
|
unpack_source() {
|
||||||
for file in ${source[@]}; do
|
for file in ${source[@]}; do
|
||||||
case ${file##*/} in
|
case ${file##*/} in
|
||||||
apache-ant-$ant_vers-src.tar.bz2|\
|
apache-ant-$ant_vers-src.tar.bz2|\
|
||||||
classpath-$cp1_vers.tar.gz|\
|
classpath-$cp1_vers.tar.gz|\
|
||||||
classpath-$cp2_vers.tar.gz|\
|
classpath-$cp2_vers.tar.gz|\
|
||||||
fastjar-$fastjar_vers.tar.gz|\
|
fastjar-$fastjar_vers.tar.gz|\
|
||||||
jamvm-$jamvm1_vers.tar.gz|\
|
jamvm-$jamvm1_vers.tar.gz|\
|
||||||
jamvm-$jamvm2_vers.tar.gz|\
|
jamvm-$jamvm2_vers.tar.gz|\
|
||||||
jikes-$jikes_vers.tar.bz2)
|
jikes-$jikes_vers.tar.bz2)
|
||||||
bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
|
bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
|
||||||
*)
|
*)
|
||||||
cp $(get_filename $file) $SRC ;;
|
cp $(get_filename $file) $SRC ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
find $SRC ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \
|
find $SRC ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \
|
||||||
-exec chmod go-w,u+w,a+r {} \;
|
-exec chmod go-w,u+w,a+r {} \;
|
||||||
|
|
||||||
mkdir -p $SRC/$name/{bin,lib,share/java}
|
mkdir -p $SRC/$name/{bin,lib,share/java}
|
||||||
|
|
||||||
cd $SRC/fastjar-$fastjar_vers
|
cd $SRC/fastjar-$fastjar_vers
|
||||||
patch -i $SRC/fastjar-jartool.c_rev1.62.patch
|
patch -i $SRC/fastjar-jartool.c_rev1.62.patch
|
||||||
patch -i $SRC/fix-update-mode.diff
|
patch -i $SRC/fix-update-mode.diff
|
||||||
./configure --prefix=$SRC/$name
|
./configure --prefix=$SRC/$name
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
rm -r $SRC/$name/share/{info,man}
|
rm -r $SRC/$name/share/{info,man}
|
||||||
|
|
||||||
# Shutting off fp-emulation stopped jikes from segfaulting.
|
# Shutting off fp-emulation stopped jikes from segfaulting.
|
||||||
# We need the source15 to build new enough classpath and to build openjdk6 later.
|
# We need the source15 to build new enough classpath and to build openjdk6 later.
|
||||||
cd $SRC/jikes-$jikes_vers
|
cd $SRC/jikes-$jikes_vers
|
||||||
./configure \
|
./configure \
|
||||||
--prefix=$SRC/$name \
|
--prefix=$SRC/$name \
|
||||||
--disable-fp-emulation \
|
--disable-fp-emulation \
|
||||||
--enable-source15
|
--enable-source15
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
rm -r $SRC/$name/{man,share/doc}
|
rm -r $SRC/$name/{man,share/doc}
|
||||||
|
|
||||||
OLD_PATH=$PATH
|
OLD_PATH=$PATH
|
||||||
export JAVA_HOME=$SRC/$name
|
export JAVA_HOME=$SRC/$name
|
||||||
export PATH=$JAVA_HOME/bin:$PATH
|
export PATH=$JAVA_HOME/bin:$PATH
|
||||||
mkdir -p $SRC/tmp
|
mkdir -p $SRC/tmp
|
||||||
export HOME=$SRC/tmp
|
export HOME=$SRC/tmp
|
||||||
|
|
||||||
cd $SRC/classpath-$cp1_vers
|
cd $SRC/classpath-$cp1_vers
|
||||||
|
|
||||||
./configure \
|
./configure \
|
||||||
--prefix=$SRC/$name \
|
--prefix=$SRC/$name \
|
||||||
--disable-alsa \
|
--disable-alsa \
|
||||||
--disable-dssi \
|
--disable-dssi \
|
||||||
--disable-examples \
|
--disable-examples \
|
||||||
--disable-gtk-peer \
|
--disable-gtk-peer \
|
||||||
--disable-gconf-peer \
|
--disable-gconf-peer \
|
||||||
--disable-plugin \
|
--disable-plugin \
|
||||||
--disable-Werror \
|
--disable-Werror \
|
||||||
--without-gjdoc
|
--without-gjdoc
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar
|
ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar
|
||||||
ln -s ../share/classpath/tools.zip $SRC/$name/lib/tools.jar
|
ln -s ../share/classpath/tools.zip $SRC/$name/lib/tools.jar
|
||||||
rm -r $SRC/$name/info
|
rm -r $SRC/$name/info
|
||||||
|
|
||||||
cd $SRC/jamvm-$jamvm1_vers
|
cd $SRC/jamvm-$jamvm1_vers
|
||||||
|
|
||||||
./configure \
|
./configure \
|
||||||
--prefix=$SRC/$name \
|
--prefix=$SRC/$name \
|
||||||
--enable-ffi \
|
--enable-ffi \
|
||||||
--with-classpath-install-dir=$SRC/$name
|
--with-classpath-install-dir=$SRC/$name
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
# jamvm install replaces the rt.jar link with one that's invalid.
|
# jamvm install replaces the rt.jar link with one that's invalid.
|
||||||
rm $SRC/$name/lib/rt.jar
|
rm $SRC/$name/lib/rt.jar
|
||||||
ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar
|
ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar
|
||||||
mv $SRC/$name/bin/jamvm{,.bin}
|
mv $SRC/$name/bin/jamvm{,.bin}
|
||||||
# jamvm seems to have issues with running mutli-threaded, this set of options
|
# jamvm seems to have issues with running mutli-threaded, this set of options
|
||||||
# seems to do a good job of preventing that.
|
# seems to do a good job of preventing that.
|
||||||
cat > $SRC/$name/bin/jamvm << EOF
|
cat > $SRC/$name/bin/jamvm << EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec $SRC/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@"
|
exec $SRC/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod 0755 $SRC/$name/bin/jamvm
|
chmod 0755 $SRC/$name/bin/jamvm
|
||||||
ln -s jamvm $SRC/$name/bin/java
|
ln -s jamvm $SRC/$name/bin/java
|
||||||
|
|
||||||
cd $SRC/apache-ant-$ant_vers
|
cd $SRC/apache-ant-$ant_vers
|
||||||
|
|
||||||
sed -i -e 's|\(depends="jars\),test-jar\("\)|\1\2|' build.xml
|
sed -i -e 's|\(depends="jars\),test-jar\("\)|\1\2|' build.xml
|
||||||
touch $HOME/.ant.properties
|
touch $HOME/.ant.properties
|
||||||
JAVAC=jikes \
|
JAVAC=jikes \
|
||||||
JAVACMD=$JAVA_HOME/bin/jamvm \
|
JAVACMD=$JAVA_HOME/bin/jamvm \
|
||||||
CLASSPATH=$JAVA_HOME/lib/rt.jar \
|
CLASSPATH=$JAVA_HOME/lib/rt.jar \
|
||||||
ANT_OPTS="-Dbuild.compiler=jikes" \
|
ANT_OPTS="-Dbuild.compiler=jikes" \
|
||||||
BOOTJAVAC_OPTS="-nowarn" \
|
BOOTJAVAC_OPTS="-nowarn" \
|
||||||
/bin/bash ./build.sh -Ddist.dir=out dist
|
/bin/bash ./build.sh -Ddist.dir=out dist
|
||||||
rm -r out/manual
|
rm -r out/manual
|
||||||
rm out/{INSTALL,KEYS,LICENSE,NOTICE,README,WHATSNEW,lib/README}
|
rm out/{INSTALL,KEYS,LICENSE,NOTICE,README,WHATSNEW,lib/README}
|
||||||
cp -a out $SRC/$name/lib/ant
|
cp -a out $SRC/$name/lib/ant
|
||||||
ln -s ../lib/ant/bin/ant $JAVA_HOME/bin/ant
|
ln -s ../lib/ant/bin/ant $JAVA_HOME/bin/ant
|
||||||
install -d -m 0755 $PKG/opt/$name/{bin,lib}
|
install -d -m 0755 $PKG/opt/$name/{bin,lib}
|
||||||
cp -a out $PKG/opt/$name/lib/ant
|
cp -a out $PKG/opt/$name/lib/ant
|
||||||
ln -s ../lib/ant/bin/ant $PKG/opt/$name/bin/ant
|
ln -s ../lib/ant/bin/ant $PKG/opt/$name/bin/ant
|
||||||
|
|
||||||
mkdir -p $SRC/ecj-$ecj_vers/src
|
mkdir -p $SRC/ecj-$ecj_vers/src
|
||||||
mv $SRC/ecjsrc.zip $SRC/ecj-$ecj_vers/src/ecj.zip
|
mv $SRC/ecjsrc.zip $SRC/ecj-$ecj_vers/src/ecj.zip
|
||||||
cd $SRC/ecj-$ecj_vers
|
cd $SRC/ecj-$ecj_vers
|
||||||
mv $SRC/build.xml .
|
mv $SRC/build.xml .
|
||||||
ant --usejikes -f build.xml
|
ant --usejikes -f build.xml
|
||||||
install -D ecj.jar $SRC/$name/share/java/ecj.jar
|
install -D ecj.jar $SRC/$name/share/java/ecj.jar
|
||||||
install -D ecj.jar $PKG/opt/$name/share/java/ecj.jar
|
install -D ecj.jar $PKG/opt/$name/share/java/ecj.jar
|
||||||
|
|
||||||
cat > $SRC/$name/bin/ecj << EOF
|
cat > $SRC/$name/bin/ecj << EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec $SRC/$name/bin/jamvm -cp $SRC/$name/share/java/ecj.jar \\
|
exec $SRC/$name/bin/jamvm -cp $SRC/$name/share/java/ecj.jar \\
|
||||||
org.eclipse.jdt.internal.compiler.batch.Main "\$@"
|
org.eclipse.jdt.internal.compiler.batch.Main "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod 0755 $SRC/$name/bin/ecj
|
chmod 0755 $SRC/$name/bin/ecj
|
||||||
cat > $PKG/opt/$name/bin/ecj << EOF
|
cat > $PKG/opt/$name/bin/ecj << EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec /opt/$name/bin/jamvm -cp /opt/$name/share/java/ecj.jar \
|
exec /opt/$name/bin/jamvm -cp /opt/$name/share/java/ecj.jar \
|
||||||
org.eclipse.jdt.internal.compiler.batch.Main "\$@"
|
org.eclipse.jdt.internal.compiler.batch.Main "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod 0755 $PKG/opt/$name/bin/ecj
|
chmod 0755 $PKG/opt/$name/bin/ecj
|
||||||
|
|
||||||
cd $SRC/classpath-$cp2_vers
|
cd $SRC/classpath-$cp2_vers
|
||||||
|
|
||||||
JAVAC=$JAVA_HOME/bin/ecj \
|
JAVAC=$JAVA_HOME/bin/ecj \
|
||||||
JAVA=$JAVA_HOME/bin/jamvm \
|
JAVA=$JAVA_HOME/bin/jamvm \
|
||||||
GCJ_JAVAC_TRUE=no \
|
GCJ_JAVAC_TRUE=no \
|
||||||
./configure \
|
./configure \
|
||||||
--prefix=/opt/$name \
|
--prefix=/opt/$name \
|
||||||
--disable-alsa \
|
--disable-alsa \
|
||||||
--disable-dssi \
|
--disable-dssi \
|
||||||
--disable-examples \
|
--disable-examples \
|
||||||
--disable-gconf-peer \
|
--disable-gconf-peer \
|
||||||
--disable-gjdoc \
|
--disable-gjdoc \
|
||||||
--disable-gtk-peer \
|
--disable-gtk-peer \
|
||||||
--disable-plugin \
|
--disable-plugin \
|
||||||
--disable-Werror \
|
--disable-Werror \
|
||||||
--with-ecj-jar=/opt/$name/share/java/ecj.jar \
|
--with-ecj-jar=/opt/$name/share/java/ecj.jar \
|
||||||
ac_cv_prog_java_works=yes
|
ac_cv_prog_java_works=yes
|
||||||
make
|
make
|
||||||
make DESTDIR=$PKG install
|
make DESTDIR=$PKG install
|
||||||
rm -f $PKG/opt/$name/lib/{rt,tools}.jar
|
rm -f $PKG/opt/$name/lib/{rt,tools}.jar
|
||||||
ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar
|
ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar
|
||||||
ln -s ../share/classpath/tools.zip $PKG/opt/$name/lib/tools.jar
|
ln -s ../share/classpath/tools.zip $PKG/opt/$name/lib/tools.jar
|
||||||
|
|
||||||
rm -r $PKG/opt/$name/share/{info,man}
|
|
||||||
|
|
||||||
# TODO: eventually try to fix this by patching the classpath buildfiles.
|
rm -r $PKG/opt/$name/share/{info,man}
|
||||||
for f in gappletviewer gjar gjarsigner gjavah gkeytool gnative2ascii \
|
|
||||||
gorbd grmic grmid grmiregistry gserialver gtnameserv; do
|
|
||||||
sed -i -e "s,^\(exec\) .* \(-classpath .*\)$,\1 /opt/$name/bin/jamvm \2," \
|
|
||||||
$PKG/opt/$name/bin/$f
|
|
||||||
done
|
|
||||||
|
|
||||||
ln -s . $PKG/opt/$name/jre
|
# TODO: eventually try to fix this by patching the classpath buildfiles.
|
||||||
ln -s ecj $PKG/opt/$name/bin/javac
|
for f in gappletviewer gjar gjarsigner gjavah gkeytool gnative2ascii \
|
||||||
ln -s gjar $PKG/opt/$name/bin/jar
|
gorbd grmic grmid grmiregistry gserialver gtnameserv; do
|
||||||
ln -s gjarsigner $PKG/opt/$name/bin/jarsigner
|
sed -i -e "s,^\(exec\) .* \(-classpath .*\)$,\1 /opt/$name/bin/jamvm \2," \
|
||||||
ln -s gjavah $PKG/opt/$name/bin/javah
|
$PKG/opt/$name/bin/$f
|
||||||
ln -s gkeytool $PKG/opt/$name/bin/keytool
|
done
|
||||||
ln -s gnative2ascii $PKG/opt/$name/bin/native2ascii
|
|
||||||
ln -s gorbd $PKG/opt/$name/bin/orbd
|
|
||||||
ln -s grmic $PKG/opt/$name/bin/rmic
|
|
||||||
ln -s grmid $PKG/opt/$name/bin/rmid
|
|
||||||
ln -s grmiregistry $PKG/opt/$name/bin/rmiregistry
|
|
||||||
ln -s gserialver $PKG/opt/$name/bin/serialver
|
|
||||||
ln -s gtnameserv $PKG/opt/$name/bin/tnameserv
|
|
||||||
|
|
||||||
cd $SRC/jamvm-$jamvm2_vers
|
ln -s . $PKG/opt/$name/jre
|
||||||
./configure \
|
ln -s ecj $PKG/opt/$name/bin/javac
|
||||||
--prefix=/opt/$name \
|
ln -s gjar $PKG/opt/$name/bin/jar
|
||||||
--enable-ffi \
|
ln -s gjarsigner $PKG/opt/$name/bin/jarsigner
|
||||||
--with-classpath-install-dir=/opt/$name
|
ln -s gjavah $PKG/opt/$name/bin/javah
|
||||||
make
|
ln -s gkeytool $PKG/opt/$name/bin/keytool
|
||||||
make DESTDIR=$PKG install
|
ln -s gnative2ascii $PKG/opt/$name/bin/native2ascii
|
||||||
# jamvm install replaces the rt.jar link with one that's invalid.
|
ln -s gorbd $PKG/opt/$name/bin/orbd
|
||||||
rm $PKG/opt/$name/lib/rt.jar
|
ln -s grmic $PKG/opt/$name/bin/rmic
|
||||||
ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar
|
ln -s grmid $PKG/opt/$name/bin/rmid
|
||||||
mv $PKG/opt/$name/bin/jamvm{,.bin}
|
ln -s grmiregistry $PKG/opt/$name/bin/rmiregistry
|
||||||
# jamvm seems to have issues with running mutli-threaded, this set of options
|
ln -s gserialver $PKG/opt/$name/bin/serialver
|
||||||
# seems to do a good job of preventing that.
|
ln -s gtnameserv $PKG/opt/$name/bin/tnameserv
|
||||||
cat > $PKG/opt/$name/bin/jamvm << EOF
|
|
||||||
|
cd $SRC/jamvm-$jamvm2_vers
|
||||||
|
./configure \
|
||||||
|
--prefix=/opt/$name \
|
||||||
|
--enable-ffi \
|
||||||
|
--with-classpath-install-dir=/opt/$name
|
||||||
|
make
|
||||||
|
make DESTDIR=$PKG install
|
||||||
|
|
||||||
|
# jamvm install replaces the rt.jar link with one that's invalid.
|
||||||
|
rm $PKG/opt/$name/lib/rt.jar
|
||||||
|
ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar
|
||||||
|
mv $PKG/opt/$name/bin/jamvm{,.bin}
|
||||||
|
|
||||||
|
# jamvm seems to have issues with running mutli-threaded, this set of options
|
||||||
|
# seems to do a good job of preventing that.
|
||||||
|
cat > $PKG/opt/$name/bin/jamvm << EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec /opt/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@"
|
exec /opt/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@"
|
||||||
EOF
|
EOF
|
||||||
chmod 0755 $PKG/opt/$name/bin/jamvm
|
|
||||||
ln -s jamvm $PKG/opt/$name/bin/java
|
chmod 0755 $PKG/opt/$name/bin/jamvm
|
||||||
mv $PKG/opt/$name/lib/libjvm.so{,.0.0.0}
|
ln -s jamvm $PKG/opt/$name/bin/java
|
||||||
ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so
|
mv $PKG/opt/$name/lib/libjvm.so{,.0.0.0}
|
||||||
ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so.0
|
ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so
|
||||||
find $PKG ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \
|
ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so.0
|
||||||
-exec chmod go-w,u+rw {} \;
|
find $PKG ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \
|
||||||
|
-exec chmod go-w,u+rw {} \;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user