Building Rodin Headless: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Laurent |
imported>Laurent |
||
Line 5: | Line 5: | ||
==Build Parameters== | ==Build Parameters== | ||
Three parameters need to be defined for each build: | |||
# the platform version, that is the user-visible version which is displayed in ''About Rodin Platform''. Example of versions are <tt>1.0</tt> and <tt>1.0RC1</tt>. | # the platform version, that is the user-visible version which is displayed in ''About Rodin Platform''. Example of versions are <tt>1.0</tt> and <tt>1.0RC1</tt>. | ||
# the Subversion revision number, which permits to know very precisely which source versions are used for the build. | # the Subversion revision number, which permits to know very precisely which source versions are used for the build. | ||
# the full platform version used for provisioning. This version is made of three digits separated by dots. Example of full versions are <tt>1.0.0</tt> and <tt>1.1.0</tt>. | |||
==Fetching Sources== | ==Fetching Sources== |
Revision as of 06:51, 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
- Fetch the sources from Subversion and make a source archive with them.
- Build the platform headless from this set of sources using Apache Ant.
Build Parameters
Three parameters need to be defined for each build:
- 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.
- the Subversion revision number, which permits to know very precisely which source versions are used for the build.
- 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 two parameters described above. 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" *
Building the platform
TODO: Give script and command to run it