                   MP version 1.1.2:  Multi Protocol
                   Kent State University, Kent, OH
                Authors:  S. Gray, N. Kajler, P. Wang 
         (C) 1993, 1994, 1995, 1996, 1997 All Rights Reserved

		INSTALLATION INSTRUCTIONS FOR MP
		================================

This file contains instructions on how to install MP.  For general
information about MP and copying information, see the file 'README'
contained in this directory.  For comments, problems, or bugs,
please send mail to mp@mcs.kent.edu. 


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 `Makefile's from the
files 'Makefile.in' and the file 'MP/MP_Config.h' (which contains
system-dependent definitions) from the file'MP/h/MP_Config.h.in'.
Finally, it creates a shell script `config.status' that you can run 
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 output from `configure' (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 install MP is:

  1. `cd' to the directory containing the MP'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' to prevent `csh' from trying to execute
     `configure' itself. 

     Running `configure' takes a while.  While running, it prints some
     messages telling which features it is checking for.

  2. Type `make install' to compile and install the gmp, MP, and MPT
     libraries and header files. The libraries will be installed in 
     ./lib/<ARCH> where <ARCH> is an architecture-specific identifier
     (e.g., SUN4, SGI5).  Similarly, executables are installed in 
     ./bin/<ARCH>.  You can customize what is built and where libraries, 
     header files, and executables are installed by giving 'configure' 
     appropriate options (see below). NOTE: If you do not have the header 
     file 'gmp.h' installed in a standard location on your system, then 
     a './configure' followed by a simple 'make' command will fail. You 
     need to do './configure --enable-gmp' followed by 'make install'. 

  3. 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, type `make distclean'.  There is
     a `make maintainer-clean' target, but that is intended mainly for 
     the package's developers.  If you use it, you may have to install 
     all sorts of other programs in order to regenerate files that came 
     with the distribution.

  4. To remake the library for a different architecture, login to the
     target machine and change directories to the MP source directory.
     You must remove the library object files and create new Makefiles.
     To do this, simply do a `make clean' in the top-level MP directory,
     followed by `rm config.cache' to remove the cache file created by
     configure.  Finally, rerun configure with the same options you gave 
     it on other machines followed by a `make' or `make install'.
  
  5. Other make targets are:
     'MP','libMP.a'   : Creates the MP library only.
     'MPT','libMPT.a' : Creates the MPT library only.
     'examples'       : Builds MP implementation examples.
     'mpviewer'       : Builds the mpviewer.
     'mp-pvm3'        : Builds an example mp-pvm implementation.
     'dist'      : Creates a distribution of all source files of MP.
     'TAGS'      : Creates/updates a tags table for MP's source files.
     'uninstall' : Deletes all installed files that the 'install'
                   target created (the library, header, info files) 

Compilers and Options
=====================

You need an ANSI-C compiler for compiling MP. We 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
MP. Otherwise, configure will try to find another 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 
or
	   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

Furthermore, by giving configure the `--with-extra_cflags=cflgas'
option, adds cflags to the flags given to your compiler. This is
useful when you want to rely on configure to find out some standard
CFLAGS, but nevertheless want to add some specific flags (like -fpic
for gneration of position-independent code).


Installation Names
==================

By default, `make install' will install the libraries in ./lib/$ARCH
where $ARCH is an architecture-dpendent prefix (generated by the
program pvmgetarch contained in this distribution), and
headers in ./include. You can specify an installation prefix other
than the current directory by giving `configure' the option
`--prefix=PATH'. You can specify an alternative directory where the
libraries are installed by giving configure the option
`--libdir=PATH'. For the header files, use '--includedir=PATH'. Make
sure that PATH is an _absolute_ (_not_ a relative) pathname.


Optional Features
=================

MP's configure script pays attention to the following:

`--disable-PACKAGE' option where PACKAGE can be:

  'MPT' : Do not build the MPT (MP Tree) library and header files. MPT
          is a library for reading/manipulating memory representations
          of MP trees. By default MPT is built with MP and, on
          installation, the files MPT.h and libMPT.a are installed in
          the specified directories.

  'gmp' : Do not build the GNU Multiple Precision (GMP) library and
          header file. GMP is a library for multiple precision integer
          and floating point arithmetic. Unless the option
          --without-gmp is given to configure (see below), building MP
          requires that the header file gmp.h has been installed
          _before_ the MP library is built. By default, the GMP
          library is installed before the MP library is built and on
          installation of GMP, the files gmp.h and libgmp.a are
          installed in the specified directories.


`--enable-PACKAGE' option where PACKAGE can be:

  'examples' : The distribution comes with some example implementations
               contained in the directory 'examples'. By default, the
               examples are not built when MP is built. Use this option
               to build the examples when MP is built. NOTE: Make sure
               that MP is installed before the examples are built. Also
     	       see the README file contained in the 'examples' directory. 

  'mpviewer': The distribution comes with an mpviewer implementation
              contained in the directory 'mpviewer'. By default, the
              mpviewer is not built when MP is built. Use this option
              to build the mpviewer when MP is built. NOTE: Make sure
              that MP is installed before the mpviewer is built.  Also
	      see the README file contained in the 'mpviewer' directory. 

  'mppvm' : The distribution comes with some pvm example implementations 
	    (demonstrating the use of the PVM transport device) contained 
	    in the directory 'mp-pvm3'. By default, the pvm examples are 
	    not built when MP is built. Use this option to build the pvm 
	    examples when MP is built. NOTE: Make sure that MP is installed 
	    before the examples are built. Also see the README file in the 
	    'mp-pvm3' directory.  If the pvm include files and libraries are 
	    not in standard places, you must be sure the PVM_ARCH and PVM_ROOT 
	    are set.  Note also that if you use this option, you must also 
	    use the `--with-pvm' option (see below).


`--without-PACKAGE' option where PACKAGE can be:

  'gmp' : Build MP _without_ Put/Get routines for gmp numbers. By
          default, MP is built with routines to Put and Get gmp
          numbers. However, this requires the header file gmp.h to be
          installed. Use this option if you do not have or do not want
          to install this header file or have these routines included
          in the library.  Note that this option is different from
          --disable-gmp, which indicates whether or not the gmp
          library is to be built.  The --without option specifies that
          MP will not build routines for putting and getting gmp
          numbers.


`--with-PACKAGE' option where PACKAGE can be:

  'pari'  : MP comes with routines which Put/Get (arbitrary precision)
            integers in the pari format. By default, MP is built
            without these routines. NOTE: You need to have the header
            file 'genpari.h' installed on your system to build MP
            with the pari routines and you need to link your
            application with the pari library.

  'saclib': MP comes with routines which Put/Get (arbitrary precision)
            integers in the saclib format. By default, MP is built
            without these routines. NOTE: You need to have the header
            file 'saclib.h' and 'gmp.h' installed on your system to
            build MP with the saclib routines and you need to link
            your application with the saclib and gmp libraries.

  'tb'    : MP comes with a ToolBus device interface implementation.  
            By default, MP is built without this device. NOTE: You
	    need to have the header file 'TB.h' installed on your
	    system to build MP with the ToolBus device and you need
	    to link your application with the ToolBus library.

  'pvm'   : MP comes with a Pvm3 device interface implementation. By
            default, MP is built without this device. NOTE: You need
	    to have the header  file 'pvm3' installed on your system
	    to build MP with the Pvm3 device and you need to link your 
            application with the Pvm3 library.

  'debug' : The libraries are built with debug options and logging of
            MP communications turned on. 

'--with-rsh=COMMAND' option where COMMAND is the name of a remote
shell command. MP uses this command to remotely launch an
application. If this option is not given then configure searches for
the commands remsh, rsh, ssh (in that order).
if the

`--with-default_apint=PACKAGE' option where PACKAGE can be:

  'gmp'   : The gmp Put/Get routines are used as default routines to
            Put/Get arbitrary precision integers (default).  Requires
            the header 'gmp.h' to be installed.
  'pari'  : The pari Put/Get routines are used as default routines to
            Put/Get  arbitrary precision integers. Requires the header
            'genpari.h' to be installed.
  'saclib': The saclib Put/Get routines are used as default routines to
            Put/Get  arbitrary precision integers. Requires the headers
            'saclib.h' and 'gmp.h' to be installed.
  'none'  : Dummy routines are used as default routines to Put/Get
            arbitrary precision integers which, when used, always
            return an error.


`--with-default_apreal=PACKAGE' option where PACKAGE can be:

  'gmp'   : The gmp Put/Get routines are used as default routines to
            Put/Get arbitrary precision reals (default).  Requires the
            header 'gmp.h' to be installed.
  'none'  : Dummy routines are used as default routines to Put/Get
            arbitrary precision reals which, when used, always
            return an error.


By default, configure 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
library files. If one of the requirements for a PACKAGE is not met,
configure prints a warning message and builds MP without the
respective PACKAGE, disabling its functionality.


System Requirements
===================

The following requirements have to be met by your system, so that you
can build MP:
  1. The condition (sizeof(void*) == 4) has to be true.
  2. The standard C headers and libraries have to be installed.


Operation Controls
==================

   `configure' recognizes the following options to control how it
operates.

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/MP]
  --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:
   --disable-MPT           disable building of MPT library
   --disable-gmp           configure and build without gmp library
   --enable-example        enable building of example programs
   --enable-mpviewer       enable building of mpviewer program
   --enable-mppvm          enable building of mppvm routines
   --with-default_apint=PACKAGE    use PACKAGE as MP's default ApInt format
                           where PACKAGE can be: gmp (default), pari, 
                           saclib, none
   --with-default_apreal=PACKAGE   use PACKAGE as MP's default ApReal format
                           where PACKAGE can be: gmp (default), none
   --without-gmp           build without gmp ApNumber routines
   --with-pari             build with pari ApInt routines
   --with-saclib           build with saclib ApInt routines
   --with-tb               build with Toolbus device interface
   --with-pvm              build with Pvm saclib device interface
   --with-debug            build with debug options and logging
   --with-extra_cflags=cflags   build with 'cflags' appended to
                                 CFLAGS given to the compiler
  --with-rsh=command       use 'command' as remote shell command
