README.linux 6.06 KB
Newer Older
balaskoa's avatar
balaskoa committed
1
cd******************************************************************************
balaskoa's avatar
balaskoa committed
2
* Copyright (c) 2000-2020 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
19
20
******************************************************************************

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
balaskoa's avatar
balaskoa committed
21
22
23
 (SLED 14.0: sudo zypper in libopenssl-devel,  g++, flex, bison already installed)
 (RHEL: g++, flex, bison already installed)

Elemer Lelik's avatar
Elemer Lelik committed
24
25
xutils-dev is needed by makedepend:
sudo apt-get install xutils-dev
balaskoa's avatar
balaskoa committed
26
27
(SLED 14.0: - )

Elemer Lelik's avatar
Elemer Lelik committed
28
29
The following packages may be needed for titan_eclipse/automatic_build:
sudo apt-get install ant xsltproc
balaskoa's avatar
balaskoa committed
30
(RHEL: sudo yum install ant # xsltproc already installed)
Elemer Lelik's avatar
Elemer Lelik committed
31

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

34
35
36
37
38
39
40
41
cd /home/<user_id>/
git clone https://github.com/eclipse/titan.core.git  titan.core

or

Update the already existing local repository:
cd /home/<user_id>/titan.core
git pull https://github.com/eclipse/titan.core.git
Elemer Lelik's avatar
Elemer Lelik committed
42
43
44

3. Configure the build 

Elemer Lelik's avatar
Elemer Lelik committed
45
cd titan.core
Elemer Lelik's avatar
Elemer Lelik committed
46
47

For open source users: check that MakefileFOSS.cfg is present and has the following content:
Elemer Lelik's avatar
Elemer Lelik committed
48
49
50
51
52
53
cat MakefileFOSS.cfg

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

Elemer Lelik's avatar
Elemer Lelik committed
54
55
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
56

balaskoa's avatar
balaskoa committed
57
58
59
60
61
62
63
#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
64
65

Several other build options are possible; for details on options please read through the Makefile.cfg.
Elemer Lelik's avatar
Elemer Lelik committed
66
67
68
69
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.

70
71
72
73
74
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
75
a) JNI  disabled, gcc compiler (default)
Elemer Lelik's avatar
Elemer Lelik committed
76
77

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

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

Elemer Lelik's avatar
Elemer Lelik committed
83
TTCN3_DIR := /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
84
85
86
87
88
89
OPENSSL_DIR := /usr
#JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
XMLDIR := /usr
JNI := no
GEN_PDF := no

Elemer Lelik's avatar
Elemer Lelik committed
90
91
92
93
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
94

Elemer Lelik's avatar
Elemer Lelik committed
95
96
97
98
99
100
101
102
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
103
104


Elemer Lelik's avatar
Elemer Lelik committed
105
c) JNI  enabled, gcc compiler (default)
Elemer Lelik's avatar
Elemer Lelik committed
106
107
108

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

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

Elemer Lelik's avatar
Elemer Lelik committed
112
TTCN3_DIR := /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
113
OPENSSL_DIR := /usr
114
JDKDIR := /home/<user id>/jdk
Elemer Lelik's avatar
Elemer Lelik committed
115
116
117
XMLDIR := /usr
JNI := yes
GEN_PDF := no
118
COMPILERFLAGS += -Wall -Wlogical-op -I/home/<user id>/jdk/include -I/usr/include
Elemer Lelik's avatar
Elemer Lelik committed
119

Elemer Lelik's avatar
Elemer Lelik committed
120
121
122
123
124
125
d) For Alpine Linux, an appropriate flag has to be set:

:
ALPINE_LINUX := yes
:

Elemer Lelik's avatar
Elemer Lelik committed
126

Elemer Lelik's avatar
Elemer Lelik committed
127
4. Run make
Elemer Lelik's avatar
Elemer Lelik committed
128
129
130

make

Elemer Lelik's avatar
Elemer Lelik committed
131
5. Set environment variables
Elemer Lelik's avatar
Elemer Lelik committed
132

Elemer Lelik's avatar
Elemer Lelik committed
133
setenv TTCN3_DIR /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
134
135
setenv PATH /home/<userid>/titan.core/Install/bin/:${PATH}
setenv LD_LIBRARY_PATH /home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
Elemer Lelik's avatar
Elemer Lelik committed
136

Elemer Lelik's avatar
Elemer Lelik committed
137
for csh
Elemer Lelik's avatar
Elemer Lelik committed
138

Elemer Lelik's avatar
Elemer Lelik committed
139
or 
Elemer Lelik's avatar
Elemer Lelik committed
140

Elemer Lelik's avatar
Elemer Lelik committed
141
export TTCN3_DIR=/home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
142
143
export PATH=/home/<userid>/titan.core/Install/bin/:${PATH}
export LD_LIBRARY_PATH=/home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
Elemer Lelik's avatar
Elemer Lelik committed
144

Elemer Lelik's avatar
Elemer Lelik committed
145
for bash
Elemer Lelik's avatar
Elemer Lelik committed
146

Elemer Lelik's avatar
Elemer Lelik committed
147
6. Run make install
Elemer Lelik's avatar
Elemer Lelik committed
148

Elemer Lelik's avatar
Elemer Lelik committed
149
make install
Elemer Lelik's avatar
Elemer Lelik committed
150

Elemer Lelik's avatar
Elemer Lelik committed
151
This will install Titan into  /home/<user id>/titan.core/Install
Elemer Lelik's avatar
Elemer Lelik committed
152
153


Elemer Lelik's avatar
Elemer Lelik committed
154
7. Optionally , run function/regression tests
Elemer Lelik's avatar
Elemer Lelik committed
155

Elemer Lelik's avatar
Elemer Lelik committed
156
cd /home/<user id>/titan.core/function_test
Elemer Lelik's avatar
Elemer Lelik committed
157
158
159

in the following Makefiles 

Elemer Lelik's avatar
Elemer Lelik committed
160
BER_EncDec/Makefile
Elemer Lelik's avatar
Elemer Lelik committed
161
162
163
164
165
166
167
168
169
170
171
172
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
173
cd /home/<user id>/titan.core/regression_test
Elemer Lelik's avatar
Elemer Lelik committed
174
175
176
177
178
179
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
180
8. Optionally, copy Titan into its final directory.
Lenard Nagy's avatar
Lenard Nagy committed
181
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
182
and then, optionally, the Eclipse installation guide.
Elemer Lelik's avatar
Elemer Lelik committed
183

Elemer Lelik's avatar
Elemer Lelik committed
184

Elemer Lelik's avatar
Elemer Lelik committed
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
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
export PATH=$TTCN3_DIR/bin/:${PATH}
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
205
206
207