LoginPreferencesHelp/GuideAbout Trac
WikiBrowse Source
Last modified 3 years ago Last modified on 03/06/15 11:17:00

Introduction

EVE is a research branch of EiffelStudio that combines many research tools and libraries. This page gives detailed instructions on how to compile EVE.

Windows

Setup

Make sure that the SVN client and Python are available on the Visual Studio command prompt.

Download source and compile EVE

  • Download the EVE python script to the location where you want to compile EVE.
  • Run the following command in a Visual Studio command prompt:
    python eve.py update
    
  • Download the Boogie for Windows package and extract it to eve/Delivery/studio/tools.
  • Add the following string verbatim to the PATH variable: %ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin;

Open the EVE project in EiffelStudio

  • Run the following command in a Visual Studio command prompt:
    python eve.py es
    
  • Open the project eve\Eiffel\Ace\ec.ecf with the target bench.
  • Add the commandline flag -gui to the execution parameters to launch the graphical version of EVE.

Build an EVE delivery for Windows

  • Do the setup and compilation as described above.
  • Run the following command in a Visual Studio command prompt:
    python eve.py delivery
    
  • The delivery will be created in a subdirectory delivery.

Linux

These instructions have been tested on a fresh Ubuntu 14.04.1 installation. You might need to adapt the setup depending on your system (especially setting the subversion settings if you already have subversion installed).

Setup

  • Run the following commands in a terminal window:
    sudo apt-get -y install dist g++ libgtk2.0-dev mono-complete subversion
    mkdir ~/.subversion
    touch ~/.subversion/config
    wget https://trac.inf.ethz.ch/trac/meyer/eve/export//trunk/eve/svn_settings.txt
    cat svn_settings.txt >> ~/.subversion/config
    

Download source and compile EVE

  • Run the following commands in a terminal window in the location where you want to compile EVE:
    wget https://trac.inf.ethz.ch/trac/meyer/eve/export//trunk/eve/eve.py
    python eve.py update
    wget https://trac.inf.ethz.ch/trac/meyer/eve/export//trunk/eve/boogie-linux.tar.bz2
    tar xjf boogie-linux.tar.bz2
    mv boogie eve/Delivery/studio/tools
    

Open the EVE project in EiffelStudio

  • Run the following command in a terminal window:
    python eve.py es
    
  • Open the project eve/Eiffel/Ace/ec.ecf with the target bench.
  • Add the command-line flag -gui to the execution parameters to launch the graphical version of EVE.

Build an EVE delivery for Linux

  • Do the setup and compilation as described above.
  • Run the following command in a terminal window:
    python eve.py delivery
    
  • The delivery will be created in a subdirectory delivery.

Mac OS X

The recommended way to compile EVE on a Mac is to use a virtual machine with either Windows or Linux. If you want to try to compile EVE natively on Mac, follow the instructions on installing EiffelStudio on the Mac, install the latest nightly build from the EiffelStudio FTP server and then follow the instructions on compiling EVE on Linux.

Troubleshooting

  • Due to the weekly merge of EiffelStudio Trunk into EVE, and the temporary availability of the nightly builds of EiffelStudio, there is a very slight possibility that the available nightly build is currently unable to compile EVE. In such a case, one has to fall back to the previously available development build or wait until a new merge is completed (usually every Friday). For this, the Python script has a variable that can be set to a specific version of EiffelStudio that is either already installed or still available on the FTP server.
  • The Python script has the download locations of the EiffelStudio nightly builds hard-coded. If the release version changes, the script has to be adapted.
  • On Windows 64bit, make sure your Visual Studio command prompt is for 64bit compilation. Otherwise you will experience linker errors.

Working Guidelines

Subversion Branching and Merging

When you do branching, you need to contain the following text at the beginning of your commit message:

<<Branched from URL at rev#N>>

When you do merging, you need to contain the following text at the beginning of your commit message:

<<Merged from URL at rev#N>>

The URL is the source of branch or merging. You don't need to include the complete URL because that would be quite heavy. You can use a relative path starting from the root of the repository instead.

The N in rev#N is the revision number of the branch. For example, if you branched from the Eve project code base at revision 12345, then you need to include the following message:

<<Branched from /branches/eth/eve at rev#12345>>

Code Style Guidelines

http://dev.eiffel.com/Style_Guidelines

Old Notes on Mac OS X

Software Installation

# Install !MacPorts by following the instructions on the project's page. # Install EiffelStudio from MacPorts. ## Open the Terminal application on your operating system (normally found under /Applications/Utilities/?) and type <code>port search eiffelstudio</code> to list all available ported EiffelStudio releases. ## Choose a release, e.g. eiffelstudio68 and install it with the command <code>sudo port install eiffelstudio68</code>. Because EiffelStudio is built from source, this might take a long time, if you're using an older machine.

Software Installation by Customizing Portfile

It might happen that the EiffelStudio port in MacPorts is not up-to-date with the latest EiffelStudio builds. In that case you have the option to manually modify the port file for EiffelStudio yourself to still get the latest version compiled and installed. # Open http://sourceforge.net/projects/eiffelstudio/files/, select the subfolder for the corresponding EiffelStudio release, e.g. "EiffelStudio 6.8", and inside the subfolder for the build version you want to install, e.g. "Build_86627". # Download the Porter Package file, e.g. "!PorterPackage_68_86627_gpl.tar", to a local folder. The instructions below will be based on this file name as a given example. # Open the Terminal application and navigate to the folder where you stored the Porter Package. Run the following command (see the first box) to get the hash of the Porter Package (see second box) that you'll need to update the Portfile later on: <blockcode> openssl dgst -ripemd160 !PorterPackage_68_86627_gpl.tar </blockcode> <blockcode> RIPEMD160(!PorterPackage_68_86627_gpl.tar)= ff763bb7091fc37a236dda0589d7fbde22750fe4 </blockcode>

Updating the Portfile

Open the Terminal application and run command below to open the Portfile for the corresponding EiffelStudio release in a text editor. Afterwards you can continue to update the fields. <blockcode> open -a TextEdit /opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/eiffelstudio68/Portfile </blockcode>

Ensure that the "minor version" field, i.e. the built version, is set correctly, e.g.: <blockcode> name eiffelstudio68 set minor_version 86627 version 6.8.${minor_version} </blockcode>

Ensure that the "distname" field reflects the Porter Package filename, e.g.: <blockcode> distname !PorterPackage_${branch}_${minor_version}_gpl </blockcode>

Ensure that the "checksums" section contains the right checksum for the downloaded Porter Package file, e.g.: <blockcode> checksums ${distname}${extract.suffix} rmd160 ff763bb7091fc37a236dda0589d7fbde22750fe4 \ </blockcode>

Environment (variable) setup

To achieve a consistent setup for bash and X11, we recommend to edit following files located in your home directory: <code>.bashrc</code>, <code>.bash_profile</code> and <code>.profile</code>. if the files don't exist, you'll have to create them. If they exist and already have content, add the given lines just anywhere.

Edit file $HOME/.bashrc

A successful installation of <code>eiffelstudio</code> will print out at the end instructions like the following example: <blockcode> export ISE_PLATFORM=macosx-x86-64 export ISE_EIFFEL=/Applications/MacPorts?/Eiffel68 export GOBO=$ISE_EIFFEL/library/gobo/svn export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin:$GOBO/../spec/$ISE_PLATFORM/bin </blockcode> Copy your individual output to <code>.bashrc</code> or modify the above given example to your needs. Further add following two lines to the previous configuration and take care to set <code>EIFFEL_SRC</code> to a directory that will contain the source of the EVE branch. <blockcode> export EIFFEL_SRC=/Dummy/Path/To/My/Source? export ISE_LIBRARY=$EIFFEL_SRC </blockcode>

Edit file $HOME/.bash_profile

The beginning of this file should link to the <code>.bashrc</code> that we previously set up:

<blockcode> . ~/.bashrc ENV=$HOME/.bashrc export ENV </blockcode>

Edit file $HOME/.profile

The beginning of this file should link to the <code>.bash_profile</code> that we previously set up. This step is necessary to propagate the environmental settings to the <code>X11</code> X window system:

<blockcode> . ~/.bash_profile </blockcode>

User interface tweaking

Optional, but highly recommended: If you'd start EiffelStudio now, you'd get a very disappointing visual experience. With the installation of additional themes you can reduce that impact. # Execute the command <code>port install gnome-themes gtk-theme-switch</code> to install additional themes and an application that allows to switch between them. # After installation execute <code>switch2</code> in Terminal, which opens a simple theme switching application. Select (if not already done) <code>Clearlooks</code> or any other theme that is appealing to you.

Compiling EVE source

# Check out source code from https://svn.eiffel.com/eiffelstudio/branches/eth/eve/Src into EIFFEL_SRC # Check out scripts to compile run-time and C libraries from https://svn.inf.ethz.ch/svn/meyer/eve/trunk/compile_es/linux # Start a console, run compile_runtime.sh. # Start EiffelStudio, open the ec.ecf file at $EIFFEL_SRC/Eiffel/Ace, and choose the "bench_unix" (or "bench") target.

Alternatively, to do steps 3 and 4, you can run the compile_ec.py script from https://svn.origo.ethz.ch/eve/scripts/compile_es/compile_ec.py. The easiest way to use it is to type python compile_ec.py. After the script terminates, workbench will be compiled in $EIFFEL_SRC/Eiffel/Ace/EIFGENs.

 
 
© 2005 ETH Zürich | Imprint | 26.09.2007 | Version 0.12.5
top