X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=README.md;h=b9bc6ae28aebfc37fb16f74f9f18c0e442abc919;hp=11d1a2b7d9fd9f04ba4c969b5bc44c9b57b3512b;hb=HEAD;hpb=4e12ac57e93c052f716a6305ad8fc099c45899d1 diff --git a/README.md b/README.md index 11d1a2b..b9bc6ae 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,146 @@ -ANNA -==== -ANNA is the acronym for "ANNA is not 'N' anymore", a complete suite of tools and resources to build proffesional applications with minimum cost. - -Revision control -================ -Based on GIT, hosted on www.bitbucket.org. -Copy or link 'pre-commit.sh' to '.git/hooks/pre-commit' if you want to do some basic checkings (i.e. astyle code processing) - -Documentation -============= -Execute 'scons doc' - -Unit tests -========== -Execute 'scons test' - -Examples -======== -Execute 'scons examples' to generate example binaries - -Install -======= -Execute 'scons install' -(install-include-and-lib and install-example, are another aliases for selective installation) - -Uninstall -========= -Execute 'scons uninstall' +# ANNA + +Multi-purpose C++ development suite, focused on Telco resources (communications, protocols and tools). +ANNA is acronym for "Anna is not nothingness anymore", that is to say: "Anna is something to take into +account" (like a SONaTINA). + +ANNA is a complete suite of tools and resources to build proffesional applications with minimum cost. + +## Revision control + +Based on GIT, hosted on http://redmine.teslayout.com + +You could use my pre-commit specific template if you want to do some basic checkings (i.e. + astyle code processing): Execute './scripts/git/use-pre-commit.sh' + + +## Build project + +### With docker + +Architectures 'x86_64' and 'armv7l' are supported. Execute: + + > tools/build-with-docker [variant: [Release]|Debug] + +Note: database resources building is unsupported at the moment using docker. + +### Natively + +This is a CMake based building suite. +Install cmake: + + > sudo apt-get install cmake + +And then generate the makefiles from project root directory: + + > cmake . + +You could specify type of build, 'Debug' or 'Release', for example: + + > cmake -DCMAKE_BUILD_TYPE=Debug . + > cmake -DCMAKE_BUILD_TYPE=Release . + +You could avoid database resources compilation to ease the add of requirements: + + > cmake -DSKIP_DATABASE_BUILD=1 . + +## Clean project + + > make clean + +## Change the compilers + + > cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc + or + > cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang + +## Some basic ubuntu requirements + +### OpenSSL: + > sudo apt-get install libssl-dev + +### Gnome XML: + > sudo apt-get install libxml2-dev + +### OpenLDAP: + > sudo apt-get install libldap2-dev + +### Pcap: + > sudo apt-get install libpcap-dev + +### MySql: + > sudo apt-get install libmysqlclient-dev + +### Oracle: + Go to https://help.ubuntu.com/community/Oracle%20Instant%20Client and download development packages: + + For example: + + > wget https://download.oracle.com/otn_software/linux/instantclient/19600/oracle-instantclient19.6-devel-19.6.0.0.0-1.x86_64.rpm + > sudo alien -i oracle-instantclient19.6-devel-19.6.0.0.0-1.x86_64.rpm + + (probably basic & sqlplus is also needed) + + Edit CMakeLists.txt and update oracle includes, for example: + + > include_directories(/usr/include/oracle//client64/include) + +### Oracle-OpenLDAP conflict: + as usual, Oracle is doing things very bad. Move the ldap.h from oracle includes, i.e.: + + > cd /usr/include/oracle/12.1/client64 + > sudo mv ldap.h ldap.h.orig + +### Google Test Framework: + + > sudo apt-get install libgtest-dev + + Note that this package only install source files. You have to compile the + code yourself to create the necessary library files. These source files + should be located at /usr/src/gtest. Browse to this folder and use cmake + to compile the library: + + > cd /usr/src/gtest + > sudo cmake CMakeLists.txt + > sudo make + + Copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder: + > sudo cp *.a /usr/lib + +## Documentation + +Execute 'make doc' + + > cd docs/doxygen + > tree -L 1 + + . + ├── Doxyfile + ├── html + ├── latex + └── man + + +## Unit tests + +Execute 'make test' + +## Install + +To install headers, libraries, and examples, execute: + + > sudo make install + +Optionally you could specify another prefix for installation: + + > cmake -DMY_OWN_INSTALL_PREFIX=$HOME/anna-deploy + > make install + +## Uninstall + + > cat install_manifest.txt | sudo xargs rm + +## AOTS (Agents-Oriented Testing Setup) + +See INSTALL_AOTS.md +