Skip to content

Building Singular from source

mmklee edited this page Jun 19, 2013 · 8 revisions

Build the development branch of Singular as follows:

  1. as prerequisite autotools (>=2.62) and gmp (>= 3.0) are needed, furthermore we recommend to use NTL (>= 5.0) configured with NTL_GMP_LIP=on (for further details see NTL Documentation), FLINT (>=2.3) , and readline
  2. get the sources with git clone -b spielwiese git://github.com/Singular/Sources.git <directory_name>
  3. run <abs_directory_name_from_above>/autogen.sh (formerly known as for_Hans_with_love.sh) from the root directory
  4. create and switch to your temporary build directory
  5. run <abs_directory_name_from_above>/configure --prefix=<destination path> (builds release version)
  6. make (or make -jN where N is the number of the your CPU cores + 1)
  7. make -jN check (where N is as above) will build and run simple unit-tests for most units (optional but encouraged)
  8. make install
  9. developers are also encouraged to run make distcheck

Static version can be built as follows:

  • use the following configure arguments: --with-readline=static --disable-shared --enable-static --enable-p-procs-static --without-pic

Note that no dynamic modules will be built and installed!

Debug version of Singular

  • use the following configure arguments: --enable-debug --disable-optimizationflags

Test the Spielwiese Singular as follows:

  • the test-suites from Tst/ can be run, for example, as follows:
    1. cd Tst/
    2. ln -s <abs_destination path>/bin/Singular
    3. after the above symbolic-linking one can simply run ./regress.cmd something.{lst,tst}, where .lst files are just lists of tests, which are .tst files

Build the old master Singular as follows:

  1. get the sources with git clone -b trunk git://github.com/Singular2/Sources.git <directory_name>
  2. cd <directory_name_from_above>
  3. run ./configure from the root directory
  4. make install (or make -jN install, where N as above), and yes it should really be install!
  5. everything will be put to the newly created directory "$Architecture-$OS/" (e.g. x86_64-Linux, ix86-Linux etc.)