summaryrefslogtreecommitdiff
path: root/build.readme
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2005-10-11 11:53:02 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2005-10-11 11:53:02 +0000
commit59a434de1b5fbc24383586d21412d3bd154e1013 (patch)
tree5596a2abeb39956d2d18c5176159888e0b9104f0 /build.readme
parent6f850988f453d6ced9661271ea4a5ed0be83d0e9 (diff)
downloadscala-59a434de1b5fbc24383586d21412d3bd154e1013.tar.gz
scala-59a434de1b5fbc24383586d21412d3bd154e1013.tar.bz2
scala-59a434de1b5fbc24383586d21412d3bd154e1013.zip
Changed the way to set properties.
Diffstat (limited to 'build.readme')
-rw-r--r--build.readme107
1 files changed, 107 insertions, 0 deletions
diff --git a/build.readme b/build.readme
new file mode 100644
index 0000000000..54b2fdb1ff
--- /dev/null
+++ b/build.readme
@@ -0,0 +1,107 @@
+BUILDING NEW SCALA WITH ANT
+---------------------------
+
+This is version 1.0 of the Scala Ant-based build system SABBUS.
+
+QUICK START
+-----------
+
+- Copy the 'build.TEMPLATE.properties' file in 'build.support' to
+ 'build.USER_NAME.properties'. Set all properties in this file.
+
+- In a terminal window, type:
+ ANT_OPTS="-Xmx256M" ant distrib
+
+USAGE GUIDE
+-----------
+
+PREREQUISITES
+
+The new Scala Ant-based build system (SABBUS) requires the following elements:
+ - An old Scala distribution. The Scala tools ('tools.jar' must be of a version
+ that does contain the improved Scalac Ant task at
+ 'scala.tools.scalac.ant.Scalac'. The scala library ('scala.jar') must contain
+ all classes required to build NSC.
+ - A PiCo/JaCo distribution. It must contain the improved PiCo task at
+ 'jaco.pizza.ant.Pico'.
+ - Ant version 1.6 or above.
+ - Java version 1.4 or above (Java 1.5 might not be supported).
+
+SETTING UP
+
+The set-up of SABBUS is done entirely in the 'build.properties' file. Make sure
+that all values in this file are set and correct.
+
+Another configuration file exists ('build.support/build.default'). This file
+should not be modified as any property declared in 'build.properties' will
+override the value set in 'build.default'.
+
+With a normal Java distribution, the standard memory allocated to the JVM in
+insufficient for Scala compilation. The ANT_OPTS environment variable needs to
+be set to increase the memory size (either each time as in the quick start
+example above, or once and for all in the default shell environment).
+
+BUILDING NEW SCALA
+
+The 'build' target builds all the Scala library and tools. It is composed of the
+following sub-targets:
+ - 'build.pico.nslib':
+ Builds the Java files in Scala (runtime, tools and scala root) with PiCo.
+ When both a Java file in sources and a Scala file in newsources exist, the
+ Java file is not compiled (it is considered to have been superseeded by the
+ Scala file).
+ - 'build.osc.nstools':
+ Builds NSC with an existing Scalac (found in path of property
+ 'ostools.jar').
+ - 'build.nsc.nslib':
+ Builds the new Scala library with the compiler built at target
+ 'build.osc.nstools'. Depends on 'build.osc.nstools' & 'build.pico.nslib'.
+ If files should not be compiled at that stage, they can be specified in the
+ 'build.support/nsc.nslib.excludes'
+ - 'build.nsc.nstools':
+ Builds NSC with the compiler built at target 'build.osc.nstools'. Depends
+ on 'build.osc.nstools' & 'build.pico.nslib'. If files should not be
+ compiled at that stage, they can be specified in the
+ 'build.support/nsc.nstools.excludes'
+
+CONSTRUCTING A DISTRIBUTION
+
+The 'distrib' target constructs a simple distribution of new Scala from the
+latest build. The following steps will be done:
+ - Creates a standard distribution folder hierarchy.
+ - Create JAR packages for the library ('nslib.jar'), and the tools, both
+ compiled with Scalac ('osc-nstools.jar') and with NSC ('nstools.jar').
+ - Create script files (bash and bat) to execute the new Scala compiler.
+ - Adds man files and the documentation to the distribution.
+ - Generates some symbolic links to simplify navigation (only on UNIX). Amongst
+ other, a 'latest' link in the 'dist' folder will point to the latest
+ distribution folder (useful to refer in a permanent way to the latest
+ distribution on your system).
+
+CLEANING
+
+The 'clean' target removes all build and distribution files.
+ - 'clean.build' only removes build files and does not touch distribution files.
+ - 'clean.distrib' only removes distribution files.
+
+DOCUMENTING
+
+Not implemented yet
+
+TESTING
+
+Not implemented yet
+
+KNOWN BUGS, LIMITATIONS AND PLANNED IMPROVEMENTS
+------------------------------------------------
+
+- Create NSC executable scripts for UNIX and Windows.
+- Create Windows build system.
+- Create documentation.
+- Support testing.
+
+HISTORY
+-------
+
+1.0
+ First functioning version. Supports clean, build and a limited distrib.