summaryrefslogtreecommitdiff
path: root/build.xml
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2005-10-13 13:57:02 +0000
committermichelou <michelou@epfl.ch>2005-10-13 13:57:02 +0000
commit41433ad6307468369aa60e31afba02e8dbd001f3 (patch)
tree6a37ecff686fba289861adf144b168f7f347f9a3 /build.xml
parent135a6a67b744ab5882a854183d491a77f4b65681 (diff)
downloadscala-41433ad6307468369aa60e31afba02e8dbd001f3.tar.gz
scala-41433ad6307468369aa60e31afba02e8dbd001f3.tar.bz2
scala-41433ad6307468369aa60e31afba02e8dbd001f3.zip
- added generation of scalac command (bin/scala...
- added generation of scalac command (bin/scalac[.bat]).
Diffstat (limited to 'build.xml')
-rw-r--r--build.xml89
1 files changed, 64 insertions, 25 deletions
diff --git a/build.xml b/build.xml
index 8286b8b15a..75773ba79d 100644
--- a/build.xml
+++ b/build.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
+
<project name="nsc" default="build">
<description>
@@ -21,20 +22,18 @@
<!-- The system classpath should not be used -->
<property name="build.sysclasspath" value="ignore"/>
+ <!-- Properties in 'build.base.properties' are all defined relatively
+ to ${basedir}.
+ -->
+ <echo level="verbose">Loading properties from '${basedir}/build.support/build.base.properties'</echo>
+ <property file="${basedir}/build.support/build.base.properties"/>
+
<!-- Properties in 'build.${user.name}.properties' take precedence over
properties in 'build.default.properties'.
-->
- <echo level="verbose">
- Loading properties from '${basedir}/build.support/build.base.properties'
- </echo>
- <property file="${basedir}/build.support/build.base.properties"/>
- <echo level="verbose">
- Loading properties from '${build.support.dir}/build.${user.name}.properties'
- </echo>
+ <echo level="verbose">Loading properties from '${build.support.dir}/build.${user.name}.properties'</echo>
<property file="${build.support.dir}/build.${user.name}.properties"/>
- <echo level="verbose">
- Loading properties from '${build.support.dir}/build.default.properties'
- </echo>
+ <echo level="verbose">Loading properties from '${build.support.dir}/build.default.properties'</echo>
<property file="${build.support.dir}/build.default.properties"/>
<!-- A path containing pre-compiled Scala libraries found typically
@@ -64,7 +63,9 @@
<!-- The current Scala version -->
<loadfile srcfile="${basedir}/VERSION" property="scala.version">
<filterchain>
- <tailfilter lines="1"/>
+ <linecontainsregexp>
+ <regexp pattern="[0-9]+\.[0-9]+\.[0-9]+\.[0-9]"/>
+ </linecontainsregexp>
</filterchain>
</loadfile>
@@ -153,7 +154,7 @@
<delete>
<fileset dir="${build.nslib.dir}">
<present targetdir="${newsources.dir}" present="both">
- <mapper type="glob" from="*.class" to="*.scala"/>
+ <mapper type="glob" from="*.class" to="*.scala"/>
</present>
</fileset>
</delete>
@@ -249,6 +250,12 @@
</condition>
<target name="distrib.init">
+ <echo level="verbose">scala.dll=${scala.dll}</echo>
+ <fail message="Required DLL library is missing; check the 'scala.dll' property in 'build.${user.name}.properties'.">
+ <condition><not><and>
+ <available file="${scala.dll}"/>
+ </and></not></condition>
+ </fail>
<tstamp prefix="start"/>
</target>
@@ -266,6 +273,7 @@
<property name="distrib.doc.dir"
value="${distrib.current.dir}/share/doc/${distrib.package.dir}"/>
<mkdir dir="${distrib.scala.dir}"/>
+ <!-- Set up 'lib' directory -->
<mkdir dir="${distrib.scala.dir}/lib"/>
<symlink resource="${distrib.scala.dir}/lib"
link="${distrib.current.dir}/lib"/>
@@ -292,8 +300,22 @@
<attribute name="Built-By" value="${user.name}"/>
</manifest>
</jar>
+ <copy file="${fjbg.jar}" todir="${distrib.scala.dir}/lib"/>
+ <copy file="${oslib.jar}" todir="${distrib.scala.dir}/lib"/>
+ <copy file="${msil.jar}" todir="${distrib.scala.dir}/lib"/>
+ <copy file="${scala.dll}" todir="${distrib.scala.dir}/lib"/>
<!-- Set up 'bin' directory -->
<mkdir dir="${distrib.scala.dir}/bin"/>
+ <copy file="${build.support.dir}/scalac.template"
+ tofile="${distrib.scala.dir}/bin/scalac">
+ <filterset>
+ <filter token="PRODUCT" value="scalac"/>
+ <filter token="VERSION" value="${scala.version}"/>
+ <filter token="MAIN" value="scala.tools.nsc.Main"/>
+ <filter token="CPATH" value="$PREFIX/lib/fjbg.jar:$PREFIX/lib/scala.jar:$PREFIX/lib/${distrib.nslib.jar}:$PREFIX/lib/${distrib.nstools.jar}:$PREFIX/lib/${distrib.osc-nstools.jar}"/>
+ </filterset>
+ </copy>
+ <chmod dir="${distrib.scala.dir}/bin" perm="ugo+rx" includes="**/*"/>
<symlink resource="${distrib.scala.dir}/bin"
link="${distrib.current.dir}/bin"/>
<!-- Set up 'doc' directory -->
@@ -330,43 +352,60 @@
basedir="${distrib.current.dir}" compression="bzip2"/>
</target>
- <target name="distrib.mac" depends="distrib.unix, build"/>
+ <target name="distrib.mac" depends="distrib.unix"/>
<target name="distrib.win" depends="build, docs, distrib.init">
<property name="distrib.package.dir"
value="${distrib.current.prefix}-${start.DSTAMP}-${start.TSTAMP}"/>
- <property name="distrib.current.dir"
+ <property name="distrib.current.win.dir"
value="${distrib.dir}/win/${distrib.package.dir}"/>
<!-- Set up 'bin' directory -->
- <mkdir dir="${distrib.current.dir}/bin"/>
+ <mkdir dir="${distrib.current.win.dir}/bin"/>
+ <copy file="${build.support.dir}/scalac.bat.template"
+ tofile="${distrib.current.win.dir}/bin/scalac.bat">
+ <filterset>
+ <filter token="PRODUCT" value="scalac"/>
+ <filter token="VERSION" value="${scala.version}"/>
+ <filter token="MAIN" value="scala.tools.nsc.Main"/>
+ <filter token="CPATH" value="%SCALA_HOME%\lib\fjbg.jar;%SCALA_HOME%\lib\scala.jar;%SCALA_HOME%\lib\${distrib.nslib.jar};%SCALA_HOME%\lib\${distrib.nstools.jar};%SCALA_HOME%\lib\${distrib.osc-nstools.jar}"/>
+ </filterset>
+ </copy>
+ <chmod dir="${distrib.current.win.dir}/bin" perm="ugo+rx" includes="**/*"/>
<!-- Set up 'doc' directory -->
- <copy todir="${distrib.current.dir}/doc">
+ <copy todir="${distrib.current.win.dir}/doc">
<fileset dir="${build.dir}/doc"/>
<fileset dir="${doc.dir}/reference"
includes="ScalaByExample.pdf,ScalaReference.pdf"/>
<fileset dir="${doc.dir}/tutorial" includes="ScalaTutorial.pdf"/>
</copy>
- <fixcrlf srcdir="${distrib.current.dir}/doc" eol="dos"
+ <fixcrlf srcdir="${distrib.current.win.dir}/doc" eol="dos"
includes="**/*.css,**/*.html,**/*.js"/>
<!-- Set up 'examples' directory -->
- <copy todir="${distrib.current.dir}">
+ <copy todir="${distrib.current.win.dir}">
<fileset dir="${basedir}" includes="LICENSE,README,VERSION"/>
<fileset dir="${basedir}/sources" includes="examples/**/*.scala"/>
</copy>
- <fixcrlf srcdir="${distrib.current.dir}" eol="dos"
+ <fixcrlf srcdir="${distrib.current.win.dir}" eol="dos"
includes="LICENSE,README,VERSION,examples/**/*.scala"/>
<!-- Set up 'lib' directory -->
- <mkdir dir="${distrib.current.dir}/lib"/>
+ <mkdir dir="${distrib.current.win.dir}/lib"/>
+ <copy file="${fjbg.jar}" todir="${distrib.current.win.dir}/lib"/>
+ <copy file="${oslib.jar}" todir="${distrib.current.win.dir}/lib"/>
+ <copy file="${msil.jar}" todir="${distrib.current.win.dir}/lib"/>
+ <copy file="${scala.dll}" todir="${distrib.current.win.dir}/lib"/>
<!-- Set up 'support' directory -->
- <mkdir dir="${distrib.current.dir}/support"/>
- <copy todir="${distrib.current.dir}/support">
+ <mkdir dir="${distrib.current.win.dir}/support"/>
+ <copy todir="${distrib.current.win.dir}/support">
<fileset dir="${support.dir}"
includes="emacs/**,gedit/**,jedit/**,scite/**,textpad/**,ultraedit/**"/>
</copy>
- <fixcrlf srcdir="${distrib.current.dir}/support" eol="dos"/>
+ <fixcrlf srcdir="${distrib.current.win.dir}/support" eol="dos"/>
+ <!-- Set up latest -->
+ <symlink resource="${distrib.current.win.dir}"
+ link="${distrib.dir}/win/latest"/>
<!-- Create zip archive -->
<zip destfile="${distrib.dir}/win/${distrib.package.dir}.zip"
- basedir="${distrib.current.dir}"/>
+ basedir="${distrib.current.win.dir}"/>
</target>
<!--
@@ -389,7 +428,7 @@
<echo level="verbose">oslib.jar=${oslib.jar}</echo>
<echo level="verbose">oslib.src=${oslib.src}</echo>
<echo level="verbose">ostools.jar=${ostools.jar}</echo>
- <fileset id="oslib.src.files" dir="${oslib.src}">
+ <fileset id="oslib.src.files" dir="${sources.dir}">
<include name="scala/**/*.scala"/>
<exclude name="scala/tools/**"/>
</fileset>