summaryrefslogtreecommitdiff
path: root/src/build/build-jvm15.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/build/build-jvm15.xml')
-rw-r--r--src/build/build-jvm15.xml302
1 files changed, 302 insertions, 0 deletions
diff --git a/src/build/build-jvm15.xml b/src/build/build-jvm15.xml
new file mode 100644
index 0000000000..821f67395e
--- /dev/null
+++ b/src/build/build-jvm15.xml
@@ -0,0 +1,302 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: $ -->
+
+<project name="scala-jvm15" basedir="../.." default="build">
+
+<!-- ===========================================================================
+PROPERTIES
+============================================================================ -->
+
+ <import file="build-imports.xml"/>
+
+ <!-- Loads custom properties definitions -->
+ <property file="${scripts.dir}/build-jvm15.properties"/>
+
+ <!-- Configuring how the compiler is run -->
+ <property name="nsc.log-files" value="no"/>
+ <property name="nsc.excludes.file" value="${basedir}/build.excludes"/>
+ <property name="nsc.params" value=""/>
+ <fail message="Use Ant script 'build-jvm14.xml' for targeting the Java 1.4 platform">
+ <condition>
+ <contains string="${ant.java.version}" substring="1.4"/>
+ </condition>
+ </fail>
+ <property name="nsc.target" value="jvm-1.5"/>
+
+ <!-- Sets location of build folders -->
+ <property name="build.dir" value="${basedir}/build"/>
+ <property name="locker.dir" value="${build.dir}/locker"/>
+ <property name="quick.dir" value="${build.dir}/quick"/>
+ <property name="strap.dir" value="${build.dir}/strap"/>
+ <property name="dist.dir" value="${basedir}/dists"/>
+
+<!-- ===========================================================================
+SETUP
+============================================================================ -->
+
+ <target name="setup" depends="init">
+ <!-- Removing any outdated stuff -->
+ <if>
+ <and>
+ <available file="${locker.dir}/complete"/>
+ <not><uptodate targetfile="${locker.dir}/complete">
+ <srcfiles dir="${lib.dir}" includes="scala-*.jar"/>
+ </uptodate></not>
+ </and>
+ <then>
+ <echo level="warning"
+ message="STARR updated: LOCKER is obsolete and will be rebuilt."/>
+ <runtarget target="clean.build"/>
+ </then>
+ </if>
+ <!-- Finding out what is available -->
+ <available property="excludes.avail" file="${nsc.excludes.file}"/>
+ <condition property="locker.avail">
+ <available file="${locker.dir}/complete"/>
+ </condition>
+ <!-- Generating version number -->
+ <property file="${number.file}"/>
+ <property
+ name="version.number"
+ value="${version.major}.${version.minor}.${version.patch}.r${svn.number}-b${time.short}"/>
+ <!-- And print-out what we are building -->
+ <echo level="info" message="Build number is '${version.number}'"/>
+ <echo level="info" message="Built ${time.human} from SVN revision ${svn.number}"/>
+ </target>
+
+<!-- ===========================================================================
+BUILD
+============================================================================ -->
+
+ <target name="newlocker"
+ depends="clean.unfreeze, build.locker"
+ description="Rebuilds LOCKER from the current sources"/>
+
+ <!-- Build the locker layer -->
+ <target name="build.locker" depends="setup" unless="locker.avail">
+ <buildlayer
+ name="locker"
+ libpath="${lib.dir}/${lib.jar.name}"
+ comppath="${lib.dir}/${comp.jar.name}"
+ outputdir="${locker.dir}"
+ />
+ <touch file="${locker.dir}/complete" verbose="no"/>
+ </target>
+
+ <target name="build" depends="build.quick"/>
+
+ <!-- Build the quick layer -->
+ <target name="build.quick" depends="build.locker"
+ description="Builds a quick-test (QUICK) version of the compiler">
+ <buildlayer
+ name="quick"
+ libpath="${locker.dir}/lib/library"
+ comppath="${locker.dir}/lib/compiler"
+ outputdir="${quick.dir}"
+ buildall="true"
+ />
+ </target>
+
+ <!-- Build the bootstrap layer -->
+ <target name="build.strap" depends="build.quick">
+ <buildlayer
+ name="strap"
+ libpath="${quick.dir}/lib/library"
+ comppath="${quick.dir}/lib/compiler"
+ outputdir="${strap.dir}"
+ buildall="true"
+ />
+ </target>
+
+<!-- ===========================================================================
+DIST
+============================================================================ -->
+
+ <target name="dist"
+ depends="clean.build, test, binaries"
+ description="Creates a (stability-)tested, complete Scala distribution *from scratch*"/>
+
+ <target name="binaries"
+ depends="setup, build.strap"
+ description="Creates a binary Scala distribution">
+ <property name="dist.current.dir"
+ value="${dist.dir}/scala-${version.number}"/>
+ <if><and>
+ <isset property="os.unix"/>
+ <isset property="dist.resource"/></and>
+ <then>
+ <symlink
+ link="${dist.dir}"
+ resource="${dist.resource}" overwrite="yes" failonerror="no"/>
+ <touch file="${dist.dir}/is_symlink" verbose="no"/>
+ </then></if>
+ <mkdir dir="${dist.current.dir}"/>
+ <!-- Copy all requires libraries -->
+ <mkdir dir="${dist.current.dir}/lib"/>
+ <property name="ant.version.number" value="[1.6"/>
+ <!-- version ::= major('.'minor('.'micro('.'qualifier)?)?)? -->
+ <!-- see http://www2.osgi.org/javadoc/r4/org/osgi/framework/Version.html -->
+ <propertyregex
+ property="osgi.version.number" input="${version.number}"
+ regexp="([^-]*)(-.*)?" select="\1"
+ />
+ <echo level="verbose" message="OSGi version: ${osgi.version.number}"/>
+ <jar destfile="${dist.current.dir}/lib/${comp.jar.name}">
+ <fileset dir="${strap.dir}/lib/compiler"/>
+ <zipfileset src="${fjbg.jar}"/>
+ <zipfileset src="${msil.jar}"/>
+ <manifest>
+ <attribute name="Signature-Version" value="${version.number}"/>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="Main-Class" value="scala.tools.nsc.Main"/>
+ <attribute name="Class-Path" value="${lib.jar.name}"/>
+ <section name="scala/tools/nsc">
+ <attribute name="Extension-Name" value="scala.tools.nsc"/>
+ <attribute name="Specification-Title" value="Scala Compiler"/>
+ <attribute name="Specification-Version" value="${version.number}"/>
+ <attribute name="Specification-Vendor" value="${vendor.name}"/>
+ <attribute name="Implementation-Title" value="scala.tools.nsc"/>
+ <attribute name="Implementation-Version" value="${version.number}"/>
+ <attribute name="Implementation-Vendor" value="${vendor.name}"/>
+ </section>
+ <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
+ <attribute name="Bundle-ManifestVersion" value="2"/>
+ <attribute name="Bundle-Name" value="Scala Compiler Bundle"/>
+ <attribute name="Bundle-SymbolicName" value="scala_compiler"/>
+ <attribute name="Bundle-Version" value="${osgi.version.number}"/>
+ <attribute name="Bundle-Vendor" value="${vendor.name}"/>
+ <attribute name="Export-Package" value="scala.tools.ant;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.ast;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.ast.parser;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.backend;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.doc;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.io;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.matching;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.models;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab.classfile;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.symtab.clr;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.transform;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.typechecker;version=&#34;${osgi.version.number}&#34;,scala.tools.nsc.util;version=&#34;${osgi.version.number}&#34;,scala.tools.util;version=&#34;${osgi.version.number}&#34;"/>
+ <attribute name="Import-Package" value="org.apachge.ant.tools;version=&#34;${ant.version.number}&#34;,org.apachge.ant.tools.taskdefs;version=&#34;${ant.version.number}&#34;,org.apachge.ant.types;version=&#34;${ant.version.number}&#34;,org.apachge.ant.tools.util;version=&#34;${ant.version.number}&#34;,org.xml.sax"/>
+ <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
+ </manifest>
+ </jar>
+ <jar destfile="${dist.current.dir}/lib/${lib.jar.name}">
+ <fileset dir="${strap.dir}/lib/library"/>
+ <fileset dir="${strap.dir}/lib/actors"/>
+ <manifest>
+ <attribute name="Signature-Version" value="${version.number}"/>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="Main-Class" value="scala.util.Properties"/>
+ <section name="scala">
+ <attribute name="Extension-Name" value="scala"/>
+ <attribute name="Specification-Title" value="Scala Library"/>
+ <attribute name="Specification-Version" value="${version.number}"/>
+ <attribute name="Specification-Vendor" value="${vendor.name}"/>
+ <attribute name="Implementation-Title" value="scala"/>
+ <attribute name="Implementation-Version" value="${version.number}"/>
+ <attribute name="Implementation-Vendor" value="${vendor.name}"/>
+ </section>
+ <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
+ <attribute name="Bundle-ManifestVersion" value="2"/>
+ <attribute name="Bundle-Name" value="Scala Library Bundle"/>
+ <attribute name="Bundle-SymbolicName" value="scala_library"/>
+ <attribute name="Bundle-Version" value="${osgi.version.number}"/>
+ <attribute name="Bundle-Vendor" value="${vendor.name}"/>
+ <attribute name="Export-Package" value="scala;version=&#34;${osgi.version.number}&#34;,scala.actors;version=&#34;${osgi.version.number}&#34;,scala.actors.remote;version=&#34;${osgi.version.number}&#34;,scala.collection;version=&#34;${osgi.version.number}&#34;,scala.collection.immutable;version=&#34;${osgi.version.number}&#34;,scala.collection.jcl;version=&#34;${osgi.version.number}&#34;,scala.collection.mutable;version=&#34;${osgi.version.number}&#34;,scala.compat;version=&#34;${osgi.version.number}&#34;,scala.concurrent;version=&#34;${osgi.version.number}&#34;,scala.io;version=&#34;${osgi.version.number}&#34;,scala.mobile;version=&#34;${osgi.version.number}&#34;,scala.ref;version=&#34;${osgi.version.number}&#34;,scala.reflect;version=&#34;${osgi.version.number}&#34;,scala.runtime;version=&#34;${osgi.version.number}&#34;,scala.testing;version=&#34;${osgi.version.number}&#34;,scala.text;version=&#34;${osgi.version.number}&#34;,scala.util;version=&#34;${osgi.version.number}&#34;,scala.util.automata;version=&#34;${osgi.version.number}&#34;,scala.util.grammar;version=&#34;${osgi.version.number}&#34;,scala.util.logging;version=&#34;${osgi.version.number}&#34;,scala.util.parsing;version=&#34;${osgi.version.number}&#34;,scala.util.regexp;version=&#34;${osgi.version.number}&#34;,scala.xml;version=&#34;${osgi.version.number}&#34;,scala.xml.dtd;version=&#34;${osgi.version.number}&#34;,scala.xml.factory;version=&#34;${osgi.version.number}&#34;,scala.xml.parsing;version=&#34;${osgi.version.number}&#34;,scala.xml.path;version=&#34;${osgi.version.number}&#34;,scala.xml.pull;version=&#34;${osgi.version.number}&#34;,scala.xml.transform;version=&#34;${osgi.version.number}&#34;"/>
+ <attribute name="Import-Package" value="javax.xml.parsers,org.xml.sax,org.xml.sax.helpers"/>
+ <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
+ </manifest>
+ </jar>
+ <jar destfile="${dist.current.dir}/lib/${dbc.jar.name}">
+ <fileset dir="${strap.dir}/lib/dbc"/>
+ <manifest>
+ <attribute name="Signature-Version" value="${version.number}"/>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="Class-Path" value="${lib.jar.name}"/>
+ <section name="scala/dbc">
+ <attribute name="Extension-Name" value="scala.dbc"/>
+ <attribute name="Specification-Title" value="Scala DBC Library"/>
+ <attribute name="Specification-Version" value="${version.number}"/>
+ <attribute name="Specification-Vendor" value="${vendor.name}"/>
+ <attribute name="Implementation-Title" value="scala.dbc"/>
+ <attribute name="Implementation-Version" value="${version.number}"/>
+ <attribute name="Implementation-Vendor" value="${vendor.name}"/>
+ </section>
+ <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
+ <attribute name="Bundle-ManifestVersion" value="2"/>
+ <attribute name="Bundle-Name" value="Scala DBC Library Bundle"/>
+ <attribute name="Bundle-SymbolicName" value="scala_dbc_library"/>
+ <attribute name="Bundle-Version" value="${osgi.version.number}"/>
+ <attribute name="Bundle-Vendor" value="${vendor.name}"/>
+ <attribute name="Export-Package" value="scala.dbc;version=&#34;${osgi.version.number}&#34;,scala.dbc.datatype;version=&#34;${osgi.version.number}&#34;,scala.dbc.exception;version=&#34;${osgi.version.number}&#34;,scala.dbc.result;version=&#34;${osgi.version.number}&#34;,scala.dbc.statement;version=&#34;${osgi.version.number}&#34;,scala.dbc.statement.expression;version=&#34;${osgi.version.number}&#34;,scala.dbc.syntax;version=&#34;${osgi.version.number}&#34;,scala.dbc.value;version=&#34;${osgi.version.number}&#34;,scala.dbc.vendor;version=&#34;${osgi.version.number}&#34;"/>
+ <attribute name="Import-Package" value="scala;version=&#34;${osgi.version.number}&#34;,scala.compat;version=&#34;${osgi.version.number}&#34;"/>
+ <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
+ </manifest>
+ </jar>
+ <jar destfile="${dist.current.dir}/lib/${partest.jar.name}">
+ <fileset dir="${strap.dir}/lib/partest"/>
+ <manifest>
+ <attribute name="Signature-Version" value="${version.number}"/>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="Main-Class" value="scala.tools.partest.TestRunner"/>
+ <attribute name="Class-Path" value="${lib.jar.name}"/>
+ <section name="scala/tools/partest">
+ <attribute name="Extension-Name" value="scala.tools.partest"/>
+ <attribute name="Specification-Title" value="Scala Test Utility"/>
+ <attribute name="Specification-Version" value="${version.number}"/>
+ <attribute name="Specification-Vendor" value="${vendor.name}"/>
+ <attribute name="Implementation-Title" value="scala.tools.partest"/>
+ <attribute name="Implementation-Version" value="${version.number}"/>
+ <attribute name="Implementation-Vendor" value="${vendor.name}"/>
+ </section>
+ <attribute name="Bundle-DocURL" value="http://www.scala-lang.org/"/>
+ <attribute name="Bundle-ManifestVersion" value="2"/>
+ <attribute name="Bundle-Name" value="Scala Test Bundle"/>
+ <attribute name="Bundle-SymbolicName" value="scala_compiler"/>
+ <attribute name="Bundle-Version" value="${osgi.version.number}"/>
+ <attribute name="Bundle-Vendor" value="${vendor.name}"/>
+ <attribute name="Export-Package" value="scala.tools.partest;version=&#34;${osgi.version.number}&#34;,scala.tools.partest.utils;version=&#34;${osgi.version.number}&#34;"/>
+ <attribute name="Import-Package" value="javax.swing"/>
+ <attribute name="Bundle-RequiredExecutionEnvironment" value="J2SE-1.4"/>
+ </manifest>
+ </jar>
+
+ <!-- build source jars -->
+ <mkdir dir="${dist.current.dir}/src"/>
+ <jar
+ destfile="${dist.current.dir}/src/${libsrc.jar.name}">
+ <fileset dir="${src.dir}/library"/>
+ <fileset dir="${src.dir}/actors"/>
+ </jar>
+ <jar
+ destfile="${dist.current.dir}/src/${dbcsrc.jar.name}"
+ basedir="${src.dir}/dbc"
+ includes="**/*.scala"
+ />
+ <jar
+ destfile="${dist.current.dir}/src/${parsrc.jar.name}"
+ basedir="${src.dir}/partest"
+ includes="**/*.scala"
+ />
+ <jar
+ destfile="${dist.current.dir}/src/${compsrc.jar.name}"
+ basedir="${src.dir}/compiler"
+ includes="**/*.scala"
+ />
+
+ <!-- Copy executable files -->
+ <mkdir dir="${dist.current.dir}/bin"/>
+ <copy todir="${dist.current.dir}/bin">
+ <fileset dir="${strap.dir}/bin"/>
+ </copy>
+ <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scalac.exec.name}"/>
+ <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scala.exec.name}"/>
+ <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${scaladoc.exec.name}"/>
+ <chmod perm="ugo+rx" file="${dist.current.dir}/bin/${fsc.exec.name}"/>
+ <!-- Recreate the 'latest' link to point to this distribution -->
+ <if><isset property="os.win"/>
+ <then>
+ <copy todir="${dist.dir}/latest">
+ <fileset dir="${dist.current.dir}"/>
+ </copy>
+ </then>
+ <else>
+ <symlink
+ link="${dist.dir}/latest"
+ resource="${dist.current.dir}"
+ overwrite="yes" failonerror="no"/>
+ </else>
+ </if>
+ </target>
+
+</project>