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/ where is an architecture-specific identifier (e.g., SUN4, SGI5). Similarly, executables are installed in ./bin/. 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