gegel/onionphone — pull request #27 by pfactum (2014-10-22 18:51:06+00:00)
Title: make-improved: merge improvements from staging tree

This pull request introduces new build system structure as well as massive code improvements.

What have been done:

* source code tree has been refined, introducing "common" folder for common headers and shared crypto code, "docs" folder for documentation, "libaddkey" folder for addkey code, "libcodecs" folder for audiocodecs code, "libdesktop" folder for desktop application source code and "web" folder for web-interface;
* dead files have been removed from source code tree;
* static analyzers (cppcheck and clang) have been used against amr, bv, celp, codec2, g723, g729, gsm, gsmer, gsmhr, ilbc and lpc codecs to cleanup massive compiler warning as well as fixing memory leaks, NULL pointers dereferencing etc;
* also coding style has been unified (for now only for amr, bv, celp, codec2, g723, g729, gsm, gsmer, gsmhr, ilbc and lpc codecs);
* makefiles have been unified introducing ability to cross-compile and change compiler options easily.

To compile Linux executables, just type "make".

To compile Windows executables under Linux using mingw type the following command:

SYSTEMROOT="set" CC=i686-w64-mingw32-cc LD=i686-w64-mingw32-ld make

(CC and LD options may vary depending on your distribution and its environment)

New build system and source code tree has been tested against gcc/mingw 4.9.1 and clang 3.5.0 (both production and debug release, both 32 and 64 bits).

64-bits builds are not stable yet.

Further work: 1) finish static-analyzing and code style fixing for remaining codecs; 2) do static analyze against main application code; 3) stabilize 64-bits build.