Installing SmartEiffel in Ubuntu Jaunty

Turns out that SmartEiffel has not been a part of the Ubuntu repositories since Dapper, per this bug report. The version of SmartEiffel in CVS is 2.4, the most current is 2.3.

However, to this day the problem remains: SmartEiffel will not compile under Ubuntu direct from source. The Ubuntu bug report states FTBFS (which turns out to mean Fails To Build From Source – clear, eh?).

The fix is to remove optimization from the configuration – switching the flags from -O2 to -O1. Follow these steps to get SmartEiffel working:

  • Unpack the archive and change into the directory it creates.
  • Add ${PWD}/bin to the current path: export PATH=${PWD}/bin:$PATH
  • Run make interactive.
  • Press the Enter key to get the menu.
  • Select item 2 (Choose the C compilers and options for each C mode).
  • Choose boost (the normal default)
  • Change the C compiler options and the C++ compiler options from using -O2 to using -O1
  • Return to the previous menu.
  • Return to the previous menu (again).
  • Choose Write the configuration file to disk.
  • Now choose Install SmartEiffel.

Making these changes should result in a successful build of SmartEiffel. However, despite the success, this does not in actuality install SmartEiffel into /usr/local or other recommended locations; it remains in the current directory.

To actually install SmartEiffel into the system, you’ll have to copy items over yourself. I’ll have more when I figure this out; SmartEiffel is perfectly usable after configuring your path and building from source as described here. Java compilation (that is, compiling Eiffel code to Java JVM code) still appears to have problems, though.

6 thoughts on “Installing SmartEiffel in Ubuntu Jaunty”

  1. Thanks for this! It works perfectly… until I close the terminal window. Then when I open a new one, the se command is no longer recognised and I have to go through all these steps again to get it to work again.

    Any ideas of what I’m doing wrong?

    1. Remember to put the modified PATH and other environment variables into your .profile or similar file – so that when you start a new session your environment is configured properly.

      1. Any chance you can tell me how to do that? Sorry, I’m kind of new to Ubuntu. 😦

      2. Certainly!

        First, edit a file named .profile (with dot) in your home directory; make sure you use a text editor (like vi, vim, emacs, gedit, kate, and others). There should already be one there.

        If there is a PATH line, add the appropriate path to it to make SmartEiffel run:

        PATH=............................:/path/to/se/dir

        (replace the dots with the current PATH). Then you have to log in again to make the path active.

  2. Thanks. The .profile had:

    PATH=”$HOME/bin:$PATH”

    so I changed it to:

    PATH=”$HOME/bin:$PATH:/$HOME/Downloads/SmartEiffel”

    because the extracted SmartEiffel folder is in my Downloads folder. However, when I logged back in the se command wasn’t recognised. Do you know what I’m doing wrong?

    1. You put the entry /$HOME/Downloads/SmartEiffel into your path. On my system, the appropriate directory is SmartEiffel/bin. So change the entry to $HOME/Downloads/SmartEiffel/bin .

      Also, /$HOME is redundant: the variable $HOME contains your full home directory path.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: