Was supposed to be a linux distribution, now just a collection of build scripts for packages on top of (ideally) any distribution.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

175 lines
6.2 KiB

import 'compile/configure'
name=icedtea
version=3.5.1
version_bootstrap=2.6.11
version_gcc=6.3.0
version_ecj=4.9
version_apache_ant=1.9.9
update_url='http://icedtea.wildebeest.org/download/source/'
update_names="<a href=\"$name-$version.tar.gz\">$name-"
define_option '!bootstrap: Bootstrap this program'
dlextract "http://icedtea.wildebeest.org/download/source/$name-$version.tar.xz" \
'7bc206735f6e6fda34b269930ee3138f'
modules="
c57826f1cc09e093d0be4fd0dfb82df3-corba.tar.xz
004b2ec681cbef34dea91ca82fe82acd-hotspot.tar.xz
9d905e1dfbf3e237701278409018ab8e-jaxp.tar.xz
abed18435f40b6d9d83497e751b3837e-jaxws.tar.xz
b1ab8588c2e832075feda3f935382146-jdk.tar.xz
226fdadf19095d3f6048610e6b82ad78-langtools.tar.xz
2d058d76099b6659e9146e137af449f8-nashorn.tar.xz
e133701bdef10fc58baa7dd588e3daf9-openjdk.tar.xz
"
for module in $modules; do
package="$(echo "$module" | cut -d- -f2)"
checksum="$(echo "$module" | cut -d- -f1)"
download "http://icedtea.wildebeest.org/download/drops/${name}8/$version/$package" \
"$checksum" \
"$name-$version-$package"
done
if option bootstrap; then
( name=gcc version="$version_gcc"
dlextract "https://ftp.gnu.org/gnu/$name/$name-$version/$name-$version.tar.bz2" \
'677a7623c7ef6ab99881bc4e048debb6'
)
download "ftp://sourceware.org/pub/java/ecj-$version_ecj.jar" \
'7339f199ba11c941890031fd9981d7be'
dlfile 'https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-java/gcj-jdk/files/javac.in?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d' \
'5fb8379653ba60746feb7090ac52bd28'
( name=apache-ant version="$version_apache_ant"
dlextract "https://www.apache.org/dist/ant/source/$name-$version-src.tar.bz2" \
'c988158e101e7700b45c14b9804fd554'
)
dlextract "http://icedtea.wildebeest.org/download/source/$name-$version_bootstrap.tar.xz" \
'da92dc915b9999e0c08b6b1db28420e3'
bootstrap_modules="
7421292df9a57b5bc892788c4df2f13c-corba.tar.bz2
3e28fd3d4815574831e16ec5264f0fda-hotspot.tar.bz2
8b685efa4e8d06b2607c105a55435ea4-jaxp.tar.bz2
34b8337051df83096cedd5460532a86e-jaxws.tar.bz2
175bb86777aceca41131e460e5c5a170-jdk.tar.bz2
eec9595fcd3e0f2871293894015fcc3b-langtools.tar.bz2
27ef02c4b81f025cc8d9118efad128cb-openjdk.tar.bz2
"
for module in $bootstrap_modules; do
package="$(echo "$module" | cut -d- -f2)"
checksum="$(echo "$module" | cut -d- -f1)"
download "http://icedtea.wildebeest.org/download/drops/${name}7/$version_bootstrap/$package" \
"$checksum" \
"$name-$version_bootstrap-$package"
done
fi
header_end
# From: https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/eclass/multiprocessing.eclass
makeopts_jobs() {
# This assumes the first .* will be more greedy than the second .*
# since POSIX doesn't specify a non-greedy match (i.e. ".*?").
local jobs=$(echo " $MAKEFLAGS " | sed -r -n \
-e 's:.*[[:space:]](-j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' \
-e 's:.*[[:space:]](-j|--jobs)[[:space:]].*:999:p')
echo ${jobs:-1}
}
if option bootstrap; then
# Build GCJ
( cd "gcc-$version_gcc"
getfile "ecj-$version_ecj.jar"
mv "ecj-$version_ecj.jar" ecj.jar
sed -i -e 's/\.\/fixinc\.sh/-c true/' gcc/Makefile.in
mkdir build; cd build
../configure \
--prefix="$PWD/../install" \
--disable-bootstrap \
--enable-languages=java \
--enable-java-home \
--with-java-home="$PWD/../install/lib/jvm/jre"
make
make install
)
# Install missing javac
sed -e "s#@JAVA@#$PWD/gcc-$version_gcc/install/lib/jvm/bin/java#" \
-e "s#@ECJ_JAR@#$PWD/gcc-$version_gcc/install/share/java/ecj.jar#" \
-e "s#@RT_JAR@#$PWD/gcc-$version_gcc/install/lib/jvm/jre/lib/rt.jar#" \
-e "s#@TOOLS_JAR@#$PWD/gcc-$version_gcc/install/lib/jvm/lib/tools.jar#" \
javac.in > javac
install -Dm755 -t "gcc-$version_gcc/install/lib/jvm/bin" javac
# Set JAVA_HOME to GCJ
export JAVA_HOME="$PWD/gcc-$version_gcc/install/lib/jvm"
# Bootstrap Ant
( cd "apache-ant-$version_apache_ant"
./build.sh
)
# Bootstrap Icedtea7
( cd "$name-$version_bootstrap"
for module in $bootstrap_modules; do
package="$(echo "$module" | cut -d- -f2)"
getfile "$name-$version_bootstrap-$package"
mv "$name-$version_bootstrap-$package" "$package"
done
# Use the gcc with java support we just built to be able to properly compile java C modules. Add java tools and ant to $PATH as well.
export PATH="$PWD/../gcc-$version_gcc/install/bin:$JAVA_HOME/bin:$PWD/../apache-ant-$version_apache_ant/dist/bin:$PATH"
./configure \
--with-jdk-home="$JAVA_HOME" \
--with-parallel-jobs="$(makeopts_jobs)" \
--disable-downloading \
--without-rhino \
--disable-system-kerberos \
--disable-system-pcsc \
--disable-system-sctp
make
)
# Set JAVA_HOME to Icedtea7
export JAVA_HOME="$PWD/$name-$version_bootstrap/openjdk.build/j2sdk-image"
fi
cd "$name-$version"
for module in $modules; do
package="$(echo "$module" | cut -d- -f2)"
getfile "$name-$version-$package"
mv "$name-$version-$package" "$package"
done
# Build
export PATH="$JAVA_HOME/bin:$PATH"
./configure \
--with-jdk-home="$JAVA_HOME" \
--with-parallel-jobs="$(makeopts_jobs)" \
--disable-downloading \
--disable-ccache \
--disable-system-kerberos \
--disable-system-pcsc \
--disable-system-sctp
make
# Install
mkdir -p "$dir_install/$dir_prefix/$dir_libdir/jvm/${name}8"
cp -Ta openjdk.build/images/j2sdk-image "$dir_install/$dir_prefix/$dir_libdir/jvm/${name}8"
# Link default jvm
ln -s "${name}8" "$dir_install/$dir_prefix/$dir_libdir/jvm/default"
# Add profile script
cat > java.sh << EOF
export JAVA_HOME="/$dir_prefix/$dir_libdir/jvm/default"
export PATH="\$PATH:\$JAVA_HOME/bin"
export MANPATH="\$MANPATH:\$JAVA_HOME/man"
EOF
install -Dm755 -t "$dir_install/$dir_prefix/$dir_sysconfdir/profile.d" java.sh
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab: