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 ====================================== This file contains instructions on how to install 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. If you receive this file as part of a complete Singular distribution, see also the README, COPYING, and INSTALL files contained in the top directory of the full Singular distribution. Installation for the Impatient ============================== Being in the directory which contains this file, type ./configure make Basic Installation ================== The `configure' shell script in this directory attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create the `Makefile' from the file 'Makefile.in' and the file 'mod2.h' (which contains system-dependent definitions) from the file 'mod2.h.in'. Finally, it creates 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 Singular is: 1. `cd' to the directory containing the Singular's source code 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 awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile Singular. 3. Optionally, type `make check' to run the self-tests that come with the Singular (in the subdirectory tests). 4. Type `make install' to install the (executable) Singular program, Singular's info files (from the subdirectory docs), and Singular's program libraries written in Singular's architecture-independent and interpreted programming language (from the subdirectory LIB). 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. 'TAGS' : Creates/updates a tags table for Singular's source files. 'info' : Regenerates Singular's Info file. 'dvi' : Generates the file docs/Singular.dvi -- a DVI file of Singular's user manual 'uninstall' : Deletes all installed files that the 'install' target created (i.e. Singular's executable program, Singular's info file, and Singular's libraries) '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 use 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, `make install' will install the Singular program in `/usr/local/bin', Singular's info files in `/usr/local/info', and Singular's program libraries in '/usr/local/share'. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. 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' and for Singular's program libraries, use '--datadir=PATH'. Make sure that PATH is an _absolute_ (not relative) pathname. Optional Features ================= Singular's configure script pays attention to the following `--with-PACKAGE' options where PACKAGE can be: 'readline' : Uses the readline library for some fancy display. Requires that libreadline.a and the readline header files are installed on your system. If these files were not found, then Singular is build without readline. 'dbm' : Uses the dbm library for DBM links. Requires that libdbm.a or libgdbm.a is installed on your system. If this library is not found, then Singular is built without DBM and DBM links are disabled. 'info' : Uses the 'info' program for displaying the Singular documentation on a 'help' copmmand. This requires that the 'info' programm is installed on your system. If this program is not found, the a built-in display routine is used. 'MP' : Uses the MP library for MP links. Requires that libgmp.a, libMP.a, libMPT.a and gmp.h, MP.h, MPT.h are installed on your system. If these files are not found, then Singular is built without MP, and MP links ar disabled. 'factory' : Uses the Factory library for polynomial factorizations. Requires that libsingcf.a, factory.h and the factory template files are installed on your system. If these files are not found, then Singular is built without factory, and polynomial factorization routines are disabled. 'libfac' : Uses the libfac library for characteristic set computations. Requires libsingfac.a and libfac.h to be installed on your system. If these files are not found, then Singular is built without libfac and characteristic set routines are disabled. By default, configure runs as if all the above '--with-PACKAGE' options were given and searches through the given includedir and the system's default include directories for header files, and through the given libdir and through the system's default library directory for the library files. If one of the requirements for a PACKAGE is not met, configure prints a warning message and builds Singular without the respective PACKAGE, disabling its functionality. To explicitly built Singular without one of the above PACKAGEs, give configure (an) appropriate '--without-PACKAGE' option(s). See the README file about instructions on how to obtain the above PACKAGEs. Furthermore, the following '--with-apint=PACKAGE' option is recognized, where package can be: 'gmp' : Uses the GNU multiple precision library for arbitrary integer precision arithmetic. This results in the best performance. Requires that libgmp.a and gmp.h are installed on your system. 'smallgmp' : Uses the smallgmp library for for arbitrary integer precision arithmetic. This results in a performance which is slightly worse than that of the original gmp library. 'buildin' : Uses Singular's internal integer arithmetic routines. The resulting performance is poor in comparison to gmp or smallgmp and the usage of MP, factory, or libfac is automatically disbaled. By default, configure checks whether it can find gmp or smallgmp (in that order) and use the respective package, if found. If none is found, then Singular's internal arbitrary precision routines are used. System Requirements =================== The following requirements have to be met by your system, so that you can build Singular: 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 headers limits.h and unistd.h have to be installed. 5. 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/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: --without-readline do not use readline for fancy display --without-MP do not use MP (disables MP links) --without-dbm do not use dbm (disables DBM links) --without-info do not use info for help (use buildin help, instead) --without-dld do not use dld (disables dynamic linking) --without-factory do not use factory (disables poly factorization) --without-libfac do not use libfac (disables primary decompositions) --with-apint=PACKAGE use PACKAGE for arbitary integer arithmetic where PACKAGE can be gmp, smallgmp, or buildin