Akonadi's build system uses cmake.

So to compile Akonadi first create a build dir

  mkdir build
  cd build

then run cmake:

  cmake ..

(a typical cmake option that is often used is: -DCMAKE_INSTALL_PREFIX=<prefix>)

cmake then presents a configuration summary. At this point you may
want to install missing dependancies (if you do, remove the CMakeCache.txt)
and run cmake again.

Finally build Akonadi:

  make

And install it (in most cases root privileges are required):

  make install

That's all :)

=== Build Options ===

The following options are available when running CMake:

* AKONADI_BUILD_TESTS (Default: TRUE): Build the Akonadi unit tests
* AKONADI_BUILD_QSQLITE (Default: TRUE): Build the SQLite backend
* AKONADI_USE_STRIGI_SEARCH (Default: FALSE): Only useful for certain cases (eg: WINCE builds), don't use it
* INSTALL_QSQLITE_IN_QT_PREFIX (Default: FALSE): Useful for distributions.
  Once enabled, the qsqlite3 backend will be installed in ${QT_PLUGINS_DIR}/sqldrivers
* STATIC_LIBRARY (Default: FALSE): Build the Akonadi server libraries statically. Only useful for certain cases (eg: WINCE builds).
* DATABASE_BACKEND (Default: MYSQL, available: MYSQL, POSTGRES, SQLITE): Define which database driver to use by default.
  MYSQL is preferred, SQLITE should be avoided.

=== Build Requirements ===

Required:

* Boost (http://www.boost.org)
* CMake (http://www.cmake.org) >= 2.8.8
* Qt4 >= 4.6.0 (http://qt.nokia.com/downloads)
* Shared-mime-info >= 0.20 (http://freedesktop.org/wiki/Software/shared-mime-info)
* Soprano (http://soprano.sourceforge.net)
* Xsltproc (http://xmlsoft.org/XSLT/downloads.html)

Optional:

* Mysqld (http://www.mysql.com) - Optional at build time. You can pass -DMYSQLD_EXECUTABLE=/path/to/mysqld when running CMake instead
* SQlite >= 3.6.23 (http://www.sqlite.org) - Needed if you want to build the Sqlite backend
- Postgresql (http://www.postgres.org) - Optional at build time. You can pass -DPOSTGRES_PATH=/path/to/pg_ctl when running CMake instead


=== Runtime Requirements ===

* SQlite if you plan to use the SQLite backend (NOT RECOMMENDED for desktop)
* a MySQL server (or compatible replacements such as MariaDB) if you plan to use the Mysql backend
* a Postgresql server if you plan to use the Postgres backend
