Singular version 1.0 University of Kaiserslautern Department of Mathematics (or, Centre for Computer Algebra) Authors: G.-M. Greuel, G. Pfister, H. Schoenemann (C) 1986-1997 All Rights Reserved INSTALLATION INSTRUCTIONS FOR SINGULAR (Full source distribution) ================================================================= This file contains instructions on how to compile and install the complete source distribution of Singular. For general information about Singular, see the file 'README' contained in this directory. For copying informations, see the file 'COPYING' contained in this directory. For comments, problems or bugs, please send mail to singular@mathematik.uni-kl.de. For more detailed information on the packages contained in this distribution (i.e., on gmp, MP, factory, and libfac) see the README files contained in the subdirectories of this distribution. Installation for the Impatient ============================== Being in the directory which contains this file and supposing that you have GNU make (gmake) installed on your system, type ./configure; gmake install and get a cup of coffee (or, tea, if you prefer). Notice the 'gmake install' (and not just 'gmake' !!). For more explanations and details, see below. Basic Installation ================== The full source distribution of Singular consists of the following four independent library packages smallgmp A minimal version of the gmp library MP The Multi Protocol library factory The factory library for polynomial factorization libfac The libfac library for characteristic set computations and the Singular kernel source code itself (which is contained in the 'Singular' subdirectory). It is possible to install these four packages and the Singular kernel independently. For more information on installing a particular package, see the INSTALL files contained in the respective directories. Singular can be built including almost any combination of these four packages. However, some Singular functionality will be disabled if you do not built Singular with all of them. You do not need any additional add-on packages to install Singular. However, for better performance, we strongly recommend that you install the gmp library at a standard place on your system. You can use the `configure' shell script in this directory to control which packages are included or not. If given no special options, the 'configure' script determines the "maximal" Singular configuration which can be build on your system, and subsequently calls the 'configure' scripts of the independent packages and the Singular kernel. It furthermore creates a top-level 'Makefile' from the file 'Makefile.in' and a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile a full Singular containing all packages is: 1. `cd' to the top-level directory of the full distribution and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes quite awhile. While running, it prints some messages telling which package it is configuring and which features it is checking for. 2. Type `gmake install' to compile Singular. This will create the subdirectories (of the top-level directory) 'bin', 'include', 'lib', 'info', and 'share' containing the Singular executable program (in 'bin'), the header files of the distributed packages (in 'include'), the compiled libraries (in 'lib'), info documentation files (in 'info'), and Singular data (i.e. architecture independent) files (in 'share'). NOTE: You need to do a 'make install' (and _not_ simply a 'make'), since a compilation of the Singular kernel supposes that the supporting library packages are installed, _before_ Singular itself is compiled. 3. Optionally, type `make check' to run the self-tests that come with Singular (contained in the subdirectory Singular/tests). 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Other make targets include: 'dist' : Creates a distribution of all source files of Singular. 'info' : Regenerates Info files. 'dvi' : Generates the file Singular/docs/Singular.dvi -- a DVI file of Singular's user manual 'uninstall' : Deletes all files that the 'install' target created 'check' : Tests basic Singular functionality Compilers and Options ===================== You need an ANSI-C++ and ANSI-C compiler for compiling Singular. We strongly recommend that you use the GNU C/C++ (gcc) compiler. If you have gcc installed on your system, configure will automatically find and use it for building Singular. Otherwise, configure will try to find another ANSI-C and ANSI-C++ compiler. To explicitly use an alternative compiler, or to set some unusual options for compilation or linking that the `configure' script does not know about, you can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure CXX=CC CXXFLAGS=+O3 LIBS=-liostream ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Installation Names ================== By default, `gmake install' will install the Singular program in `${top_srcdir}/bin', Singular's info files in `${top_srcdir}/info', Singular's program libraries in '${top_srcdir}/share', the header files of the supporting packages in '${top_srcdir}/include' and the libraries of the supporting packages in '${top_srcdir}/include' where '${top_srcdir}' refers to the top-level directory of the full Singular distribution. You can specify an installation prefix other than `${top_srcdir}' by giving `configure' the option `--prefix=PATH'. Furthermore, you can specify an alternative directory where the Singular program is installed by giving configure the option `--bindir=PATH'. For Singular's info files, use '--infodir=PATH'; for Singular's program libraries, use '--datadir=PATH'; for header files, use '--includedir=PATH'; and for libraries use '--libdir=PATH'. Make sure that PATH is an _absolute_ (i.e. not relative) pathname. Optional Features ================= Singular's top-level configure script pays attention to the following '--enable-PACKAGE' (resp. '--disable-PACKAGE') options where PACKAGE can be 'MP', 'factory', and 'libfac', 'smallgmp'. Giving an '-enable-PACKAGE' (resp. '--disable-PACKAGE;) option means that the respective PACKAGE is configured and built (resp. is not configured and built). Furthermore, the following '--with-PACKAGE' (resp. --without-PACKAGE') options are recognized: 'MP', 'factory', and 'libfac'. Giving an '--with-PACKAGE' (resp. `--without-PACKAGE') option means that Singular itself is built with (resp. without) PACKAGE and the functionality provided by PACKAGE. Without explicit options, configure runs as if it had given all '--enable-PACKAGE' options except for: * the library and header files of PACKAGE are already installed on your system or, * the respective '--without-PACKAGE' option was given or, * a directory of the name of the PACKAGE does not exist. Furthermore, without explicit options, configure runs as if it had given all '--with-PACKAGE' options except for * the respective '--disable-PACKAGE' option was given _and_ the library and header files of PACKAGE are _not_ already installed on your system. Singular's arbitrary precision arithmetic can be realized using the GNU multiple precision library, or the smallgmp library contained in this distribution, or using Singular build-in routines. Using the GNU multiple precision (GMP) library results in the best performance. The smallgmp library contained in this distribution is a subset of GMP which is written in C, only. Its performance is usually not quite as good as that of the original gmp library. Singular's build-in arbitrary precision routines are the least efficient. You can specify which arbitrary precision routines are used in Singular by giving configure the option '--with_apint=PACKAGE' where PACKAGE can be 'gmp' requires that gmp.h and libgmp.a are installed at a standard place on your system 'smallgmp' requires that smallgmp.h and libsmallgmp.a are installed at a standard place on your system (or, that a the top-level 'make install' is used for building Singular. 'buildin' disables that Singular can be build with MP, factory, or libfac Notice that MP, factory, and libfac, can only be built (and, consequently used by Singular) if the used arbitrary precision packages is either gmp or smallgmp. System Requirements =================== The following requirements have to be met by your system, so that you can build a full Singular: 0. You need GNU make. 1. The condition (sizeof(int) == 4) has to be true. 2. The condition (sizeof(void*) == sizeof(long)) has to be true. 3. The condition (-2 >> 1 == -1) has to be true. 4. The standard C headers and libraries have to be installed. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `--help' Prints the following summary of the options to `configure', and exits. Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print `checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [/mnt/amd/users/urmel/singular/obachman/Singular] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] --target=TARGET configure for TARGET [TARGET=HOST] Features and packages: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR --enable and --with options recognized: --enable-PACKAGE configure and build PACKAGE --disable-PACKAGE do not configure and build PACKAGE where PACKAGE can be: smallgmp minimal version of gmp written in C only MP Multi Protocol library factory polynomial factorization library libfac char set and modp poly factorization library Singular CAS for commutative algebra --with-PACKAGE use PACKAGE, provide dependent functionality --without-PACKAGE do not use PACKAGE, disable dependent functionality where PACKAGE can be: MP Multi Protocol factory polynomial factorization library libfac char set and modp poly factorization library --with-apint=PACKAGE use PACKAGE for arbitary integer arithmetic where PACKAGE can be gmp, smallgmp, or buildin