MagiCBuild is a build system that provides high-level functionality
for compiling a software product from source code. It is based on
GNU Make and consists of a framework of makefiles.
The most important feature of MagiCBuild is that all output and
intermediate files are written to an output directory tree that is
totally separate from source code tree. This helps keep the source
tree completely clean from trash such as object files and
executables. After compilation, the executable binaries, libraries,
headers, shared files, and documentation can be "installed" from the
output directory to actual installation directory hierarchy.
MagiCBuild also contains a configuration tool, "configure", that can
be used to automatically detect relevant features of the platform
such as availability and version numbers of required software
packages, output and installation directories, and machine
architecture. The configuration tool is a shell script, which makes
extending its functionality very easy. The basic usage of the
configuration tool is compatible with GNU Autoconf, making its use
easy for open source software developers.
An example of using the configuration and build system is provided
in the test subdirectory of the MagiCBuild distribution package.
- Compiling C++ applications
- Compilation output tree separate from source tree
- Building reference documentation with Doxygen
- Installing and uninstalling
- Cleaning up the output directory
- Creation of source code distribution packages
- Configuration tool with GNU Autoconf compatibility
For a more complete list of limitations, see the chapter Known bugs and limitations in User's Guide.
- No installation to system directories
- Only GNU/Linux platform currently supported
- Only C++ compilation currently supported with gcc
MagiCServer++ has the following system requirements:
- GNU/Linux operating system
- GNU Make 3.79.1 or newer
- Doxygen (optional)
MagiCBuild is licensed under the GNU Lesser General Public License
(LGPL). The GNU Lesser General Public License is given in file
This documentation is licensed under the GNU Free Documentation
License, as presented in the Chapter 7.
Last modified: Sat Nov 1 12:53:25 EET 2003