Files
haikuports/dev-lang/openjdk/openjdk-1.7_2013_11_08.recipe
2014-04-21 19:31:51 +02:00

220 lines
6.9 KiB
Plaintext

SUMMARY="Open-source implementation of the Java Platform, SE"
DESCRIPTION="
Open-source implementation of the Java Platform, Standard Edition.
"
HOMEPAGE="http://openjdk.java.net/"
COPYRIGHT="2005, 2006, Oracle and/or its affiliates"
LICENSE="GNU GPL v2"
#SRC_URI="http://dl.dropbox.com/u/61946213/j2sdk-august.tar.xz"
#CHECKSUM_MD5="65b348918f92eb357ed7b455dadcded8"
# The August j2sdk image is apparently incomplete.
SRC_URI="http://ports-space.haiku-files.org/source/openjdk/j2sdk-april-2013.tar"
CHECKSUM_SHA256="fca2603875d5c0b77b95a6f01f3d0fd368d32754801d5180d262404f8e2a31c6"
SOURCE_DIR="j2sdk-image"
SRC_URI_2="http://archive.apache.org/dist/ant/source/apache-ant-1.8.4-src.tar.gz"
CHECKSUM_SHA256_2="df6f0aaede2549dc4347b972efc8036c01a737caac545b8ba43a21687bc521e7"
SOURCE_DIR_2="apache-ant-1.8.4"
SRC_URI_3="hg+http://hg.openjdk.java.net/haiku/haiku#ee67ee3bd597"
SRC_URI_4="hg+http://hg.openjdk.java.net/haiku/haiku/corba#84b78407a004"
PATCHES_4="openjdk-1.7_2013_11_08-source4.patchset"
SRC_URI_5="hg+http://hg.openjdk.java.net/haiku/haiku/hotspot#03a6a75222a8"
PATCHES_5="openjdk-1.7_2013_11_08-source5.patchset"
SRC_URI_6="hg+http://hg.openjdk.java.net/haiku/haiku/jaxp#6c9ac74190a0"
SRC_URI_7="hg+http://hg.openjdk.java.net/haiku/haiku/jaxws#84f654f41f6b"
SRC_URI_8="hg+http://hg.openjdk.java.net/haiku/haiku/jdk#df0cce7b0238"
PATCHES_8="openjdk-1.7_2013_11_08-source8.patchset"
SRC_URI_9="hg+http://hg.openjdk.java.net/haiku/haiku/langtools#0dabb2f5fad0"
SRC_URI_10="http://ports-space.haiku-files.org/source/openjdk/jaxp145_01.zip#noarchive"
CHECKSUM_SHA256_10="c5924c6188988e2e8397ee5143bd8eaa062569d052567afd2ac9326a54a848cb"
SRC_URI_11="http://ports-space.haiku-files.org/source/openjdk/jdk7-jaf-2010_08_19.zip#noarchive"
CHECKSUM_SHA256_11="e6aefedfdbb4673e8019583d1344fb162b94e1b10382c362364dbbfd5889c09e"
SRC_URI_12="http://ports-space.haiku-files.org/source/openjdk/jdk7-jaxws2_2_4-b03-2011_05_27.zip#noarchive"
CHECKSUM_SHA256_12="05ae7259b75d0f2307276d61ece1887fcd437cb4ecda42fab8c22d4b537effd6"
REVISION="2"
ARCHITECTURES="x86"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
# x86_gcc2 is fine as primary target architecture as long as we're building
# for a different secondary architecture.
ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"
DISABLE_SOURCE_PACKAGE=yes
# at least as long as Ant and a complete SDK image are part of the sources
PROVIDES="
openjdk = $portVersion compat >= 1
cmd:apt = $portVersion compat >= 1
cmd:extcheck = $portVersion compat >= 1
cmd:idlj = $portVersion compat >= 1
cmd:jar = $portVersion compat >= 1
cmd:jarsigner = $portVersion compat >= 1
cmd:java = $portVersion compat >= 1
cmd:java_config = $portVersion compat >= 1
cmd:javac = $portVersion compat >= 1
cmd:javadoc = $portVersion compat >= 1
cmd:javah = $portVersion compat >= 1
cmd:javap = $portVersion compat >= 1
cmd:jconsole = $portVersion compat >= 1
cmd:jdb = $portVersion compat >= 1
cmd:jhat = $portVersion compat >= 1
cmd:jinfo = $portVersion compat >= 1
cmd:jmap = $portVersion compat >= 1
cmd:jps = $portVersion compat >= 1
cmd:jrunscript = $portVersion compat >= 1
cmd:jsadebugd = $portVersion compat >= 1
cmd:jstack = $portVersion compat >= 1
cmd:jstat = $portVersion compat >= 1
cmd:jstatd = $portVersion compat >= 1
cmd:keytool = $portVersion compat >= 1
cmd:native2ascii = $portVersion compat >= 1
cmd:orbd = $portVersion compat >= 1
cmd:pack200 = $portVersion compat >= 1
cmd:rmic = $portVersion compat >= 1
cmd:rmid = $portVersion compat >= 1
cmd:rmiregistry = $portVersion compat >= 1
cmd:schemagen = $portVersion compat >= 1
cmd:serialver = $portVersion compat >= 1
cmd:servertool = $portVersion compat >= 1
cmd:tnameserv = $portVersion compat >= 1
cmd:unpack200 = $portVersion compat >= 1
cmd:wsgen = $portVersion compat >= 1
cmd:wsimport = $portVersion compat >= 1
cmd:xjc = $portVersion compat >= 1
"
REQUIRES="
haiku$secondaryArchSuffx >= $haikuVersion
lib:libfreetype$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel >= $haikuVersion
devel:libfreetype$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cpio >= 2.10
cmd:make
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:sed
cmd:tar
cmd:zip
"
PATCH()
{
# patch Ant
cd $sourceDir2
sed -i 's/depends=\"jars,test-jar\"/depends=\"jars\"/' build.xml
# small patch allowing to finish build without errors
# this modification already exists in another dev branch
# if someone fix it in current branch, using sed rather than patch should
# not brake the whole build
cd $sourceDir3
sed -i s/'$(PRINTF) "--'/'$(PRINTF) -- "--'/ make/Defs-internal.gmk
}
BUILD()
{
OPENJDK_DIR=$(dirname $sourceDir)
# build Apache Ant
export LIBRARY_PATH=${OPENJDK_DIR}/j2sdk-image/jre/lib/i386/:$LIBRARY_PATH
export JAVA_HOME=${OPENJDK_DIR}/j2sdk-image
export ANT_HOME=${OPENJDK_DIR}/ant
cd $sourceDir2
sh build.sh install-lite
unset JAVA_HOME
# prepare the directory structure
cd $OPENJDK_DIR
ln -sfn $sourceDir3 jdk
ln -sfn $sourceDir4 jdk/corba
ln -sfn $sourceDir5 jdk/hotspot
ln -sfn $sourceDir6 jdk/jaxp
ln -sfn $sourceDir7 jdk/jaxws
ln -sfn $sourceDir8 jdk/jdk
ln -sfn $sourceDir9 jdk/langtools
export ALT_DROPS_DIR=${OPENJDK_DIR}/drop
mkdir -p ${ALT_DROPS_DIR}
cp $sourceDir10/jaxp145_01.zip $ALT_DROPS_DIR
cp $sourceDir11/jdk7-jaf-2010_08_19.zip $ALT_DROPS_DIR
cp $sourceDir12/jdk7-jaxws2_2_4-b03-2011_05_27.zip $ALT_DROPS_DIR
# set up environment
export ALT_BOOTDIR=${OPENJDK_DIR}/j2sdk-image
export ALT_JDK_IMPORT_PATH=$ALT_BOOTDIR
export ANT=${OPENJDK_DIR}/ant
export ALT_OUTPUTDIR=${OPENJDK_DIR}/output
export LANG=C
export PATH=$PATH:$ANT_HOME/bin
# use PATH to search commands rather than explicitly set path for each
# commands so that grep, egrep & readelf are automatically found
# see Defs-haiku.gmk
export ALT_UNIXCOMMAND_PATH=
mkdir -p ${ALT_OUTPUTDIR}
export ALLOW_DOWNLOADS=false
export USE_EXTERNAL_ZLIB=true
# Build.
cd jdk
make
# The build system is broken in that it doesn't pick up all auto-generated
# java sources (it uses "find ... -name '*.java'" too early). Unfortunately
# that isn't easy to fix, so we just run a second make, which will pick up
# the then already existing files.
make
}
INSTALL()
{
# install the generated SDK image dir
cd ..
jdkDir=$libDir/openjdk
mkdir -p $(dirname $jdkDir)
cp -a output/j2sdk-image $jdkDir
# symlink the executables to binDir
mkdir -p $binDir
symlinkRelative -s $jdkDir/bin/* $binDir
# TODO: We should probably link only a subset.
# create a java-config script in binDir
javaConfig=$binDir/java-config
sed -e "s,%JAVA_HOME%,$jdkDir," $portDir/sources/java-config.in \
> $javaConfig
chmod a+x $javaConfig
# create a profile.d file that sets up JAVA_HOME
jdkProfile=$dataDir/profile.d/openjdk.sh
mkdir -p $(dirname $jdkProfile)
echo 'JAVA_HOME=`java-config -H`' > $jdkProfile
echo "export JAVA_HOME" >> $jdkProfile
}