			 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
