forked from Singular/Singular
-
Notifications
You must be signed in to change notification settings - Fork 0
Building Singular from source
Oleksandr Motsak edited this page Jan 9, 2014
·
21 revisions
These are the generic installation instructions for experts, see
[Step by Step Installation Instructions for Singular](Step by Step Installation Instructions for Singular)
for step by step instructions.
- as prerequisite autotools (>=2.62), gmp (>= 4.2), are needed, furthermore we recommend to use NTL (>= 5.0) configured with NTL_GMP_LIP=on (for further details see NTL Documentation), FLINT (>=2.4) which depends on MPFR (>=3.0.0) , and readline
- get the sources with
git clone -b spielwiese git://github.com/Singular/Sources.git <directory_name> - run
<abs_directory_name_from_above>/autogen.sh(formerly known asfor_Hans_with_love.sh) from the root directory - create and switch to your temporary build directory. Do not build Singular in the source folder itself!
- run
<abs_directory_name_from_above>/configure --prefix=<destination path>(builds release version) -
make(ormake -jNwhere N is the number of the your CPU cores + 1) -
make -jN check(where N is as above) will build and run simple unit-tests for most units (optional but encouraged) make install- developers are also encouraged to run
make distcheck
- 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!
- use the following configure arguments:
--enable-debug --disable-optimizationflags
- the test-suites from Tst/ can be run, for example, as follows:
cd Tst/ln -s <abs_destination path>/bin/Singular- 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
- get the sources with
git clone -b trunk git://github.com/Singular2/Sources.git <directory_name> cd <directory_name_from_above>- run
./configurefrom the root directory -
make install(ormake -jN install, where N as above), and yes it should really beinstall! - everything will be put to the newly created directory "$Architecture-$OS/" (e.g. x86_64-Linux, ix86-Linux etc.)
- make sure that
gcovis present and install a recent lcov (>= 1.10) - configure and build
Spielwiese(IN SOURCE TREE!) together with the following FLAGS:
LDFLAGS+="-lgcov"
CFLAGS+="-fprofile-arcs -ftest-coverage -g"
CXXFLAGS+="-fprofile-arcs -ftest-coverage -g"
- if necessary clean-up lcov-state-files with:
lcov -z -d . - run tests (e.g.
Tst/regress.cmd -s Singular/Singular Tst/Short.lst) - collect coverage data into
coverage.covwithlcov -c -d . -o coverage.cov - optionally remove unnecessary directories:
lcov -r coverage.cov '/usr/include/*' > coverage2.cov - generate HTML overview pages under
GenHtmlDir/withgenhtml -o GenHtmlDir coverage.cov
For instance, a recent test coverage for Singular (_static 64-bit build with optimization, gfanlib, pyobjects, countedref using NTL, MPIR (as GMP), FLINT, readline, git id: e86e21bd*, on Linux, with GCC 4.8.2_20131219) on our testsuite (with ~2420 tests) and unittests is: