Skip to content

Installation

Daniel Dietsch edited this page Oct 20, 2017 · 77 revisions

Download and Installation

This page explains how you setup a development environment for Ultimate. If you only want to produce a binary and use some of the tools, please have a look at Build and Usage.

Prerequisites

Install the following software packages:

  • Eclipse for RCP/Plugin Developers - note: the default Eclipse version is not sufficient
  • Java JDK (1.8) - note: Java JRE is not sufficient
  • Maven (>3.0) - note: comes with recent versions of Eclipse
  • A working copy of Ultimate

Prepare Eclipse

When you first start Eclipse, create some workspace (not the Ultimate Workspace). You need to prepare Eclipse first, or else it will mess up your Ultimate Workspace settings.

You need additional software installed in Eclipse. Install it via "Help" -> "Install New Software..."

  • Select the sources "Work with".
    The entry is called as your Eclipse version, e.g., Oxygen - http://download.eclipse.org/releases/oxygen.
    • C/C++ Development Tools
    • C/C++ Development Tools SDK
    • m2e - Maven Integration for Eclipse (includes Incubating components) (automatically included for recent versions of Eclipse)
  • Optional components for developing Ultimate's web frontend
    • JST Server Adapters
    • JST Server Adapters Extension
    • Eclipse Java EE Developer Tools
    • WAR Products (Incubation)
    • Equinox Target Components
    • Eclipse Java Web Developer Tools
    • Eclipse Web Developer Tools

You also need additional m2e connectors.

  • Open the m2e Marketplace with "Window" -> "Preferences" -> "Maven" -> "Discovery" -> "Open Catalog". Search and install "Tycho Configurator".

Create Ultimate workspace

The various Ultimate plugins have to be loaded into Eclipse ("ULTIMATE" is used as abbreviation for the Ultimate trunk directory).

Create a workspace:

  • Eclipse asks you to choose a workspace at startup. Use the directory "ULTIMATE/source". If the "Workspace Launcher" dialog is not shown, it can be found by selecting "File -> Switch Workspace".

Set preferences in your new workspace:

  • Prevent creation of .gitignore files (see first item here).
  • Set Ant properties:
    • Open the dialog "Window -> Preferences -> Ant -> Runtime".
    • Go to the tab "Properties" and add the following property if it is not already there (:=):
      • workspacedir:=${workspace_loc}

Import all Ultimate plugins:

  • Choose "File -> Import -> General -> Existing Projects into Workspace".
  • In "Select root directory", use the directory "ULTIMATE/source". In "Projects", a list of available projects should appear.
  • Keep everything selected (you can uncheck plugins starting with Web*).
  • Click "Finish".
  • If plugins starting with Web* have been selected, Eclipse may propose to install "jsNature". You can ignore that.

Now the "Package Explorer" should be filled with the new projects. If you imported projects starting with Web*, you can usually close them because they will report errors and are not relevant for most users.

If you cannot build Ultimate because some of the projects have errors (errors in projects starting with Web* are not problematic), check the Troubleshooting section.

Create run configuration

  • Open the project "BA_SiteRepository".
  • Open the file Debug-E4.product.
  • In tab "Overview", section "Testing":
    • Click "Synchronize".
    • Click "Launch an Eclipse application".

As a result, Ultimate with Debug View should start and you should have an entry in your Run Configurations and Run History (accessible via the "Run" menu) that you can use to run Ultimate from here on.

Different configurations (e.g., command line or CDT plugin) can be run in the same way, just select another .product file.

Custom VM arguments (e.g., more memory)

  • Open the "Run"->"Run Configurations..." dialog.
  • Open the tab "Arguments".
  • Write in field "VM Arguments": -Xmx4096M -Xms1024M.
    • The first argument sets the maximum heap size to 4096M (megabyte) and the second one the initial heap size to 1024M.
    • Never forget the M, otherwise Java uses bytes.
  • -agentlib:hprof=depth=7,cpu=samples can be used for profiling.
  • for more options see http://stas-blogspot.blogspot.de/2011/07/most-complete-list-of-xx-options-for.html or
    • use java -XX:+PrintFlagsFinal to print available -XX options.
    • More diagnostic and experimental options can be added to list with following options:
      • -XX:+UnlockDiagnosticVMOptions
      • -XX:+UnlockExperimentalVMOptions (for Sun)

Next steps

See Usage for working with the developer GUI.
See Eclipse-Settings for more settings recommendations of Eclipse.
See CodingConvention for our coding conventions.

Note

Whoever introduces new developers: Do not forget to add her/him to the Ultimate mailing list (see Add developers).

Clone this wiki locally