diff options
Diffstat (limited to 'build.readme')
-rw-r--r-- | build.readme | 107 |
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. |