This page is divided into the following sections:
TNG ships log4cxx and APR (Apache Portable Runtime project) which require
Although cmake is heavily used to create a makefile environment the main makefile in the root directory must never be overwritten.
You can get a help screen using
make help
The idea is to compile external "third-party" libraries and own sources in separate environments.
The external libs are located in the path ./Externals and can be compiled and cleaned by
make externals make clean_externals
The TNG sources are distinguished into modules (separated libraries) and drivers (executables). Each of these parts provides its own testing environment and CMake build tree/Makefiles. But it is possible to compile all in one build tree using the Makefile in the root directory:
make
make clean
make distclean
With CMake you can compile using parallel compiler processes. If any errors occur it is a matter of wrong dependencies in your CMakelists.txt files. At the moment in order to start XX processes, you have to type:
make -jXX
In order to compile this documentation, type
make cmake doc
A module must be added to the module
directory with the following directory structure:
/modules/name
is the module main directory/modules/name/CMakeLists
.txt describes the cmake instructions for this module/modules/name/name
should contain all C++, C, Fortran source files/modules/name/doc/src/Doxyfile
.in is the template for Doxyfile generated by cmake and used for compiling the API documentation. It usually does not differ from /doc/src/Doxyfile
.in/modules/name/doc/src/mainpage
.dox should at least contain a link to the parent documentation/modules/name/doc/src/
should contain further input files used by doxygen
Any module must be announced to configuration files in the upper levels. In /modules/CMakeLists
.txt one has to add the new module to the list of modules and one has to set its dependencies, but only the dependencies onto other modules. Dependencies on external libraries must be defined in the own CMakeLists.txt
.
The usual CMakeLists.txt
/cmake_subroutines
),
A driver must be added to the drivers
directory with the following directory structure:
/drivers/name
is the module main directory/drivers/name/CMakeLists
.txt describes the cmake instructions for this module/drivers/name/name
should contain all C++, C, Fortran source files/drivers/name/doc/src/Doxyfile
.in is the template for Doxyfile generated by cmake and used for compiling the API documentation. It usually does not differ from /doc/src/Doxyfile
.in/drivers/name/doc/src/mainpage
.dox should at least contain a link to the parent documentation/drivers/name/doc/src/
should contain further input files used by doxygen
Any driver must be announced to configuration files in the upper levels. In /drivers/CMakeLists
.txt one has to add the new driver to the list of drivers and one has to set its dependencies, but only the dependencies onto other modules. Dependencies on external libraries must be defined in the own CMakeLists.txt
.
The usual CMakeLists.txt
/cmake_subroutines
),