Skip to content

Modernize build system

Sebastian Ohlmann requested to merge new_automake_files into develop

Description

Modernize build system by removing the recursive automake files in src/. They are replaced by a single automake file that includes all sources and avoids the need to link intermediate libraries. Fortran module dependencies are handled by including fdep (written by L. Hüdepohl, MPCDF; MIT license), which computes them on the fly. New source files can now simply be added to the list of source files.

This enables make to have the full dependency tree available. Thus, parallel builds can exploit parallelism as much as possible. Also, changes to a source file do only affect the files directly dependent on this module. Tests have shown up to 20% faster builds.

Some smaller improvements have been included as well: the perl preprocessing script is now used as a pipeline, which is much faster than reading and writing to files; the fortran preprocessing and compilation is now equipped with silent rules (can be enabled either by ./configure --enable-silent-rules or by make V=1).

Moreover, all binaries are now built in src/; this behavior differs from before, when the binaries were built in src/main or src/utils.

News snippet

Modernize build system by replacing the recursive automake files in src by a single automake file

Checklist

Edited by Sebastian Ohlmann

Merge request reports