Installation

Machine Preparation

Install a real or virtual machine according to the Linux Installation Document

Note

use as EELT_ROLE the default: EELT_ROLE=BASE

ELT Development Environment

Before installing the IFW it is needed to setup the environment. A very good starting point is this document

Note

The version 2.1.13 of ELT Development should be used with version 1 of ICS Framework (IFW).

Getting Started

  1. Login as your user. In your home directory:
$ mkdir modulefiles
$ cd modulesfiles
  1. Create and edit the file private.lua under modulesfiles directory. Use the example file below:
local home = os.getenv("HOME")

local introot = pathJoin(home, "INTROOT")
setenv ("INTROOT", introot)
setenv ("PREFIX", introot)

local dataroot = pathJoin(home, "DATAROOT")
setenv ("DATAROOT", dataroot)

prepend_path( "MODULEPATH", pathJoin(introot,"/etc/modulefiles/"))
try_load("ifw")

Warning

Log out and in again so that modulefiles directory becomes known to the environment. This is needed only if it is the first time that the directory modulefiles is created.

The file private.lua is loaded by default In case more .lua files (with different names) will be added to $HOME/modulefiles, they can be made known to the environment just with:

$ module load

Note

For more information, read this document

  1. Create the directories for the installation areas defined in the file private.lua
$ cd <the location for introot>
$ getTemplate -d introot INTROOT
$ cd <the location for dataroot>
$ getTemplate -d dataroot DATAROOT

The environment shall contain the configuration of the relevant environment variables such as INTROOT, DATAROOT, LD_LIBRARY_PATH, PYTHONPATH, etc.

  1. Retrieve and build the complete ICS Framework from the SVN repository (alpha tag).
$ svn co http://svnhq9.hq.eso.org/p9/tags/EELT/ICS/ifw/Release/1.0.0 ifw
$ cd ifw
$ waf configure
$ waf build install

Note

Just after the build the ifw.lua file need to be loaded using the command module load ifw, but next login it will be loaded by default

  1. Log out and Log in again to load IFW LMOD module. Check LMOD modules available after login. The output shall be as follows:
--------------------------------- /.../INTROOT/etc/modulefiles ---------------------------------
   ifw (L)

----------------------------------------- /home/.../modulefiles ------------------------------------------
   private (L)

------------------------------------------ /eelt/System/modulefiles -------------------------------------------
   clang    eeltdev (L)    gcc7 (L)    introot    jdk/java-openjdk (L)    python (L)    rti_connext (L)

------------------------------------ /usr/share/lmod/lmod/modulefiles/Core ------------------------------------
   lmod/6.5.1    settarg/6.5.1

  Where:
   L:  Module is loaded
  1. Retrieve and build the documentation.
$ cd ifw/docs
$ make html
$ firefox build/html/index.html
  1. Running automatic tests.
$ cd ifw
$ waf test --alltests

Note

IFW integration tests are available in a separate svn location, see below. They are based on the etr component. IFW integration tests might contain resources only available at ESO so they cannot be executed outside ESO.

$ svn co http://svnhq9.hq.eso.org/p9/tags/EELT/ICS/ifwTests/Release/1.0.0 ifwTests