Difference between revisions of "Building Rodin Headless"

From Event-B
Jump to navigationJump to search
imported>Laurent
imported>Laurent
Line 67: Line 67:
  
 
==Installing Eclipse for Headless Build==
 
==Installing Eclipse for Headless Build==
 +
 +
To install Eclipse for headless build, you first need to download two bundles from the Eclipse download site:
 +
* <tt>eclipse-SDK-${VERSION}-${PLATFORM}.tar.gz</tt>
 +
* <tt>eclipse-${VERSION}-delta-pack.zip</tt>
 +
where <tt>VERSION</tt> is the version of Eclipse (e.g., <tt>3.4.2</tt>) and <tt>PLATFORM</tt> specifies the host platform for the build (e.g., <tt>linux-gtk</tt>).
 +
 +
Once downloaded, you need to extract the first archive, and then the second archive on top of the first. You now have an Eclipse installation able to build binary distribution for all platforms supported by Eclipse.
  
 
==Building the Platform==
 
==Building the Platform==

Revision as of 07:02, 25 October 2009

This page documents the procedure followed for building the binary packages of the Rodin platform that are distributed on SourceForge. The build is done in two steps

  1. Fetch the sources from Subversion and make a source archive with them.
  2. Build the platform headless from this set of sources using Apache Ant.

Build Parameters

Three parameters need to be defined for each build:

  1. the platform version, that is the user-visible version which is displayed in About Rodin Platform. Example of versions are 1.0 and 1.0RC1.
  2. the Subversion revision number, which permits to know very precisely which source versions are used for the build.
  3. the full platform version used for provisioning. This version is made of three digits separated by dots. Example of full versions are 1.0.0 and 1.1.0.

Fetching Sources

Sources are fetched from Subversion using the script below. The script can be run on any Unix machine and takes the first two parameters described above (i.e., platform version and subversion revision). For instance, to build Rodin 1.1, the script was invoked as

fetchSources 1.1 7661

The script itself is

#!/bin/sh
#
#  Fetch sources of the Rodin Platform from the Subversion repository on
#  SourceForge.
#

SVNROOT=http://rodin-b-sharp.svn.sourceforge.net/svnroot/rodin-b-sharp
SVNURL=$SVNROOT/trunk/RodinCore
export SVNROOT SVNURL

fatal() {
    echo "$@" >&2
    exit 1
}

checkRevision() {
    if expr "$SVNREV" : '^[0-9][0-9]*$' >/dev/null; then
	: OK
    else
	fatal "Invalid SVN revision number: $SVNREV"
    fi
}

fetchSources() {
    mkdir sources || fatal "Some sources have already been checked out."
    cd sources
    fetchProject org.rodinp.releng
    cat org.rodinp.releng/rodin-core.psf |
	sed -e '\,trunk/RodinCore/,!d' \
	    -e 's,.*RodinCore/,,'  \
	    -e 's/,.*//' |
	while read m; do
	    fetchProject "$m"
	done
}

fetchProject() {
    m="$1"
    echo "Fetching $m"
    svn -q export -r "$SVNREV" "$SVNURL/$m" "$m"
}


[ $# -eq 2 ] || fatal "Usage: $0 <Rodin_version> <SVN_revision>"
VERSION="$1"
SVNREV="$2"
checkRevision
fetchSources
zip -q -r "../rodin-${VERSION}-sources.zip" *

Installing Eclipse for Headless Build

To install Eclipse for headless build, you first need to download two bundles from the Eclipse download site:

  • eclipse-SDK-${VERSION}-${PLATFORM}.tar.gz
  • eclipse-${VERSION}-delta-pack.zip

where VERSION is the version of Eclipse (e.g., 3.4.2) and PLATFORM specifies the host platform for the build (e.g., linux-gtk).

Once downloaded, you need to extract the first archive, and then the second archive on top of the first. You now have an Eclipse installation able to build binary distribution for all platforms supported by Eclipse.

Building the Platform

TODO: Give script and command to run it