APACHE CELIX INCUBATION - BUILDING AND INSTALLATION OVERVIEW Notes ----- * Currently Apache Celix only builds and works on Unix/Linux like systems (including MacOSX). * Apache Celix requires CMake for building, other requirements/dependencies are listed per subproject on http://incubator.apache.org/celix/subprojects.html * More information about the build system, and how to extend it, can be found at the website: http://incubator.apache.org/celix/documentation.html Quick Start ----------- # Create a build directory next to the celix source directory $ mkdir celix-build; cd celix-build $ ccmake ../celix # Enable/Disable the required sub projects (BUILD_{NAME} entries) # Optionally, enable advanced mode (t) and change CMAKE_INSTALL_PREFIX # Run Configure (might be needed multiple times) # Run Generate (this also returns to the shell) $ make # To deploy the included examples $ make deploy # Navigate to /deploy/ $ sh run.sh # To install the release (framework, headers and bundles) $ make install-release # To see a list of all available targets $ make help Background information ---------------------- Apache Celix uses CMake to generate the build files needed for compilation. deployment and installation. * CMake (http://www.cmake.org) CMake generated build files based on specific CMake files. To setup a build a console (ccmake) and GUI (cmake-gui) method is provided. With these editors include paths, installation prefix etc can be changed. CMake stores the configuration in a cache, which is used during the build. To keep the cache/build files separate from the source, a out-of-source build is preferred. To start from scratch, the build directory can be deleted and new build files can be generated. * Apache Celix Subprojects Since Apache Celix provides a modular framework, it makes sense to provide the available components as modules as well. To enable/disable these modules cmake is used. In the GUI or console there are settings named BUILD_{NAME} which can be switched on or off. On http://incubator.apache.org/celix/subprojects.html a list of all subprojects is given. * Apache Celix deployment/installation With a modular system it doesn't make sense to simply install everything to the file system. Depending on the needs different version/modules can be needed. To cater for this, Celix provides deployment support which takes care of copying the required bundles to a named target. A basic run script is created as well. Installing the framework (and its dependencies) might make sense, every target needs the framework. To install only the framework a dedicated target is available: make install-release.