Building Ears Wide Open

Operating system specific instructions for creating a build from scratch.

  • On GNU/Linux
  • On MacOs
  • On Windows
  • On *BSD

Overview for setting up a build environment

This section is only to list main steps you have to follow on all platforms. This part is intended for anyone unfamiliar with the process of compiling C softwares from sources.

  • install dependencies (git, GCC),
  • checkout Ears Wide Open’s source code from version control,
  • use Make to compile the source code into an executable.

Todo

  • Create a /lib folder to add the necessary libraries in static and compile against these this would maybe avoid to download or install too many things for the person willing to contribute and avoid as well version issues (except the compiler of course)

Optionnaly you can:

  • install a text editor or IDE

Build the system

Ears Wide Open uses the autotools chain to build its system. The first time you want to build the system you will need to run three main commands from the root of the project:

$ ./autogen.sh $ ./configure $ make

At the moment the official release build the software against GCC 5.3.0.

It’ possible to run the test suite using the following command:

$ make check

In order to work, the framework cmocka needs to be installed on the host machine.

Todo

  • Add to the main Makefile a possibility to compile the documentation

Library versions

Here you’ll find a list of official libraries used in the project. We’ll try to use at maximum official supported version (i.e those used by official build environments).

Library Version
Portaudio V19

Debugging

If you want to use several debugging tools such as GDB or Valgrind, you can use the following command with libtool

$ libtool –mode=execute gdb src/ewo
or
$ libtool –mode=execute valgrind src/ewo

It’s eventually possible to use Valgrind (or GDB?) on the test suite. The command would be then:

$ make check TESTS_ENVIRONMENT=valgrind

It’s a bit tedious to use this command all the time and have some drawbacks but there is a `possible workaround`_.