Go to file
Erik de Castro Lopo cb0abd8573 CMake/build.cmake : Fix for CMake 3.0.2.
Previous versions of CMake allowed targets names like "tests/win32_test"
but CMake 3.0.2 doesn't. The corresponding target name for the new CMake
is "win32_test", but putting the resulting executable in the tests/
directory requires something like:

    add_executable (win32_test tests/win32_test.c)
    set_target_properties (win32_test
                           PROPERTIES RUNTIME_OUTPUT_DIRECTORY tests)
2014-11-02 13:23:15 -08:00
CMake CMake/build.cmake : Fix for CMake 3.0.2. 2014-11-02 13:23:15 -08:00
doc Fix some typos. 2014-10-27 06:17:57 +11:00
examples programs/*.c : Clean up and normailize printing of version strings. 2014-06-23 17:17:51 +10:00
M4 M4/clang.m4 : Minor improvements. 2013-11-22 18:18:12 +11:00
man man/Makefile.am : Hook up sndfile-salvage.1. 2014-07-02 06:42:32 +10:00
Octave Do not use old variable INCLUDES and use modern AM_INIT_AUTOMAKE invocation. 2013-04-07 20:05:08 +10:00
programs Fix some typos. 2014-10-27 06:17:57 +11:00
regtest Add *.exe CLEANFILES in Makefile.am. 2013-06-23 21:33:37 +10:00
Scripts Scripts/git-pre-commit-hook : Tweaks. 2014-04-19 21:17:54 +10:00
src src/sndfile.c : Return an error if the file path is too long. 2014-10-29 20:56:12 -07:00
tests src/sndfile.c : Fix sfinfo.frames file on SFM_WRITE. 2014-10-17 21:25:36 +11:00
Win32 Remove cruft from Win32 dir. 2008-10-08 21:19:23 +11:00
.gitignore Update .gitignore for CMake artifacts. 2014-07-31 12:07:45 +10:00
AUTHORS AUTHORS : Add contributors. 2014-09-02 06:17:37 +10:00
autogen.sh Minor CMake files. 2014-10-28 21:00:08 +11:00
ChangeLog Fix some typos. 2014-10-27 06:17:57 +11:00
CMakeLists.txt Minor CMake files. 2014-10-28 21:00:08 +11:00
configure.ac configure.ac: Fix detection of MinGW 2014-09-02 06:16:16 +10:00
COPYING First snapshot of the public project. 2007-05-14 19:55:24 +10:00
echo-install-dirs.in Use pkgconfigdir variable as it is not sure it will be libdir/pkgconfig. 2013-04-28 21:35:08 +10:00
INSTALL First snapshot of the public project. 2007-05-14 19:55:24 +10:00
libsndfile.spec.in libsndfile.spec.in : Change field name 'URL' to 'Url'. 2011-12-19 20:22:34 +11:00
make_lite.py Clean out cruft. 2008-04-05 20:13:47 +11:00
Makefile.am Scripts/ : Add to EXTRA_DIST. 2013-09-08 13:06:37 +10:00
NEWS Updates for 1.0.25. 2011-07-13 21:21:13 +10:00
README src/ALAC/* : Big code dump of code for Apple's ALAC file format. 2012-03-03 23:17:05 +11:00
README.md README.md : More tweaks. 2012-01-20 19:50:57 +11:00
sndfile.pc.in sndfile.pc.in : Add a Libs.private entry to assist with static linking. 2009-11-29 10:40:13 +11:00

libsndfile

libsndfile is a C library for reading and writing files containing sampled audio data.

Hacking

The canonical source code repository for libsndfile is at https://github.com/erikd/libsndfile/.

You can grab the source code using:

$ git clone git://github.com/erikd/libsndfile.git

Building on Linux, OSX and Windows (Using GNU GCC) will require a number of GNU and other Free and Open Source Software tools including:

If you are on Linux, its probably best to install these via your Linux distribution's package manager.

If you want to compile libsndfile with support for formats like FLAC and Ogg/Vorbis you will also need to install the following optional libraries:

Support for these extra libraries is an all or nothing affair. Unless all of them are installed none of them will be supported.

$ ./autogen.sh

Running autogen.sh also installs a git pre-commit hook. The pre-commit hook is run each time a user tries to commit and checks code about to be committed against coding guidelines.

Nest step is to run configure, with the following configure options being recommended for anyone contemplating sending libsndfile patches:

$ ./configure --enable-gcc-werror

Finally libsndfile can be built and tested:

$ make
$ make check

Submitting Patches.

  • Patches should pass all pre-commit hook tests.
  • Patches should always be submitted via a either Github "pull request" or a via emailed patches created using "git format-patch".
  • Patches for new features should include tests and documentation.
  • Patches to fix bugs should either pass all tests, or modify the tests in some sane way.
  • When a new feature is added for a particular file format and that feature makes sense for other formats, then it should also be implemented for one or two of the other formats.