Table of Contents
- Supported Operating Systems
- Supported Compilers
- Additional Libraries
- Compiling the source code
- Running the test suite
- Alternate installation methods
- Copyright and licensing
- Reporting bugs
1.1 Supported Operating Systems
Currently, LibSylph can be built for most Unix-systems, including, but not
limited to, Linux, FreeBSD, Cygwin, Mac OS X, and a few others. In order for
the binary relocation function to work (i.e.
thisapp->XXX() ), support for
/proc/self/exe is required. If the operating system does not have a
/proc/self/exe, (e.g OS X) other methods are used to make binary relocation
LibSylph is known to work on OS X ≥ 10.6 and most Linux distributions. Other platforms are not officially supported, but should work, possible with minimal adaptations.
Some support for Microsoft Windows is included as well. However, no compiler is currently able to build both LibSylph and all of its dependencies, which is important because Windows does not have a standardized C++ ABI.
Preliminary tests show that LibSylph, in its current form, will build with some modifications on Windows but the resulting binaries are unusable. Also, many LibSylph features are either not ported yet or Microsoft's POSIX layer does not implement the required functions correctly. Therefore there is no official support for LibSylph on Windows yet.
1.2 Supported Compilers
LibSylph requires that certain C++11 constructs are available in the compiler, and, as of writing, only very few compilers support these. While there is some support for building LibSylph with only C++03 available, this will disable most of LibSylph's features.
Compilers which are currently known to support these features are GCC ≥ 4.5.3 and Clang ≥ 3.1 with libc++.
2. Build Instructions
2.1 Compiling the source code
LibSylph depends on boehm-gc, icu, and gettext. You need to have these programs installed first. Please consult your operating system vendor's manuals or look at the Installation page on our wiki.
To build the source code, issue the following commands:
cmake . make
Please note you might need to specify the path to a C++11 compiler
explicitly by using
To enable debugging symbols and other useful debug output, such
as debug logging, assertions, and line number information,
-DCMAKE_BUILD_TYPE=Debug -DSYLPH_DEBUG=1 to cmake. Read
the CMake documentation for more information about additional
parameters that control the build.
To install LibSylph, issue the following command as root (or your operating systems respective administrator account):
By default, LibSylph will install in
/usr/local. If this is not what you
want, you need to pass the
-DCMAKE_INSTALL_PREFIX=/your/prefix to cmake
before the build.
2.3 Running the test suite
To run the test suite, issue the following command in the build directory:
This will build and run the entire test suite, as well as building the gtest (Google Test) framework, which is included with the source code.
2.4 Alternate installation methods
2.4.1 Mac OS X
You can install LibSylph on OS X through our Homebrew tap. This will automate the build process for you, installing all required dependencies along the way. Note: this will build and install GCC as well, as there are still a few problems with using Clang. However, the resulting binaries can be used for linking by Clang.
Add our tap:
brew tap SynthiNet/synthinet
Install LibSylph (latest Git revision):
brew install --use-gcc --HEAD libsylph
3. Contact info
3.1 Copyright and licensing
Please see the files 'AUTHORS' and 'COPYING' to see the names of the original authors and the license of the code, respectively.
3.2 Reporting bugs
Please report bugs to the email@example.com mailing list. You need to register in order to be able to send e-mails to this list. See http://synthi.net/-lsdevel for more info on how to register. When submitting bug reports, please state the version of LibSylph used. If you aren't using the latest version from git, first look if your bug is already fixed. If it isn't, include a full description of what is going wrong, and any possible error messages.
Things you should mention:
- Your operating system, including version. For Linux users, state your kernel version, architecture, and distro.
- The version of your compiler.
- The version of any other tools you are using important to the problem (including LibSylph!).
- What you were trying to do, what actually happened, and how this is not what you expected. Perhaps it's a feature, and not a bug? ;)
- If you can reproduce the bug, and so, under what conditions.
- If the bug is specifically tied to a certain operating system, or if you tried reproducing the bug on another operating system.
- A minimal test case showcasing the bug. In case this is not possible, step-by-step instructions on how to reproduce the bug. The test case should not contain anything more than necessary, and shouldn't link with any other libraries than the standard libraries and LibSylph. If a certain library is essential to demonstrate the problem, please make sure it's readily available.
- Any error messages, including backtraces from a debugger in case of program-terminating bugs (e.g. overflows, exceptions, ...)
- If you have one, a patch to fix the bug :)