Automatic Build Scripts

Revision as of 13:12, 4 June 2012 by Manus (Talk | contribs) (Replaced origo.ethz.ch by eiffel.com in SVN URL)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page references different build scripts that automate the process of building EiffelStudio.

Platform independent

Based on geant

  • To build a working delivery out of the trunk source code
svn checkout https://svn.eiffel.com/eiffelstudio/trunk trunk
set EIFFEL_SRC to point to this path  trunk/Src

Geant executable is located at $ISE_EIFFEL/gobo/spec/$ISE_PLATFORM/bin. You can simply run command

   geant

in top level of $EIFFEL_SRC folder, then geant will print:

usage:
 geant check_setup         Check if your setup is ok for compilation 
 geant clean               Clean up the folders
 geant clobber             Clean, and delete generated files in folders
 geant prepare             Prepare folders for development on `ec'
                           Note: folders=runtime, il runtime, C_library,
                                       library, framework.
 geant compile             Compile 'ec' finalized
 geant compile_workbench   Compile 'ec' workbench
 ---- 
 geant make_delivery       Build a complete delivery 
 
defines:
  -Dcompile_dir=PATH     Build intermediate binaries in PATH

So all you need to do is:

geant check_setup
geant prepare
geant make_delivery
  • Warnings:
The scripts are not fully tested, and may not be very well written for now
(it contains unfinished code .. especially regarding setup building)
On Windows:
   - It may have issue with dotnet (windows)
   - It requires: sed, tar, and bash (for runtime). You can use cygwin for that.
   - Extracting the Gobo library may crash "tar" ... need to check
On linux:
   - You need to answer a few questions, mostly for runtime configuration

However, the scripts are working and can be helpful to build EiffelStudio without too much trouble.
  • Note: If there are built executables in the build folder (subfolder bin/), these executables are used for the delivery instead of recompiling from source. To make sure that the Delivery is built from scratch, the 'bin/' - folder should be removed from the build directory.
  • If ever you have feedback, or comment, or anything, you can contact Jocelyn : mailto:jfiat@eiffel.com

Windows

Bernardo Buss created a set of scripts for the automated compilation of EiffelStudio under Windows.

Note:

  • You may need to keep "2_checkout_dev.bat" up to date by yourself according to Checking out from SVN.
  • It is possible that the batchfiles only work partial with EiffelStudio newer than version 5.7.0826 (especially parts of the compilation process may differ too much).

Update:

Linux

Bernd Schoeller has developed a build script vor use with .acex configuration files. it is available for download at http://se.inf.ethz.ch/people/schoeller/download/build-ec-acex

For use with the new .ecf configuration files, please use this updated version:
http://n.ethz.ch/~bherlig/download/build-ec-ecf.sh

This script requires a single checkout from the SVN repository (with the EIFFEL_SVN environment variable pointing to it). It will compile the bench or the batch compiler (you need to modify the script for the second).

Gentoo

Ebuilds and installation instructions can be found here

Mac OSX

Now that Mac builds are available, I guess you can use the Linux script on Mac OS, too. I prefer this more simple script though:

#!/bin/bash

cd $EIFFEL_SRC/C
make clobber
./quick_configure

cd $EIFFEL_SRC/library/event/Clib
finish_freezing -library
cd $EIFFEL_SRC/library/net/Clib
finish_freezing -library
cd $EIFFEL_SRC/library/vision2/Clib
finish_freezing -library
cd $EIFFEL_SRC/library/vision2/implementation/gtk/Clib
finish_freezing -library

cd $EIFFEL_SRC/Eiffel/Ace
ec -config ec.ecf -target bench -finalize -c_compile

This basically automates the steps described here.