Unfortunately ABI was broken when symbols files were removed
in favour of new visibility control of exported functions.
Visibility control with -fvisibility works fine, but symbol
scripts had another feature - versioned symbols. And we lost it.
Since we can not make our symbols to be versioned with the new
approach, it's decided to return everything back.
* CMake: Restore symbol files generation
* CMake: Python is required to build shared libraries
* Autotools: Restore symbol files generation
Closes: https://github.com/erikd/libsndfile/issues/268
* Fix linking with shared library (DEF file was not used)
* Version script was not used
* Use the same version script for Autotools and CMake
* Give proper name to shared library import lib
* Public headers were not installed on static library only build
Closes: https://github.com/erikd/libsndfile/issues/249
* Use symbol file under Win32 with MinGW only
* Use unified visibility control for other platforms
* Add recommended win32-dll option to LT_INIT macro
Closes: https://github.com/erikd/libsndfile/issues/213
This allows parallel builds of different LibSndFile configurations
- results of configure_file and AutoGen are saved in CMAKE_BINARY_DIR
- the directory ${CMAKE_BINARY_DIR}/src is make a public include directory
- remove generated files in source tree prior to generation + fix install
Related: https://github.com/erikd/libsndfile/issues/71
* Remove sndfile_play_beos target, use single sndfile_play under all platforms
* Remove HAIKU variable check, found no information found about it.
Related: https://github.com/erikd/libsndfile/issues/71
It should now be possible to build libsndfile from a git checkout, at
least on Linux. No idea if it will work on other systems.
Additionally, if one builds on linux from a git checkout and then builds
a distribution tarball, it should be possible to transfer that distribution
tarball to a system without the GNU autotools and build it using CMake. This
however has not been tested.
Specifically, it can now build the shared library (without Ogg/Vorbis
or FLAC support) and the programs as well as building and running
the tests using 'make check'. This new CMake build system has a single
top level build description and on Unix, by default generates a non-
recursive Makefile (unlike the existing autotools build system).
I dedicate this commit to Peter Miller (pmiller) who died in the early
hours of 2014/07/27 after a long illness. Peter was the author of the
paper "Recursive Make Considered Harmful":
http://aegis.sourceforge.net/auug97.pdf
This paper was the inspiration for the build systems for the Linux
kernel, the Glasgow Haskell Compiler and many other projects.
Peter was also the author of a Make replacement program Cook:
http://miller.emu.id.au/pmiller/software/cook/
Peter was a great friend, a great work colleague and an extremely
skilled and knowledgeable software engineer.
Goodbye my friend. #commitforpmiller