My Project
|
Short introduction to the Singular build system.
We use autotools. Here is a good autotools (mythbuster) manual: https://www.flameeyes.eu/autotools-mythbuster/ Singular consists of several packages, which are (mostly standalone) libraries with their own configuration scripts:
Moreover some of the top-level libraries combine smaller ones into itself:
One can easily exted any existing library by adding new sources to the corresponding _SOURCE specification (and headers to _HEADER). Sources or headers may be generated by the build system (automatically by configure scripts, manually in compile time by targets in makefiles) but have to be treated specially.
Short HOWTO:
New sub-libraries may be added to the existing directories (to the corresponding Makefile.am's) or to their own (new) directory with a new Makefile.am, which has to be treated by the corresponding configure script. If that new directory has to be treated by recursive make - it has to be listed in in a SUBDIRS section by some higher-level Makefile.am (which is treated)
It is strongly recommended to add separate unit-tests (TESTS) for any package or library.
Please test the build system with make distcheck
before submitting in case of a build system chenges.
See also Style Guide for the Further Development of SINGULAR in C / C++.