Difference between revisions of "Automatic Build Scripts"

(Linux)
(Replaced origo.ethz.ch by eiffel.com in SVN URL)
 
(21 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
[[Category:Compiler]]
 
[[Category:Compiler]]
[[Category:EiffelStudio]]
+
[[Category:Build Scripts]]
 
This page references different build scripts that automate the process of building EiffelStudio.
 
This page references different build scripts that automate the process of building EiffelStudio.
  
== Windows ==
+
= 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
  
Bernardo Buss created a set of scripts for the automated compilation of EiffelStudio under Windows.
+
    geant
 +
 
 +
in top level of $EIFFEL_SRC folder, then geant will print:
 +
<code>
 +
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
 +
</code>
 +
So all you need to do is:
 +
<code>
 +
geant check_setup
 +
geant prepare
 +
geant make_delivery
 +
</code>
 +
 
 +
* 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 =
 +
 
 +
[[User:Barnski|Bernardo Buss]] created a set of scripts for the automated compilation of EiffelStudio under Windows.
 
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip
 
* Script: http://homepage.hispeed.ch/barnski/EiffelStudio_batch_files.zip
 
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html
 
* Announcement: http://origo.ethz.ch/pipermail/es-devel/2006-April/000052.html
Updated "2_checkout_dev.bat" according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].<br>
 
 
'''Note:'''<br>
 
'''Note:'''<br>
* Additionally there is the checkout for two delivery paths, which are necessary for building the Delivery after compilation.
 
 
* You may need to keep "2_checkout_dev.bat" up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|Checking out from SVN]].
 
* You may need to keep "2_checkout_dev.bat" up to date by yourself according to [[Compiling_EiffelStudio#Checking_out_from_SVN|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:'''<br>
 +
* [[User:Philipp|Philipp Bönhof]] improved the scripts with customizable parameters which should work with the newest pre-release of EiffelStudio. Download here: http://n.ethz.ch/student/pboenhof/autotest/eiffel_win_compilation_scripts.zip (updated: 2006-09-06)
  
== Linux ==
+
= Linux =
  
Bernd Schoeller has developed a build script available for download at http://se.inf.ethz.ch/people/schoeller/download/build-ec-acex
+
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:<br/>
 +
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).
 
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 ===
+
== Gentoo ==
Eiffelstudio, Gobo, edoc, ewg, eiffelmedia and eclipse edt ebuilds for gentoo, can be downloaded [http://n.ethz.ch/~philipkr/eiffel-ebuilds.tar.gz here] or from cvs:
+
Ebuilds and installation instructions can be found [http://n.ethz.ch/~philipkr/eiffel-ebuilds.html here]
cvs -z3 -d:pserver:anonymous@waldorf.inf.ethz.ch:/public-cvs co -deiffel-ebuilds student/eiffel-ebuilds
+
 
Installation instructions can be found [http://n.ethz.ch/~philipkr/eiffel-tools.html 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:
 +
<pre>
 +
#!/bin/bash
 +
 
 +
cd $EIFFEL_SRC/C
 +
make clobber
 +
./quick_configure
  
== Mac OSX ==
+
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
  
To compile EiffelStudio under MacOS X with a pre-compiled Linux binary, Martin has developed a script. It is included in the EiffelStudio "compile from source" archive at http://eiffelsoftware.origo.ethz.ch/downloads/tools/experimental/.
+
cd $EIFFEL_SRC/Eiffel/Ace
 +
ec -config ec.ecf -target bench -finalize -c_compile
 +
</pre>
 +
This basically automates the steps described [[Compiling_EiffelStudio|here]].

Latest revision as of 13:12, 4 June 2012

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.