In addition to the generic installation instructions given in the INSTALL file, note the following. You can see all options to configure by typing ./configure --help. 1. DEPENDENCIES (a) Both NTL and PARI are required. If they have not been installed in a place where the system will find them automatically (such as /usr/local) then you will need to specify where they are when you configure, like this: ./configure --with-pari= --with-ntl= If you have Sage installed in SAGE_ROOT then you can use $SAGE_ROOT/local for both of these. Note that when you specify these locations, no check is done that a usable version exists in that place: it will be assumed that /include and /lib contain appropriate include files and libraries, and the build will fail if not. (b) FLINT is optional (from eclib-2013-01-01) and only used for one part of sparse matrix reduction, which is used in the modular symbol code but not mwrank or other elliptic curve programs. If a suitable FLINT version is found (which must be at least version 2.3, to contain the nmod_mat module) it will be used. If in addition you have the optional FLINT module hmod_mat (which does modular matrix operations using 32-bit data types) this can be activated by setting the environment valriable FLINT_LEVEL to 2 before running configure, or adding "FLINT_LEVEL=2" to the end of the configure invocation. Both of these have the effect of adding the compiler flag "-DFLINT_LEVEL=2$. The advantage of this is that the modular symbol code will require less RAM to run. (c) Boost is optional (from eclib-2013-09-00) and provides parallel capabilities in the form_finder class. Configure with --with-boost specifying location of a fully built version of Boost, i.e. not just the header files. After initial configure, if an error occurs, run autoreconf and configure again. Autotools will initiate the macros in m4/ directory and look for Boost.asio, Boost.thread, and Boost.system. Refer ti ./configure --help for more configuration options. 2. By default a lot of programs, including test programs, are built and will be installed by "make install". But if you configure with --disable-allprogs then the only program built will be mwrank. (The whole eclib library will always be built). 3. By default most of the real and complex floating point arithmetic is done using NTL's RR class and a complex class CC built on that. But if you configure with --disable-mpfp ("mpfp" = multi-precision floating point) then only standard C doubles and complexes will be used. This makes some code run much faster but of course the results are different. In future it is planned to refactor the code so that both standard and multi-precision functions are available simultaneously. 4. After running make, "make check" will build and run a lot of test programs (in the subdirectory tests) and check that they give the expected output (using test input files in tests/in and comparing with the expected outputs in tests/out). The test output (and in a few cases input) differs slightly if the --disable-mpfp is used. 5. "make install" will install header files, library files, and test program binaries in subdirectories include, lib, bin in /usr/local by default, so that you would need to run "make install" with superuser privileges). You can specify an alternative place either by adding --prefix= to the ./configure command line.