Skip to content
Snippets Groups Projects
README.linux 3.82 KiB
Newer Older
Elemer Lelik's avatar
Elemer Lelik committed
******************************************************************************
* Copyright (c) 2000-2015 Ericsson Telecom AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************

Build and install Titan on Linux

1.Install required libraries: 
(examples are given for Ubuntu 12.04/14.04; for other Linuxes, pls. use the relevant library installation method)

sudo apt-get install g++ expect libssl-dev libxml2-dev libncurses5-dev flex bison
xutils-dev is needed by makedepend:
sudo apt-get install xutils-dev
The following packages may be needed for titan_eclipse/automatic_build:
sudo apt-get install ant xsltproc

2.Clone the titan directory from git  into /home/<user_id>/titan

git clone https://github.com/eclipse/titan.core  titan

3. Configure the build 

cd titan
check  that MakefileFOSS.cfg is present   and  has the following content:
cat MakefileFOSS.cfg

# Configurations for the Free Open Source Software version
LICENSING := no
USAGE_STATS := no


Several build options are possible; for details on options , please read through the Makefile.cfg.
Options can be overridden by the content of  a file named Makefile.personal which can be used to 
adapt to local installation directories, change config options etc.
Below, a small number of typical scenarios are presented.

1) JNI  disabled

The JNI interface is used by the Eclipse Titan Executor or by the Java Executor API.
If you don't need them , Titan can be compiled without JNI. 

Create ~/titan/Makefile.personal to override settings in Makefile.cfg with the following content:
(replace paths with values relevant to your installation)

TTCN3_DIR := /home/<user id>/titan/Install
OPENSSL_DIR := /usr
#JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
XMLDIR := /usr
JNI := no
GEN_PDF := no




2) JNI  enabled

install JDK   into /home/<user id>/jdk

Create ~/titan/Makefile.personal to override settings in Makefile.cfg with the following content:
(replace paths with values relevant to your installation)

TTCN3_DIR := /home/<user id>/titan/Install
OPENSSL_DIR := /usr
JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
XMLDIR := /usr
JNI := yes
GEN_PDF := no



3. Run make

make

4. Run make install

make install

This will install Titan into  /home/<user id>/titan/Install

Elemer Lelik's avatar
Elemer Lelik committed
Note: If make install fails with something like:

make[2]: Leaving directory '/path/to/install/titan/demo'
/bin/sh: line 4: ttcn3_start: command not found
kMakefile:25: recipe for target 'install' failed
make[1]: *** [install] Error 127
make[1]: Leaving directory '/home/user/3rdPartyApps/titan/hello'
Makefile:53: recipe for target 'install' failed
make: *** [install] Error 2

then add /path/to/install/titan/bin/ to PATH and retry:

PATH=/path/to/install/titan/bin/:${PATH} 
make install




Elemer Lelik's avatar
Elemer Lelik committed
5. Optionally , run function/regression tests

set environment variable TTCN3_DIR to /home/<user id>/titan/Install

(setenv  TTCN3_DIR /home/<user id>/titan/Install  for csh,
export TTCN3_DIR=/home/<user id>/titan/Install for bash )



cd /home/<user id>/titan/function_test

in the following Makefiles 

XER_EncDec/Makefile
Text_EncDec/Makefile
RAW_EncDec/Makefile

edit the value of XMLDIR to match your installation values 

run the tests

make

( or make |& tee outputfile if you want to save the output for verification)

cd /home/<user id>/titan/regression_test
make run

( or make run |& tee outputfile if you want to save the output for verification)

These tests might run for half an hour (regr.tests)  to two hours (func.tests)

6. Optionally , copy Titan into its' final directory.
From here on, you can continue with the Titan installation guide, see /Install/docs, to set environment variables etc.