blob: 5e50cf4ef8c0f91ad937c80070f463b30c4d8d49 [file] [log] [blame]
<title>org.eclipse.ve.releng.builder README</title>
<p><b><font size="+2">**template**<BR><BR>README </font></b></p><p>Last Updated:
Dec 5, 2003</p><p>This document describes how to build &lt;project&gt;components
from the command line using Ant scripts in this project and org.eclipse.releng.basebuilder.</p><p><br>
<b>Table of Contents</b><br> <br> <a href="#description">Description</a><br> <a href="#prereq">Prerequisites</a><br>
<a href="#setup">Setup</a><br> <a href="#components">Run the Build</a><br> <a href="#antbuildproperties">Ant
properties defined build.properties</a><br> <a href="#buildconfigs">&lt;project&gt;
Configurations</a><br> <a href="#examples">Examples</a><br> <br> </p><p><b><a name="description"></a>Description</b></p><p>org.eclipse.&lt;project&gt;.releng.builder
contains Ant scripts that invoke script generators in org.eclipse.pde.build to
build all shipped <a href="#components">components of &lt;project&gt;:</a> SDK,
runtime, tests, and examples.<br> <br> </p><p><b><a name="prereq"></a>Prerequisites</b><br>
</p><p>1. <a href="http://www.cvshome.org/">CVS</a> version 1.10 or higher (For
<a href="http://ftp.cvshome.org/release/binary/win32/cvs-1-11-9.zip"> CVS 1.11.9
WIN32</a>).<br> 2. <a href="http://java.sun.com/j2se/1.4/download.html">1.4 level
JDK</a>.<br> 3. <a href="http://java.sun.com/j2se/1.3/download.html"> A 1.3 level
Windows JRE</a> to compile against.<br> 4. <a href="http://www.info-zip.org/pub/infozip/">Info-Zip
zip and unzip</a><br> 6. org.eclipse.releng.basebuilder and org.eclipse.&lt;project&gt;.releng.builder
from <a href="http://dev.eclipse.org/viewcvs/">dev.eclipse.org</a>.<br> <br> </p><p><b><a name="setup"></a>Setup<br>
<br> </b>1. Add the CVS and Info-Zip executables to your path as required.<br>
2. Add the 1.4 jre/bin directory of the installed JDK to your path.<b><br> </b>3.
Check out org.eclipse.releng.basebuilder and org.eclipse.&lt;project&gt;.releng.builder
into a directory.<b><br> <br> <br> <a name="run"></a>Run the Build</b></p><p>
cd to org.eclipse.&lt;project&gt;.releng.builder directory and execute the following
command (currently the build.xml script can only be executed in a headless eclipse
due to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35923">bug 35923</a>):
</p><p>&quot;java -cp ../org.eclipse.releng.basebuilder/startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.ant.core.antRunner -buildfile build.xml -Dbuilder=<a href="#components">sdk
| runtime| examples | tests</a> [Ant properties to override in a <a href="#antbuildproperties">component's
build.properties</a>] &quot;<br> </p><p><br> <b><a name="components"></a></b>The
component property value sets the name of the directory in org.eclipse.&lt;project&gt;.releng.builder
which contains the Ant scripts that build a given an &lt;project&gt; component
as descibed below: <br> <br> </p><table width="100%" border="1"> <tr> <td width="20%">Component
(directory name in org.eclipse.&lt;project&gt;.releng.builder)</td><td width="80%">Description</td></tr>
<tr> <td width="20%">sdk</td><td width="80%">This directory contains the scripts
used to build the &lt;project&gt; SDK. A &lt;project&gt; SDK is comprised of binaries,
source, and developer documentation.</td></tr> <tr> <td width="20%">runtime</td><td width="80%">This
directory contains the scripts used to build the &lt;project&gt; runtime. The
&lt;project&gt; runtime component contains binaries only.</td></tr> <tr> <td width="20%">examples</td><td width="80%">This
directory contains the scripts used to build the &lt;project&gt; Examples. The
&lt;project&gt; Examples contain binaries and source. </td></tr> <tr> <td width="20%">tests</td><td width="80%">This
directory contains the scripts used to build the &lt;project&gt; Automated testing
environment. This test framework can be used to run JUnit plugin tests on a &lt;project&gt;
SDK from the command line.</td></tr> </table><p><br> <b><a name="antbuildproperties"></a>Ant
Properties Settings in a component's build.properties<br> <br> </b>The following
properties are pre-defined in the build.properties file for the specified component.
They can be overridden by setting them at the command line at build time or by
changing them directly in the component's build.properties file.</p><table width="100%" border="1">
<tr> <td>Name</td><td>Description</td></tr> <tr> <td>baseos,basews,basearch</td><td>The
os, ws and arch values of a pre-built eclipse component being compiled against.
See list of possible values in the table of <a href="#buildconfigs">build configurations</a>.</td></tr>
<tr> <td height="26">baseLocation</td><td height="26">A directory separate from
buildDirectory which contains pre-built plugins and features against which to
compile. The basedirectory must not contain any features, plugins or fragments
which are already or will be located in the buildDirectory (see below).</td></tr>
<tr> <td>bootclasspath</td><td>Sets the value for the attribute &quot;bootclasspath&quot;
in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task</a> in a plugins' build.xml. Default set to ${java.home}/lib/rt.jar.</td></tr>
<tr> <td height="36">buildDirectory</td><td height="36"> <p>The absolute path
to a working directory where the source for the build will be exported, where
scripts will be generated and where the end products of the build will be located.
On Windows systems, the path length should not exceed thirty characters due to
possible path length limitations when compiling some classes. </p></td></tr> <tr>
<td>buildId</td><td>The build name. Default set to &quot;build&quot;.</td></tr>
<tr> <td>buildLabel</td><td>Refers to the name of the directory which will contain
the end result of the build. Default set to ${buildType}.${buildId}, ie.&quot;I.build&quot;.
This directory will be created inside the location specified by the ${buildDirectory}
property.</td></tr> <tr> <td>buildType</td><td> <p>Letters I, N, S, R or M are
used to identify builds as being one of the following:<br> <br> I - Integration<br>
N - Nightly<br> S - Stable<br> R - Release<br> M - Maintenance<br> </p><p> If
set to N, all source will be checked out from the HEAD stream. In all other cases,
tags as specifed in map files will be used when exporting plugins to the buildDirectory.
</p></td></tr> <tr> <td>collPlace</td><td>The directory relative to ${buildLabel}
in which built features and plugins are gathered. Default set to &quot;.&quot;.</td></tr>
<tr> <td>collBase</td><td>The directory relative to ${buildLabel} in which to
execute zip of the ${collPlace}directory and configuration specific root files.</td></tr>
<tr> <td>configs</td><td> <p>An ampersand separated list of configurations to
build where a configuration is specified as &lt;os&gt;,&lt;ws&gt;,&lt;arch&gt;.<br>
ie.configs=&quot;win32,win32,x86 &amp; linux, motif, x86 &amp; linux, gtk, x86&quot;.
The default setting (*,*,*) should be used for platform-independant components.</p></td></tr>
<tr> <td>javacDebugInfo</td><td>Sets the value for the attribute &quot;debug&quot;
in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task </a>in a plugins' build.xml. Default set to on.</td></tr> <tr>
<td>javacFailOnError</td><td>Sets the value for the attribute &quot;failonerror&quot;
in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task</a> in a plugins' build.xml. Build will continue even if there
are compilation errors when this is set to false.</td></tr> <tr> <td>javacSource</td><td>Sets
the value for the attribute &quot;source&quot; in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task</a> in a plugins' build.xml. Default set to 1.3.</td></tr>
<tr> <td>javacTarget</td><td>Sets the value for the attribute &quot;target&quot;
in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task</a> in a plugins' build.xml. Default set to 1.1.</td></tr>
<tr> <td>javacVerbose</td><td>Sets the value for the attribute &quot;verbose&quot;
in calls to the <a href="http://ant.apache.org/manual/CoreTasks/javac.html">Ant
&lt;javac&gt; task</a> in a plugins' build.xml. Default set to true.</td></tr>
<tr> <td>mapVersionTag</td><td> <p>Sets the tag attribute in a call to the <a href="http://ant.apache.org/manual/CoreTasks/cvs.html">Ant
&lt;cvs&gt; task </a>to check out org.eclipse.&lt;project&gt;.releng, the map
file project on dev.eclipse.org used in the build. The default is &quot;HEAD&quot;</p><p>Can
be set to a specific tag to download the map files used for a previous integration
build. Typically, these tags are in the form &quot;v&lt;build id in About dialog&gt;&quot;
for example &quot;v200307110800&quot; will checkout the map files used to run
the integration at the specified date/time. These scripts work with builds &gt;
??<br> </p></td></tr> <tr> <td>timestamp</td><td>A timestamp used to fill in value
for buildid in about.mappings files. The timestamp is also used to tag the org.eclipse.&lt;project&gt;.releng
project on dev.eclipse.org only when an appropriate value for mapCvsRoot is provided
and when the tagMaps Ant property is set. </td></tr> <tr> <td>zipargs</td><td>Arguments
to send to the zip executable. ie. zipargs=-y on Linux preserves symbolic links.</td></tr>
</table><p><br> </p><p><font size="+1"><b><a name="buildconfigs"></a>&lt;project&gt;
Build Configurations</b></font></p><p><b></b>A configuration refers to the combination
of the operating system, windowing system and processor architecture for which
the component is intended. Currently, all &lt;project&gt; components are platform
independent.<br> <p><br> <br> <b><a name="examples"></a>Examples<br> <br> </b>
<p><a href="#ex1">Build SDK including javadoc on Windows</a><br> <a href="#ex5">Build
Runtime component on Linux</a><br> <a href="#ex5.1">Build test component in a
directory containing a previous SDK buildDirectory</a> <br> <a href="#ex6">Building
examples against a &lt;project&gt; SDK installed in eclipse on Windows</a><br>
</p><p><b><br> <a name="ex1"></a>Build Windows SDK component with javadoc generation
on Windows</b></p><p><b>java -cp ..\org.eclipse.releng.basebuilder\startup.jar
org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile
build.xml -Dbuilder=sdk -Dbootclasspath=C:\JRE131\lib\rt.jar -Djavacfailonerror=true
-DjavacVerbose=false -DbuildDirectory=c:\mybuild\eclipse</b> <br> <br> This builds
a &lt;project&gt; SDK in the directory c:\mybuild\eclipse. &quot;-DjavaVerbose=false&quot;
indicates that no compile logs will be generated and &quot;-Djavacfailonerror=true&quot;
will cause the build to fail if there are any compile errors. <b></b> <br> </p><p><b><a name="ex4"></a>Build
&lt;project&gt; runtime component on Linux</b></p><p><b>java -cp ../org.eclipse.releng.basebuilder/startup.jar
org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile
build.xml -Dbuilder=runtime -DbuildDirectory=/builds/runtime/eclipse</b></p><p>This
builds a &lt;project&gt; runtime in the directory &quot;/builds/runtime/eclipse&quot;.<br>
<br> <br> <b><a name="ex5.1"></a>Build test component in a directory containing
a source from a previous SDK build on Windows</b></p><p><b>java -cp ..\org.eclipse.releng.basebuilder\startup.jar
org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -buildfile
build.xml -Dbuilder=tests -Dbootclasspath=C:\JRE131\lib\rt.jar -DbuildDirectory=c:\builds\sdk\eclipse
-Djavacfailonerror=true</b></p><p></p><p>This builds an the &lt;project&gt; test
plugins in the same directory where an SDK was previously built. The build will
fail if there are compile errors.<br> </p><p><br> <b><a name="ex7"></a>Building
examples against a &lt;project&gt; SDK installed in eclipse on Windows</b></p><p><b>java
-cp ..\org.eclipse.releng.basebuilder\startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.ant.core.antRunner -buildfile build.xml -Dbuilder=examples
-Dbootclasspath=C:\JRE131\lib\rt.jar -DbuildDirectory=c:\examples\eclipse -DbaseLocation=c:\eclipse
-Dbaseos=win32 -Dbasews=win32 -Dbasearch=x86 -Djavacfailonerror=true</b></p><p></p><p>This
builds &lt;project&gt; examples in the directory c:\examples against a &lt;project&gt;
SDK installed in eclipse in the directory c:\examples\eclipse. The build will
fail if there are compile errors.<br> </p><p>&nbsp;</p>