0c0cfd4e31372460e71d494388da84c9d34c6b23
[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 This is a CMake based building suite.
20 Install cmake:
21
22      > sudo apt-get install cmake
23
24 And then generate the makefiles from project root directory:
25
26      > cmake .
27
28 You could specify type of build, 'Debug' or 'Release', for example:
29
30      > cmake -DCMAKE_BUILD_TYPE=Debug .
31      > cmake -DCMAKE_BUILD_TYPE=Release .
32
33 ## Clean project
34
35      > make clean
36
37 ## Change the compilers
38
39      > cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++     -DCMAKE_C_COMPILER=/usr/bin/gcc
40      or
41      > cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang
42
43 ## Some basic ubuntu requirements
44
45 ### OpenSSL:
46      > sudo apt-get install libssl-dev
47  
48 ### Gnome XML:
49      > sudo apt-get install libxml2-dev
50
51 ### OpenLDAP:
52      > sudo apt-get install libldap2-dev
53
54 ### Pcap:
55      > sudo apt-get install libpcap-dev
56
57 ### MySql:
58      > sudo apt-get install libmysqlclient-dev
59
60 ### Oracle:
61      https://help.ubuntu.com/community/Oracle%20Instant%20Client
62
63      After instalation of basic/sqlplus/devel, edit CMakeLists.txt
64      and update oracle includes, for example:
65
66        include_directories(/usr/include/oracle/<version>/client64/include)
67
68 ### Oracle-OpenLDAP conflict:
69      as usual, Oracle is doing things very bad. Move the ldap.h from oracle includes, i.e.:
70
71         > cd /usr/include/oracle/12.1/client64
72         > sudo mv ldap.h ldap.h.orig
73
74 ### Google Test Framework:
75
76      > sudo apt-get install libgtest-dev
77
78      Note that this package only install source files. You have to compile the
79      code yourself to create the necessary library files. These source files
80      should be located at /usr/src/gtest. Browse to this folder and use cmake
81      to compile the library:
82
83      > cd /usr/src/gtest
84      > sudo cmake CMakeLists.txt
85      > sudo make
86  
87      Copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder:
88      > sudo cp *.a /usr/lib
89
90 ## Documentation
91
92 Execute 'make doc'
93
94      > cd docs/doxygen
95      > tree -L 1
96
97      .
98      ├── Doxyfile
99      ├── html
100      ├── latex
101      └── man
102
103
104 ## Unit tests
105
106 Execute 'make test'
107
108 ## Install
109
110 To install headers, libraries, and examples, execute:
111
112      > sudo make install
113
114 Optionally you could specify another prefix for installation:
115
116      > cmake -DMY_OWN_INSTALL_PREFIX=$HOME/anna-deploy
117      > make install
118
119 ## Uninstall
120
121      > cat install_manifest.txt | sudo xargs rm
122