/*! \page main_page Developer and Reference Manual Somewhat older kernel documentation can be found at Please also read - \subpage bs_page and - \ref styleguide Separate top-level packages are as follows (also see the diagram below): - \subpage omalloc_page - \subpage resources_page - \subpage factory_page - \subpage libpolys_page - \subpage libpolys_misc_page - \subpage libpolys_reporter_page - \subpage libpolys_coeffs_page - \subpage libpolys_polys_page - \subpage kernel_page - \subpage kernel_numeric_page - \subpage kernel_combinatorics_page - \subpage kernel_GBEngine_page - \subpage kernel_groebner_walk_page - \subpage kernel_fglm_page - \subpage kernel_maps_page - \subpage kernel_spectrum_page - \subpage kernel_linear_algebra_page - \subpage kernel_oswrapper_page - \subpage singular_page - \subpage dynmodules_page Here is a short description of the Singular restructurization: Dependencies between Singular packages are as follows: \dotfile Includes.dot Package dependency diagram */ /*! \page bs_page Singular Build System (autotools) We use autotools. Here is a good autotools (mythbuster) manual: https://www.flameeyes.eu/autotools-mythbuster/ Singular consists of several packages (that is, libraries with own configure scripts): - \subpage omalloc_page - \subpage resources_page - \subpage factory_page - \subpage libpolys_page - \subpage singular_page Moreover some of these (top-level) libraries combine smaller ones into itself. - \subpage libpolys_page - \subpage libpolys_misc_page - \subpage libpolys_reporter_page - \subpage libpolys_coeffs_page - \subpage libpolys_polys_page - \subpage singular_page - \subpage kernel_page - \subpage dynmodules_page 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 builds system (automatically by cofigure scripts, manually in compile time by targets in makefiles) but have to be treated specially. 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 \ref styleguide */