source: git/main.dox @ 538e06

fieker-DuValspielwiese
Last change on this file since 538e06 was d36c18, checked in by Hans Schoenemann <hannes@…>, 4 years ago
http://www.singular.uni-kl.de -> https
  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[75f460]1/*!
[62a54b]2\page main_page Introduction to Singular kernel development
[dcf46c]3
[62a54b]4\brief Introductory pages for new kernel development
[dcf46c]5
[e3a054]6- \subpage build_sources_page "Building Singular from Sources",
7- \subpage development_model_page "New git-supported Development Model",
8- \subpage howto_contribute_page "HowTo CONTRIBUTE to Singular development",
[62a54b]9- \subpage styleguide "C/C++ programming style guide",
10- \subpage bs_page "Singular build system",
11- \subpage changes_in_sw_page "Significant changes in Singular 4",
[9e5c36]12- Short introduction to general concepts (types, paths, etc.)<br/>
[d36c18]13  <https://www.singular.uni-kl.de/Manual/intro_sing.pdf>,
[62a54b]14- Short description of the Singular restructurization: <br/>
[d36c18]15  <https://www.singular.uni-kl.de/gap-meeting-2012/SW.Aug.12.motsak.2.pdf> and
[75f460]16- Current internal structure and dependencies can be seen at \subpage deps_page.
[dcf46c]17  Top-level packages are:
[e3a054]18  - \subpage omalloc_page "Singular Memory Manager",
19  - \subpage resources_page "Resource Handling Helpers",
20  - \subpage factory_page "Factorization library",
21  - \subpage libpolys_page "Singular most basic data structures",
22  - \subpage kernel_page "Mathematical Algorithms",
23  - \subpage singular_page "Singular Interpreter and related".
24
[62a54b]25\Note Singlar relies on some third-party \subpage external_packages_page "Packages".
26
27\Note In case of any uncovered topics or unanswered questions please report
28them to us.
[dcf46c]29*/
[cc86dd0]30
[dcf46c]31/*!
32\page deps_page Dependencies between Singular packages
33
[62a54b]34\brief Current Singular packages and sub-packages with expected dependencies between them
35
[75f460]36- \ref omalloc_page
37- \ref resources_page
38- \ref factory_page
39- \ref libpolys_page
[dcf46c]40  - \ref libpolys_misc_page
41  - \ref libpolys_reporter_page
42  - \ref libpolys_coeffs_page
43  - \ref libpolys_polys_page
[75f460]44- \ref kernel_page
[dcf46c]45  - \ref kernel_numeric_page
46  - \ref kernel_combinatorics_page
47  - \ref kernel_GBEngine_page
48  - \ref kernel_groebner_walk_page
49  - \ref kernel_fglm_page
50  - \ref kernel_maps_page
51  - \ref kernel_spectrum_page
52  - \ref kernel_linear_algebra_page
53  - \ref kernel_oswrapper_page
54- \ref singular_page
55  - \ref dynmodules_page
56
57
58Dependencies between Singular packages (and sub-grouppings) are shown as arrows on the following diagramm:
59\dotfile Includes.dot Package dependency diagram
[9b0e1a]60*/
[7483c72]61
62
63/*!
[62a54b]64\page bs_page Singular Build System
65
[75f460]66\brief Short introduction to the Singular build system
[7483c72]67
[75f460]68We use autotools.
[62a54b]69Here is a good autotools (mythbuster) manual:
70<https://www.flameeyes.eu/autotools-mythbuster/>
[75f460]71Singular consists of several packages,
[62a54b]72which are (mostly standalone) libraries with their own configuration scripts:
[7483c72]73
[75f460]74- \ref omalloc_page
[dcf46c]75- \ref resources_page
[75f460]76- \ref factory_page
77- \ref libpolys_page
[dcf46c]78- \ref singular_page
[7483c72]79
[62a54b]80Moreover some of the top-level libraries combine smaller ones into
[75f460]81itself:
82- \ref libpolys_page
[dcf46c]83  - \ref libpolys_misc_page
84  - \ref libpolys_reporter_page
85  - \ref libpolys_coeffs_page
86  - \ref libpolys_polys_page
87- \ref singular_page
[75f460]88  - \ref kernel_page
[dcf46c]89  - \ref dynmodules_page
[7483c72]90
91
92One can easily exted any existing library by adding new sources to the
[75f460]93corresponding _SOURCE specification (and headers to _HEADER).
[9e5c36]94Sources or headers may be generated by the build system
95(automatically by configure scripts, manually in compile time by
[7483c72]96targets in makefiles) but have to be treated specially.
97
[75f460]98Short HOWTO:
[e3a054]99- \subpage adding_kernel_package "Adding a sub-package to /kernel/"
100
[7483c72]101
102New sub-libraries may be added to the existing directories (to the
[75f460]103corresponding Makefile.am's) or to their own (new) directory
[7483c72]104with a new Makefile.am, which has to be treated by the corresponding
[75f460]105configure script. If that new directory has to be treated by
[7483c72]106recursive make  - it has to be listed in in a SUBDIRS section
107by some higher-level Makefile.am (which is treated)
108
109
110It is strongly recommended to add separate unit-tests (TESTS) for any
111package or library.
112
113Please test the build system with `make distcheck` before submitting
114in case of a build system chenges.
115
[62a54b]116See also \ref styleguide.
[7483c72]117*/
[efec0e]118
119/*!
120\dir omalloc
[75f460]121\ref omalloc_page
[efec0e]122*/
123/*!
124\dir resources
125\ref resources_page
[75f460]126*/
127/*!
[efec0e]128\dir libpolys
129\ref libpolys_page
130*/
[75f460]131/*!
[efec0e]132\dir kernel
133\ref kernel_page
134*/
[75f460]135/*!
[efec0e]136\dir Singular
137\ref singular_page
138*/
[62a54b]139
[efec0e]140/*!
[ea1479]141\dir ./factory
[efec0e]142\ref factory_page
143*/
144/*!
145\dir templates
146Templates for new sources and headers
147*/
148
[75f460]149
[e3a054]150/*!
[62a54b]151\page copying_page Singular copying agreement
152
153\brief COPYING
[ea1479]154
[e3a054]155\verbinclude COPYING
156*/
Note: See TracBrowser for help on using the repository browser.