Normalize xml processing
[anna.git] / README.md
1 # ANNA
2
3 Multi-purpose C++ development suite, focused on Telco resources (communications, protocols and tools).
4 ANNA is acronym for "Anna is not nothingness anymore", that is to say: "Anna is something to take into
5 account" (like a SONaTINA).
6
7 ANNA is a complete suite of tools and resources to build proffesional applications with minimum cost.
8
9 ## Revision control
10
11 Based on GIT, hosted on http://redmine.teslayout.com
12
13 You could use my pre-commit specific template if you want to do some basic checkings (i.e.
14  astyle code processing): Execute './scripts/git/use-pre-commit.sh'
15
16
17 ## Build project
18
19 ### With docker
20
21 Architectures 'x86_64' and 'armv7l' are supported. Execute:
22
23      > tools/build-with-docker [variant: [Release]|Debug]
24
25 Note: database resources building is unsupported at the moment using docker.
26
27 ### Natively
28
29 This is a CMake based building suite.
30 Install cmake:
31
32      > sudo apt-get install cmake
33
34 And then generate the makefiles from project root directory:
35
36      > cmake .
37
38 You could specify type of build, 'Debug' or 'Release', for example:
39
40      > cmake -DCMAKE_BUILD_TYPE=Debug .
41      > cmake -DCMAKE_BUILD_TYPE=Release .
42
43 You could avoid database resources compilation to ease the add of requirements:
44
45      > cmake -DSKIP_DATABASE_BUILD=1 .
46
47 ## Clean project
48
49      > make clean
50
51 ## Change the compilers
52
53      > cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++     -DCMAKE_C_COMPILER=/usr/bin/gcc
54      or
55      > cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang
56
57 ## Some basic ubuntu requirements
58
59 ### OpenSSL:
60      > sudo apt-get install libssl-dev
61
62 ### Gnome XML:
63      > sudo apt-get install libxml2-dev
64
65 ### OpenLDAP:
66      > sudo apt-get install libldap2-dev
67
68 ### Pcap:
69      > sudo apt-get install libpcap-dev
70
71 ### MySql:
72      > sudo apt-get install libmysqlclient-dev
73
74 ### Oracle:
75      https://help.ubuntu.com/community/Oracle%20Instant%20Client
76
77      After instalation of basic/sqlplus/devel, edit CMakeLists.txt
78      and update oracle includes, for example:
79
80        include_directories(/usr/include/oracle/<version>/client64/include)
81
82 ### Oracle-OpenLDAP conflict:
83      as usual, Oracle is doing things very bad. Move the ldap.h from oracle includes, i.e.:
84
85         > cd /usr/include/oracle/12.1/client64
86         > sudo mv ldap.h ldap.h.orig
87
88 ### Google Test Framework:
89
90      > sudo apt-get install libgtest-dev
91
92      Note that this package only install source files. You have to compile the
93      code yourself to create the necessary library files. These source files
94      should be located at /usr/src/gtest. Browse to this folder and use cmake
95      to compile the library:
96
97      > cd /usr/src/gtest
98      > sudo cmake CMakeLists.txt
99      > sudo make
100
101      Copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder:
102      > sudo cp *.a /usr/lib
103
104 ## Documentation
105
106 Execute 'make doc'
107
108      > cd docs/doxygen
109      > tree -L 1
110
111      .
112      ├── Doxyfile
113      ├── html
114      ├── latex
115      └── man
116
117
118 ## Unit tests
119
120 Execute 'make test'
121
122 ## Install
123
124 To install headers, libraries, and examples, execute:
125
126      > sudo make install
127
128 Optionally you could specify another prefix for installation:
129
130      > cmake -DMY_OWN_INSTALL_PREFIX=$HOME/anna-deploy
131      > make install
132
133 ## Uninstall
134
135      > cat install_manifest.txt | sudo xargs rm
136
137 ## AOTS (Agents-Oriented Testing Setup)
138
139 See INSTALL_AOTS.md
140