Dynamic lib selection and deployment
[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 './scr/git/use-pre-commit.sh'
15
16 ## Documentation
17
18 Execute 'scons doc'
19
20 ## Unit tests
21
22 Execute 'scons test'
23
24 ## Examples
25
26 Execute 'scons example' to generate example binaries
27
28 ## Install
29
30 Execute 'sudo scons install-include'         for only headers                   
31 Execute 'sudo scons install-lib'             for only libraries                 
32 Execute 'sudo scons install-include-and-lib' for headers & libraries            
33 Execute 'sudo scons install-example'         for only example binaries/resources
34 Execute 'sudo scons install'                 to install the whole suite         
35
36 ## Uninstall
37
38 Execute 'sudo scons uninstall'
39
40
41
42 ## Some basic ubuntu requirements
43
44 ### Scons python-based building suite:
45      sudo apt-get install scons
46
47 ### OpenSSL:
48      sudo apt-get install libssl-dev
49  
50 ### Gnome XML:
51      sudo apt-get install libxml2-dev
52
53 ### OpenLDAP:
54      sudo apt-get install libldap2-dev
55
56 ### Pcap:
57      sudo apt-get install libpcap-dev
58
59 ### MySql:
60      sudo apt-get install libmysqlclient-dev
61
62 ### Oracle:
63      https://help.ubuntu.com/community/Oracle%20Instant%20Client
64      Set 'ORACLE_HOME' environment variable in your profile, i.e.:
65         export ORACLE_HOME=/usr/lib/oracle/12.1/client64/
66
67      Be sure to create in that directory, a link to oracle includes,
68      for example:
69
70         <user>@<host>:/usr/lib/oracle/12.1/client64$ ls -lrt
71         total 8
72         drwxr-xr-x 2 root root 4096 Feb 28 15:59 bin
73         drwxr-xr-x 2 root root 4096 Feb 28 15:59 lib
74         lrwxrwxrwx 1 root root   33 Feb 28 16:07 include -> /usr/include/oracle/12.1/client64
75
76      The alternative is to edit SConstruct file directly to set
77      oracle includes directory.
78
79 ### Oracle-OpenLDAP conflict:
80      as usual, Oracle is doing things very bad. Move the ldap.h from oracle includes, i.e.:
81
82         cd /usr/include/oracle/12.1/client64
83         sudo mv ldap.h ldap.h.orig
84
85 ### Boost:
86      Although the more i use, the more i dislike, this suite is included (ambition to learn
87      new things...):
88
89         sudo apt-get install libboost-dev
90         sudo apt-get install libboost-test-dev
91
92      Development module is no longer needed, but still unit testing is done through boost.
93      Pending migration to google test framework. 
94
95