From Liberty Eiffel Wiki
Revision as of 20:38, 6 August 2013 by Ramack (talk | contribs)
Jump to navigation Jump to search

SmartEiffels install tool is not used anymore, as it is replaced by a shell script and its manual.

The eiffel install tool is still available in the Liberty repository, but it is - like this page here - obsolete. Maybe once upon a time it may resurrect, so we keep this page until it's buried.


The install command is the installation program for SmartEiffel The GNU Eiffel Compiler. This command does not support any option. This command (class install.e) is written entirely in Eiffel and is the one recommended for installing SmartEiffel The GNU Eiffel Compiler.

The install.e source code as well as the generated C code install.c are in the SmartEiffel directory.

The very first step in installing SmartEiffel is to unpack the SmartEiffel directory somewhere on disk. The second step (not mandatory) is to set the SmartEiffel environment variable to the full path leading to the SmartEiffel/sys/ file. The last step is to compile the install.c file (it is pre-compiled for Windows) and to run it from the SmartEiffel directory.

For Unix, Elate and OpenVMS people, a Makefile is also provided, that does just that. Look at the comments in the Makefile itself for details.

The install command will do the rest of the work and will try to report possible problems. See the examples below.

See also at the end of the page for more details on how to use the interactive installer.

Example for UNIX

As an example, we assume below that we want to install SmartEiffel in the directory /foo/SmartEiffel/. If you are using bash, add the following two lines to your .bashrc file:

export SmartEiffel=/foo/SmartEiffel/sys/
export PATH=/foo/SmartEiffel/bin:$PATH

If you are using csh or tcsh, add the following two lines to your .cshrc file:

setenv SmartEiffel /foo/SmartEiffel/sys/
setenv PATH /foo/SmartEiffel/bin:$PATH

Don't forget to open a new terminal window in order to take into account the new settings of the SmartEiffel and PATH variables. Then, in this new terminal window, just type the following commands:

cd /foo
gunzip se.tgz (or bunzip2 se.tar.bz2)
tar xvf se.tar
cd SmartEiffel

You now just have to wait for the compiler installation to complete. Actually, it may take some time because all of the tools are recompiled from scratch using the Eiffel source code of SmartEiffel itself.

If you want to use the menus (as explained below), you should consider typing make interactive instead of just make. If your system has no gcc installed, compile install.c yourself and run it.

Example for Windows

The first step under Windows is to get a C compiler working on your computer. If you don't already have a C compiler installed, we recommend the LCC-Win32 compiler (a free C compiler system for Windows by Jacob Navia, or

At this point, it is assumed you have a C compiler installed. Further, we assume below that we want to install SmartEiffel in the C:\SmartEiffel directory.

The last step is to open an explorer window, go to C:\SmartEiffel, and double-click INSTALL.EXE.

You now go along the menu options (as described below), then you have to wait for the compiler installation to complete. Actually, it may take some time because all of the tools are recompiled from scratch using the Eiffel source code of SmartEiffel itself.

Example for Other Systems

For elate and OpenVMS systems, you can use make elate or make openvms. On other systems, the very first step for installation is to compile the install.c file in order to run it.

Using the installer

The installer helps you install SmartEiffel in the smartest way possible: yours :)

Except when using the plain make on Unix/Linux (which just picks default options and goes ahead), the installer asks help from you to install SmartEiffel. Of course, in many cases, the installer is Smart enough to choose good default values; those values are but defaults, though. It's up to you to tune them, or go along with them.

The install process is split in six phases, each of which is accessed via an entry in the main menu. The first three concern tuning the configuration; the rest deals with the installation itself.

Note that when a phase completes gracefully, the default option is to do the next one. Of course, you can skip phases, or go back to some, at your convenience (indeed, it's a menu) :) Also note that if the installer successfully computes acceptable default values, the first default value will be to verify the configuration (phase 3).

Furthermore, if SmartEiffel finds a valid configuration file (either at a default place or because you provided it via the SmartEiffel environment variable), the first default value will be to start the installation! You've been warned...

1. General configuration

This phase can be automatically computed.

In that first phase, you are asked to provide:

  • The operating system SmartEiffel is to be installed on (generally the one you're currently running...);
  • The path to the configuration file (a good idea is to accept the default; otherwise, you will always have to set the SmartEiffel environment variable);
  • Various paths pointing to parts of the SmartEiffel installation:
    • the path to the binaries,
    • the path to the sys directory,
    • the path to the short directory;
  • Default loadpath files: it is a sub-menu that lets you see, add, and remove default loadpath files. Remember that all those loadpaths will be read at each compilation; keep your hand light! (more about that in the finder man page)

2: C modes configuration

This phase can be automatically computed.

In that menu you can add and modify C modes. Removing them are not allowed; be careful if you add a new one. Default C modes are provided, one for each assertion level.

Each C mode lets you set the following values:

  • The C compiler type. The currently supported lists are:
    • gcc The GNU Compiler Collection; specifically, the C/C++ compiler.
    • lcc-win32 The C compiler developed by Jacob Navia.
    • tcc The Tiny C Compiler, developed by Fabrice Bellard.
    • wcl386 The Open Watcom C/C++ compiler.
    • bcc32 The Borland C/C++ compiler (needs free registration).
    • cc-unix The vanilla Unix C compiler. There are as many flavours of cc as of Unix... This one is generic; if some specific support is needed, please file an enhancement request in SmartZilla.
    • cc-openvms The Open VMS C compiler.
    • vpcc The Elate C compiler.
    • cl The Microsoft C/C++ compiler.
    • sas_c  ?
    • dice  ?
    • vbcc  ?
    • ccc  ?
  • The C compiler path (e.g. for gcc, you can use /usr/bin/gcc-2.7.2)
  • The C compiler options (e.g. for gcc, -ggdb3 -fomit-frame-pointers)
  • The C linker path (e.g. for lcc, lcclnk)
  • The C linker options (e.g. -lmylib)
  • The SmartEiffel extra options for this mode. Only a subset of the command line options are recognised. Those are:
    • -no_gc
    • -no_strip
    • -no_split
    • -sedb

3: Verification

This phase is skipped by default if the previous two were automatically computed.

In that phase, all the options you chose are displayed again, as a verification.

4: Writing the configuration file

In that phase, the configuration file is written to the place you chose in phase one.

5: Installing SmartEiffel itself

This is the most important phase! Indeed, now the installer can compile the SmartEiffel tools.

Just before starting the compilation, you are asked with which C mode the tools should be compiled. It is not always useful, except if you're in a hurry (not a good idea, that) :)

6: Exit!

If you successfully installed SmartEiffel, then you can exit the installer and enjoy your new Eiffel compiler.