Merge pull request #73 from ctrix/master

fix compile warnings
CMake support as an alternative to AutoTools

This commit adds support anddocumentation for a CMake build.

Everything supported by the autotools build should be present except the following differences:

- The test suite is not present

- The DEBUG build adds more checks (and more warnings at build time that will be addressed eventually)

- Removes some header checks that seems not to be used in the autotools (like emmintrin.h, tmmintrin.h ...)

- __STDC_LIMIT_MACROS is not tested

- enable_asm flag is supported but there is no C+asm build test

- for 128-bit arithmetic is supported and can be enabled but there is no build test support

- clock_gettime, fegetenv, SecureZeroMemory tests have been removed as those functions are used regardless their presence in the code.

I hope this will work for most people out there. CMake could even be used to build on Windows platforms.

Feedbacks are welcome.

Besides, i have noticed that the latest HEAD built with autotools has a version of 0.4.2 but
the soversion is 4.3. Is it correct ? (the cmake build system uses SODIUM_LIBRARY_VERSION_MAJOR
and SODIUM_LIBRARY_VERSION_MINOR to set the soversion file extension)
Fix compilation warnings (GCC 4.7)

This commit does the follwing:
- fixes a bunch of "const" declaration missing
- set static a declaration inside a .h file (partial_precompute_tworounds) to prevent missing declaration warnings
- add the declaration of crypto_onetimeauth_poly1305_implementation_name which was missing (remove the declaration and set static if it should not be exposed)
- modifies the definition of crypto_stream_aes256estream_afternm and crypto_stream_aes256estream_xor_afternm to fix a couple of "unconstified" casts which i couldn't fix otherwise
- comments the stuff in compat.c which seems to be unused and, for that reason, is missing functiond declarations.
Adding tests to the build system. Use 'make test'
Merge branch 'master' into cmake-build
Rename crypto_onetimeauth_poly1305_ref_implementation_name() prototype.
aes256-hongjun: move partial_precompute_tworounds() out of aes256.h
Add explicit "const" when casting pointers. No binary changes.
By Massimo Cetra.
Fix a bug that prevented some optimizatins to kick in. Tests are all passed slightly faster than with autotools
Reindent aes256.h, remove commented code
Oops, not all architectures are Intel.
aes256estream: don't assume that unaligned words can be read (for the input)
Quick quirk to support unaligned input for aes256estream.
Add newlines to .travis.yml
Ask Travis to compile with g++ as well
iPhone / Android targets: issue an explicit `make clean` every time.
Often useful to automatically wipe forgotten leftovers from a different target.
Merging master
Merging master
Merge branch 'cmake-build'