Fixes
[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      Set 'ORACLE_HOME' environment variable in your profile, i.e.:
63         export ORACLE_HOME=/usr/lib/oracle/12.1/client64/
64
65      Be sure to create in that directory, a link to oracle includes,
66      for example:
67
68         > /usr/lib/oracle/12.1/client64$ ls -lrt
69         total 8
70         drwxr-xr-x 2 root root 4096 Feb 28 15:59 bin
71         drwxr-xr-x 2 root root 4096 Feb 28 15:59 lib
72         lrwxrwxrwx 1 root root   33 Feb 28 16:07 include -> /usr/include/oracle/12.1/client64
73
74      The alternative is to edit SConstruct file directly to set
75      oracle includes directory.
76
77 ### Oracle-OpenLDAP conflict:
78      as usual, Oracle is doing things very bad. Move the ldap.h from oracle includes, i.e.:
79
80         > cd /usr/include/oracle/12.1/client64
81         > sudo mv ldap.h ldap.h.orig
82
83 ### Google Test Framework:
84
85      > sudo apt-get install libgtest-dev
86
87      Note that this package only install source files. You have to compile the
88      code yourself to create the necessary library files. These source files
89      should be located at /usr/src/gtest. Browse to this folder and use cmake
90      to compile the library:
91
92      > cd /usr/src/gtest
93      > sudo cmake CMakeLists.txt
94      > sudo make
95  
96      Copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder:
97      > sudo cp *.a /usr/lib
98
99 ## Documentation
100
101 Execute 'make doc'
102
103      > cd docs/doxygen
104      > tree -L 1
105
106      .
107      ├── Doxyfile
108      ├── html
109      ├── latex
110      └── man
111
112
113 ## Unit tests
114
115 Execute 'make test'
116
117 ## Install
118
119 To install headers, libraries, and examples, execute:
120
121      > sudo make install
122
123 Optionally you could specify another prefix for installation:
124
125      > cmake -DCMAKE_INSTALL_PREFIX=$HOME/anna-deploy
126      > make install
127
128 ## Uninstall
129
130      > cat install_manifest.txt | sudo xargs rm
131
132