README.linux 7.46 KB
Newer Older
1
******************************************************************************
Adam Knapp's avatar
Adam Knapp committed
2
* Copyright (c) 2000-2021 Ericsson Telecom AB
Elemer Lelik's avatar
Elemer Lelik committed
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v2.0
Elemer Lelik's avatar
Elemer Lelik committed
5
* which accompanies this distribution, and is available at
6
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
Elemer Lelik's avatar
Elemer Lelik committed
7 8 9 10 11 12
*  Contributors:
*   Balasko, Jeno
*   Baranyi, Botond
*   Lelik, Elemer
*   Pilisi, Gergely
*   Szabados, Kristof
13
*   Fekete, Tamas
Elemer Lelik's avatar
Elemer Lelik committed
14 15 16 17 18
******************************************************************************

Build and install Titan on Linux

1.Install required libraries: 
19
(Examples are given for Ubuntu 12.04/14.04/16.04/18.04; for other Linuxes, pls. use the relevant library installation method)
Lenard Nagy's avatar
Lenard Nagy committed
20

21
UBUNTU :
22 23
sudo apt-get update -y
sudo apt-get install g++ expect libssl-dev libxml2-dev libncurses5-dev flex bison libedit2 libedit-dev
Lenard Nagy's avatar
Lenard Nagy committed
24 25 26 27 28

NOTE: If You run into an error "E: Unable to locate package libedit-dev
" then enabling Universe repository mey be needed:
sudo add-apt-repository universe

balaskoa's avatar
balaskoa committed
29 30
SLES 11.4: sudo zypper in libopenssl-devel libedit0 libedit-devel (g++ flex bison, expect, libncurses5 already installed)
SLED 14.0: sudo zypper in libopenssl-devel libedit0 libedit-devel ( g++, flex, bison libncurses5 already installed)
31
RHEL8: sudo yum libedit; g++, flex, bison already installed
balaskoa's avatar
balaskoa committed
32

Elemer Lelik's avatar
Elemer Lelik committed
33 34
xutils-dev is needed by makedepend:
sudo apt-get install xutils-dev
balaskoa's avatar
balaskoa committed
35 36
(SLED 14.0: - )

37 38
Install optional packages required some tests:

Elemer Lelik's avatar
Elemer Lelik committed
39
The following packages may be needed for titan_eclipse/automatic_build:
40 41 42 43 44 45 46
Ubuntu: sudo apt-get install ant xsltproc ant-junit
(SLED 12.4: sudo zypper install ant-junit ; libxslt-tools already installed)
(RHEL: sudo yum install ant ant-junit# xsltproc already installed)
(SUSE 15.1: -)

The regression test requires xmllint. The package containing it: libxml2-utils
ubuntu: sudo apt install libxml2-utils
balaskoa's avatar
balaskoa committed
47
suse: sudo zypper install libxml2-tools or libxml2
48 49 50 51 52 53
rhel: sudo yum install libxml2-devel


Performance test requires pcap
ubuntu: sudo apt-get install libpcap0.8-dev
suse: sudo zypper install libpcap-devel libpcap1
Elemer Lelik's avatar
Elemer Lelik committed
54

55
2.Clone or update the titan directory from git into /home/<user_id>/titan.core
Elemer Lelik's avatar
Elemer Lelik committed
56

57
cd /home/<user_id>/
Adam Knapp's avatar
Adam Knapp committed
58
git clone https://gitlab.eclipse.org/eclipse/titan/titan.core.git titan.core
59 60 61 62 63

or

Update the already existing local repository:
cd /home/<user_id>/titan.core
Adam Knapp's avatar
Adam Knapp committed
64
git pull https://gitlab.eclipse.org/eclipse/titan/titan.core.git
Elemer Lelik's avatar
Elemer Lelik committed
65 66 67

3. Configure the build 

Elemer Lelik's avatar
Elemer Lelik committed
68
cd titan.core
Elemer Lelik's avatar
Elemer Lelik committed
69 70

For open source users: check that MakefileFOSS.cfg is present and has the following content:
Elemer Lelik's avatar
Elemer Lelik committed
71 72 73 74 75 76
cat MakefileFOSS.cfg

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

Elemer Lelik's avatar
Elemer Lelik committed
77 78
If you want to use your build within the Ericsson domain: delete MakefileFOSS.cfg
This will enable Ericsson internal-only licensing and statistics.
Elemer Lelik's avatar
Elemer Lelik committed
79

balaskoa's avatar
balaskoa committed
80 81 82 83 84 85 86
#This paragraph is obsolete 
#GEN_PDF set to yes will convert Word documents to PDF using a web service available within Ericsson only.
#Alternatively, one can install libreoffice and convert the documentation files as below:
#cd titan.core/userguide
#libreoffice -convert-to pdf *.doc *.docx

GEN_PDF set to yes will convert .adoc documents to pdf using asciidoctor-pdf
Elemer Lelik's avatar
Elemer Lelik committed
87 88

Several other build options are possible; for details on options please read through the Makefile.cfg.
Elemer Lelik's avatar
Elemer Lelik committed
89 90 91 92
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.

93 94 95 96 97
Note: For each scenario below on Raspberry Pi "-fsigned-char" needs to be added to compiler flags in Makefile.personal:

COMPILERFLAGS := -Wall -fsigned-char


Elemer Lelik's avatar
Elemer Lelik committed
98
a) JNI  disabled, gcc compiler (default)
Elemer Lelik's avatar
Elemer Lelik committed
99 100

The JNI interface is used by the Eclipse Titan Executor or by the Java Executor API.
Elemer Lelik's avatar
Elemer Lelik committed
101
If you don't need them, Titan can be compiled without JNI. 
Elemer Lelik's avatar
Elemer Lelik committed
102

Elemer Lelik's avatar
Elemer Lelik committed
103
Create ~/titan.core/Makefile.personal to override settings in Makefile.cfg with the following content:
Elemer Lelik's avatar
Elemer Lelik committed
104 105
(replace paths with values relevant to your installation)

Elemer Lelik's avatar
Elemer Lelik committed
106
TTCN3_DIR := /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
107 108 109 110 111
OPENSSL_DIR := /usr
#JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
XMLDIR := /usr
JNI := no
GEN_PDF := no
balaskoa's avatar
balaskoa committed
112
OLD_LIBEDIT := yes # if the first line of /usr/include/editline/readline.h
balaskoa's avatar
balaskoa committed
113
                   # contains v1.34 or older i.e version of editline is 0:53:0 or older.
Elemer Lelik's avatar
Elemer Lelik committed
114

Elemer Lelik's avatar
Elemer Lelik committed
115 116 117 118
b) JNI  disabled, clang compiler ver. 3.8

Create ~/titan.core/Makefile.personal to override settings in Makefile.cfg with the following content:
(replace paths with values relevant to your installation). 
Elemer Lelik's avatar
Elemer Lelik committed
119

Elemer Lelik's avatar
Elemer Lelik committed
120 121 122 123 124 125 126 127
TTCN3_DIR := /home/<user id>/titan.core/Install
OPENSSL_DIR := /usr
#JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
XMLDIR := /usr
JNI := no
GEN_PDF := no
CXX := clang++-3.8
CC := clang-3.8 
Elemer Lelik's avatar
Elemer Lelik committed
128 129
OLD_LIBEDIT = yes  # if the first line of /usr/include/editline/readline.h
                   # contains v1.34 or older i.e version of editline is 0:53:0 or older.
Elemer Lelik's avatar
Elemer Lelik committed
130

Elemer Lelik's avatar
Elemer Lelik committed
131
c) JNI  enabled, gcc compiler (default)
Elemer Lelik's avatar
Elemer Lelik committed
132 133 134

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

Elemer Lelik's avatar
Elemer Lelik committed
135
Create ~/titan.core/Makefile.personal to override settings in Makefile.cfg with the following content:
Elemer Lelik's avatar
Elemer Lelik committed
136
(replace paths with values relevant to your installation).
Elemer Lelik's avatar
Elemer Lelik committed
137

Elemer Lelik's avatar
Elemer Lelik committed
138
TTCN3_DIR := /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
139
OPENSSL_DIR := /usr
140
JDKDIR := /home/<user id>/jdk
Elemer Lelik's avatar
Elemer Lelik committed
141 142 143
XMLDIR := /usr
JNI := yes
GEN_PDF := no
144
COMPILERFLAGS += -Wall -Wlogical-op -I/home/<user id>/jdk/include -I/usr/include
Elemer Lelik's avatar
Elemer Lelik committed
145 146 147
OLD_LIBEDIT = yes  # if the first line of /usr/include/editline/readline.h
                   # contains v1.34 or older i.e version of editline is 0:53:0 or older.
                   
Elemer Lelik's avatar
Elemer Lelik committed
148 149 150 151 152 153
d) For Alpine Linux, an appropriate flag has to be set:

:
ALPINE_LINUX := yes
:

Elemer Lelik's avatar
Elemer Lelik committed
154

Elemer Lelik's avatar
Elemer Lelik committed
155
4. Run make
Elemer Lelik's avatar
Elemer Lelik committed
156 157 158

make

Elemer Lelik's avatar
Elemer Lelik committed
159
5. Set environment variables
Elemer Lelik's avatar
Elemer Lelik committed
160

Elemer Lelik's avatar
Elemer Lelik committed
161
setenv TTCN3_DIR /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
162
setenv PATH /home/<userid>/titan.core/Install/bin:${PATH}
Elemer Lelik's avatar
Elemer Lelik committed
163
setenv LD_LIBRARY_PATH /home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
Elemer Lelik's avatar
Elemer Lelik committed
164

Elemer Lelik's avatar
Elemer Lelik committed
165
for csh
Elemer Lelik's avatar
Elemer Lelik committed
166

Elemer Lelik's avatar
Elemer Lelik committed
167
or 
Elemer Lelik's avatar
Elemer Lelik committed
168

Elemer Lelik's avatar
Elemer Lelik committed
169
export TTCN3_DIR=/home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
170
export PATH=/home/<userid>/titan.core/Install/bin:${PATH}
Elemer Lelik's avatar
Elemer Lelik committed
171
export LD_LIBRARY_PATH=/home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
Elemer Lelik's avatar
Elemer Lelik committed
172

Elemer Lelik's avatar
Elemer Lelik committed
173
for bash
Elemer Lelik's avatar
Elemer Lelik committed
174

Elemer Lelik's avatar
Elemer Lelik committed
175
6. Run make install
Elemer Lelik's avatar
Elemer Lelik committed
176

Elemer Lelik's avatar
Elemer Lelik committed
177
make install
Elemer Lelik's avatar
Elemer Lelik committed
178

Elemer Lelik's avatar
Elemer Lelik committed
179
This will install Titan into  /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
180 181


Elemer Lelik's avatar
Elemer Lelik committed
182
7. Optionally , run function/regression tests
Elemer Lelik's avatar
Elemer Lelik committed
183

Elemer Lelik's avatar
Elemer Lelik committed
184
cd /home/<user id>/titan.core/function_test
Elemer Lelik's avatar
Elemer Lelik committed
185 186 187

in the following Makefiles 

Elemer Lelik's avatar
Elemer Lelik committed
188
BER_EncDec/Makefile
Elemer Lelik's avatar
Elemer Lelik committed
189 190 191 192 193 194 195 196 197 198 199 200
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)

Elemer Lelik's avatar
Elemer Lelik committed
201
cd /home/<user id>/titan.core/regression_test
Elemer Lelik's avatar
Elemer Lelik committed
202 203 204 205 206 207
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)

Lenard Nagy's avatar
Lenard Nagy committed
208
8. Optionally, copy Titan into its final directory.
Lenard Nagy's avatar
Lenard Nagy committed
209
From here on, you can continue with the Titan installation guide, see /Install/docs, to set/change environment variables etc.
Elemer Lelik's avatar
Elemer Lelik committed
210
and then, optionally, the Eclipse installation guide.
Elemer Lelik's avatar
Elemer Lelik committed
211

Elemer Lelik's avatar
Elemer Lelik committed
212

Elemer Lelik's avatar
Elemer Lelik committed
213 214 215 216 217 218 219 220
9. Important Note:  In later Debian and derived (Ubuntu etc.)  distributions Titan is avalable directly from repositories 
and can be installed with:

apt-get install eclipse-titan

However, environment variables and your Makefile will still have to be configured manually:

export TTCN3_DIR=/usr
221
export PATH=$TTCN3_DIR/bin:${PATH}
Elemer Lelik's avatar
Elemer Lelik committed
222 223 224 225 226 227 228 229 230 231 232
export LD_LIBRARY_PATH=$TTCN3_DIR/lib:${LD_LIBRARY_PATH}

Add to your Makefile the appropriate flags:

# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = ..... -I/usr/include/titan

and 

# Flags for the linker:
LDFLAGS = -L/usr/lib/titan 
Elemer Lelik's avatar
Elemer Lelik committed
233 234 235