# How to build from source
## Requirements
### Common requirements
In order to build galarm, you need to install several components:
- A C compiler (galarm was tested with GCC 4)
- [CMake](http://www.cmake.org) >= 2.4.6.
- [GTK+](http://www.gtk.org) >= 2.12
- [GLIB2](http://www.gtk.org) >= 2.14
- [libnotify](http://www.galago-project.org) >= 0.3.2
### Optional requirements
- [libcanberra](http://0pointer.de/lennart/projects/libcanberra/) >= 0.10
libcanberra is needed for audio events.
Note that these version numbers are version we know works correctly. If you
build and run galarm successfully with an older version, please let us know.
## Building
First, you need to configure the compilation, using CMake. Go inside the
`build` dir. Create it if it doesn't exist.
GNU/Linux and MacOS X:
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
### CMake standard options
Here is a list of the most interesting options provided out of the box by CMake.
- CMAKE_BUILD_TYPE: The type of build (can be Debug Release MinSizeRel RelWithDebInfo)
- CMAKE_INSTALL_PREFIX: The prefix to use when running make install (Default to
/usr/local on GNU/Linux and MacOS X)
- CMAKE_C_COMPILER: The path to the C compiler
- CMAKE_CXX_COMPILER: The path to the C++ compiler
### Browsing/editing CMake options
In addition to passing options on the command line, you can browse and edit
CMake options using `cmakesetup` (Windows) or `ccmake` (GNU/Linux and MacOS X).
- Go to the build dir
- On Windows: run `cmakesetup`
- On GNU/Linux and MacOS X: run `ccmake ..`
## Installing
Befor installing you can run the tests if everything is working:
make test
If you want to install galarm after compilation run:
make install
The binary is installed as `galarm` and a symlink called `ga` links to it.
The path to this binary is usually /usr/bin/galarm or /usr/local/bin/galarm
depending on your install prefix.
## Running
The galarm binary can be found in the `build/src` directory.
## About this document
This document is written using [Markdown][] syntax, making it possible to
provide usable information in both plain text and HTML format. Whenever
modifying this document please use [Markdown][] syntax.
[markdown]: http://www.daringfireball.net/projects/markdown