[71f0be3] | 1 | Singular version 1.0 |
---|
| 2 | University of Kaiserslautern |
---|
| 3 | Department of Mathematics (or, Centre for Computer Algebra) |
---|
| 4 | Authors: G.-M. Greuel, G. Pfister, H. Schoenemann |
---|
| 5 | (C) 1986-1997 All Rights Reserved |
---|
| 6 | |
---|
| 7 | INSTALLATION INSTRUCTIONS FOR SINGULAR (Full source distribution) |
---|
| 8 | ================================================================= |
---|
| 9 | |
---|
| 10 | This file contains instructions on how to compile and install the |
---|
| 11 | complete source distribution of Singular. For general information |
---|
| 12 | about Singular, see the file 'README' contained in this directory. For |
---|
| 13 | copying informations, see the file 'COPYING' contained in this |
---|
| 14 | directory. For comments, problems or bugs, please send mail to |
---|
| 15 | singular@mathematik.uni-kl.de. For more detailed information on the |
---|
| 16 | packages contained in this distribution (i.e., on gmp, MP, factory, |
---|
| 17 | and libfac) see the README files contained in the subdirectories |
---|
| 18 | of this distribution. |
---|
| 19 | |
---|
| 20 | Installation for the Impatient |
---|
| 21 | ============================== |
---|
| 22 | Being in the directory which contains this file and supposing that you |
---|
[4c6425] | 23 | have GNU make (gmake) installed on your system, type |
---|
[71f0be3] | 24 | |
---|
| 25 | ./configure; gmake install |
---|
| 26 | |
---|
| 27 | and get a cup of coffee (or, tea, if you prefer). |
---|
| 28 | |
---|
[4c6425] | 29 | Notice the 'gmake install' (and not just 'gmake' !!). For more |
---|
[71f0be3] | 30 | explanations and details, see below. |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | Basic Installation |
---|
| 34 | ================== |
---|
| 35 | |
---|
| 36 | The full source distribution of Singular consists of the following |
---|
| 37 | four independent library packages |
---|
| 38 | |
---|
[9f226d] | 39 | smallgmp A minimal version of the gmp library |
---|
| 40 | MP The Multi Protocol library |
---|
| 41 | factory The factory library for polynomial factorization |
---|
| 42 | libfac The libfac library for characteristic set computations |
---|
[71f0be3] | 43 | |
---|
| 44 | and the Singular kernel source code itself (which is contained in the |
---|
| 45 | 'Singular' subdirectory). It is possible to install these four |
---|
| 46 | packages and the Singular kernel independently. For more information |
---|
| 47 | on installing a particular package, see the INSTALL files contained in |
---|
| 48 | the respective directories. |
---|
| 49 | |
---|
| 50 | Singular can be built including almost any combination of these four |
---|
| 51 | packages. However, some Singular functionality will be disabled if you |
---|
[9f226d] | 52 | do not built Singular with all of them. You do not need any additional |
---|
| 53 | add-on packages to install Singular. However, for better performance, |
---|
| 54 | we strongly recommend that you install the gmp library at a standard |
---|
| 55 | place on your system. |
---|
| 56 | |
---|
[71f0be3] | 57 | |
---|
| 58 | You can use the `configure' shell script in this directory to control |
---|
| 59 | which packages are included or not. If given no special options, the |
---|
| 60 | 'configure' script determines the "maximal" Singular configuration |
---|
| 61 | which can be build on your system, and subsequently calls the |
---|
| 62 | 'configure' scripts of the independent packages and the Singular |
---|
| 63 | kernel. It furthermore creates a top-level 'Makefile' from the file |
---|
| 64 | 'Makefile.in' and a shell script `config.status' that you can run in |
---|
| 65 | the future to recreate the current configuration, a file |
---|
| 66 | `config.cache' that saves the results of its tests to speed up |
---|
| 67 | reconfiguring, and a file `config.log' containing compiler output |
---|
| 68 | (useful mainly for debugging `configure'). |
---|
| 69 | |
---|
| 70 | The file `configure.in' is used to create `configure' by a program |
---|
| 71 | called `autoconf'. You only need `configure.in' if you want to change |
---|
| 72 | it or regenerate `configure' using a newer version of `autoconf'. |
---|
| 73 | |
---|
| 74 | The simplest way to compile a full Singular containing all packages is: |
---|
| 75 | |
---|
| 76 | 1. `cd' to the top-level directory of the full distribution and type |
---|
| 77 | `./configure' to configure the package for your system. If you're |
---|
| 78 | using `csh' on an old version of System V, you might need to type |
---|
| 79 | `sh ./configure' instead to prevent `csh' from trying to execute |
---|
| 80 | `configure' itself. |
---|
| 81 | |
---|
| 82 | Running `configure' takes quite awhile. While running, it prints |
---|
| 83 | some messages telling which package it is configuring and which |
---|
| 84 | features it is checking for. |
---|
| 85 | |
---|
[4c6425] | 86 | 2. Type `gmake install' to compile Singular. |
---|
[71f0be3] | 87 | |
---|
| 88 | This will create the subdirectories (of the top-level directory) |
---|
| 89 | 'bin', 'include', 'lib', 'info', and 'share' containing the |
---|
| 90 | Singular executable program (in 'bin'), the header files of the |
---|
| 91 | distributed packages (in 'include'), the compiled libraries (in |
---|
| 92 | 'lib'), info documentation files (in 'info'), and Singular data |
---|
| 93 | (i.e. architecture independent) files (in 'share'). |
---|
| 94 | |
---|
| 95 | NOTE: You need to do a 'make install' (and _not_ simply a |
---|
| 96 | 'make'), since a compilation of the Singular kernel supposes that |
---|
| 97 | the supporting library packages are installed, _before_ Singular |
---|
| 98 | itself is compiled. |
---|
| 99 | |
---|
| 100 | 3. Optionally, type `make check' to run the self-tests that come with |
---|
| 101 | Singular (contained in the subdirectory Singular/tests). |
---|
| 102 | |
---|
| 103 | 5. You can remove the program binaries and object files from the |
---|
| 104 | source code directory by typing `make clean'. To also remove the |
---|
| 105 | files that `configure' created (so you can compile the package for |
---|
| 106 | a different kind of computer), type `make distclean'. There is |
---|
| 107 | also a `make maintainer-clean' target, but that is intended mainly |
---|
| 108 | for the package's developers. If you use it, you may have to get |
---|
| 109 | all sorts of other programs in order to regenerate files that came |
---|
| 110 | with the distribution. |
---|
| 111 | |
---|
| 112 | 6. Other make targets include: |
---|
| 113 | 'dist' : Creates a distribution of all source files of |
---|
| 114 | Singular. |
---|
| 115 | 'info' : Regenerates Info files. |
---|
| 116 | 'dvi' : Generates the file Singular/docs/Singular.dvi -- a DVI file |
---|
| 117 | of Singular's user manual |
---|
| 118 | 'uninstall' : Deletes all files that the 'install' |
---|
| 119 | target created |
---|
| 120 | 'check' : Tests basic Singular functionality |
---|
| 121 | |
---|
| 122 | |
---|
| 123 | Compilers and Options |
---|
| 124 | ===================== |
---|
| 125 | |
---|
| 126 | You need an ANSI-C++ and ANSI-C compiler for compiling Singular. We |
---|
| 127 | strongly recommend that you use the GNU C/C++ (gcc) compiler. If you |
---|
| 128 | have gcc installed on your system, configure will automatically find |
---|
| 129 | and use it for building Singular. Otherwise, configure will try to |
---|
| 130 | find another ANSI-C and ANSI-C++ compiler. To explicitly use an |
---|
| 131 | alternative compiler, or to set some unusual options for compilation |
---|
| 132 | or linking that the `configure' script does not know about, you can |
---|
| 133 | give `configure' initial values for variables by setting them in the |
---|
| 134 | environment. Using a Bourne-compatible shell, you can do that on the |
---|
| 135 | command line like this: |
---|
| 136 | CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure |
---|
| 137 | CXX=CC CXXFLAGS=+O3 LIBS=-liostream ./configure |
---|
| 138 | |
---|
| 139 | Or on systems that have the `env' program, you can do it like this: |
---|
| 140 | env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
---|
| 141 | |
---|
| 142 | |
---|
| 143 | Installation Names |
---|
| 144 | ================== |
---|
| 145 | |
---|
[4c6425] | 146 | By default, `gmake install' will install the Singular program in |
---|
[71f0be3] | 147 | `${top_srcdir}/bin', Singular's info files in `${top_srcdir}/info', |
---|
| 148 | Singular's program libraries in '${top_srcdir}/share', the header |
---|
[4c6425] | 149 | files of the supporting packages in '${top_srcdir}/include' and the |
---|
[71f0be3] | 150 | libraries of the supporting packages in '${top_srcdir}/include' where |
---|
| 151 | '${top_srcdir}' refers to the top-level directory of the full Singular |
---|
| 152 | distribution. You can specify an installation prefix other than |
---|
| 153 | `${top_srcdir}' by giving `configure' the option |
---|
| 154 | `--prefix=PATH'. Furthermore, you can specify an alternative directory |
---|
| 155 | where the Singular program is installed by giving configure the option |
---|
| 156 | `--bindir=PATH'. For Singular's info files, use '--infodir=PATH'; for |
---|
| 157 | Singular's program libraries, use '--datadir=PATH'; for header files, |
---|
| 158 | use '--includedir=PATH'; and for libraries use '--libdir=PATH'. Make |
---|
| 159 | sure that PATH is an _absolute_ (i.e. not relative) pathname. |
---|
| 160 | |
---|
| 161 | |
---|
| 162 | Optional Features |
---|
| 163 | ================= |
---|
| 164 | |
---|
| 165 | Singular's top-level configure script pays attention to the following |
---|
[9f226d] | 166 | '--enable-PACKAGE' (resp. '--disable-PACKAGE') options where PACKAGE |
---|
| 167 | can be 'MP', 'factory', and 'libfac', 'smallgmp'. |
---|
[71f0be3] | 168 | |
---|
| 169 | Giving an '-enable-PACKAGE' (resp. '--disable-PACKAGE;) option means |
---|
| 170 | that the respective PACKAGE is configured and built (resp. is not |
---|
| 171 | configured and built). |
---|
| 172 | |
---|
[9f226d] | 173 | Furthermore, the following '--with-PACKAGE' (resp. --without-PACKAGE') |
---|
| 174 | options are recognized: 'MP', 'factory', and 'libfac'. |
---|
| 175 | |
---|
[71f0be3] | 176 | Giving an '--with-PACKAGE' (resp. `--without-PACKAGE') option means |
---|
| 177 | that Singular itself is built with (resp. without) PACKAGE and the |
---|
[a3730b] | 178 | functionality provided by PACKAGE. |
---|
[71f0be3] | 179 | |
---|
| 180 | Without explicit options, configure runs as if it had given all |
---|
| 181 | '--enable-PACKAGE' options except for: |
---|
| 182 | * the library and header files of PACKAGE are already installed on |
---|
| 183 | your system |
---|
| 184 | or, * the respective '--without-PACKAGE' option was given |
---|
| 185 | or, * a directory of the name of the PACKAGE does not exist. |
---|
| 186 | |
---|
| 187 | Furthermore, without explicit options, configure runs as if it had given all |
---|
| 188 | '--with-PACKAGE' options except for |
---|
| 189 | * the respective '--disable-PACKAGE' option was given _and_ the |
---|
| 190 | library and header files of PACKAGE are _not_ already installed |
---|
| 191 | on your system. |
---|
| 192 | |
---|
[9f226d] | 193 | Singular's arbitrary precision arithmetic can be realized using the |
---|
| 194 | GNU multiple precision library, or the smallgmp library contained in |
---|
| 195 | this distribution, or using Singular build-in routines. Using the GNU |
---|
| 196 | multiple precision (GMP) library results in the best performance. The |
---|
| 197 | smallgmp library contained in this distribution is a subset of GMP |
---|
| 198 | which is written in C, only. Its performance is usually not quite as |
---|
| 199 | good as that of the original gmp library. Singular's build-in |
---|
| 200 | arbitrary precision routines are the least efficient. |
---|
| 201 | |
---|
| 202 | You can specify which arbitrary precision routines are used in |
---|
| 203 | Singular by giving configure the option '--with_apint=PACKAGE' where |
---|
| 204 | PACKAGE can be |
---|
| 205 | 'gmp' requires that gmp.h and libgmp.a are installed at a |
---|
| 206 | standard place on your system |
---|
| 207 | 'smallgmp' requires that smallgmp.h and libsmallgmp.a are |
---|
| 208 | installed at a standard place on your system (or, that |
---|
| 209 | a the top-level 'make install' is used for building |
---|
| 210 | Singular. |
---|
| 211 | 'buildin' disables that Singular can be build with MP, factory, |
---|
| 212 | or libfac |
---|
| 213 | Notice that MP, factory, and libfac, can only be built (and, |
---|
| 214 | consequently used by Singular) if the used arbitrary precision |
---|
| 215 | packages is either gmp or smallgmp. |
---|
| 216 | |
---|
| 217 | |
---|
[71f0be3] | 218 | System Requirements |
---|
| 219 | =================== |
---|
| 220 | |
---|
| 221 | The following requirements have to be met by your system, so that you |
---|
| 222 | can build a full Singular: |
---|
| 223 | 0. You need GNU make. |
---|
| 224 | 1. The condition (sizeof(int) == 4) has to be true. |
---|
| 225 | 2. The condition (sizeof(void*) == sizeof(long)) has to be true. |
---|
| 226 | 3. The condition (-2 >> 1 == -1) has to be true. |
---|
| 227 | 4. The standard C headers and libraries have to be installed. |
---|
| 228 | |
---|
| 229 | |
---|
| 230 | Operation Controls |
---|
| 231 | ================== |
---|
| 232 | |
---|
| 233 | `configure' recognizes the following options to control how it |
---|
| 234 | operates. |
---|
| 235 | |
---|
| 236 | `--cache-file=FILE' |
---|
| 237 | Use and save the results of the tests in FILE instead of |
---|
| 238 | `./config.cache'. Set FILE to `/dev/null' to disable caching, for |
---|
| 239 | debugging `configure'. |
---|
| 240 | |
---|
| 241 | |
---|
| 242 | `--quiet' |
---|
| 243 | `--silent' |
---|
| 244 | `-q' |
---|
| 245 | Do not print messages saying which checks are being made. |
---|
| 246 | |
---|
| 247 | `--version' |
---|
| 248 | Print the version of Autoconf used to generate the `configure' |
---|
| 249 | script, and exit. |
---|
| 250 | |
---|
| 251 | `--help' |
---|
| 252 | Prints the following summary of the options to `configure', and exits. |
---|
| 253 | |
---|
| 254 | Usage: configure [options] [host] |
---|
| 255 | Options: [defaults in brackets after descriptions] |
---|
| 256 | Configuration: |
---|
| 257 | --cache-file=FILE cache test results in FILE |
---|
| 258 | --help print this message |
---|
| 259 | --no-create do not create output files |
---|
| 260 | --quiet, --silent do not print `checking...' messages |
---|
| 261 | --version print the version of autoconf that created configure |
---|
| 262 | Directory and file names: |
---|
| 263 | --prefix=PREFIX install architecture-independent files in PREFIX |
---|
[9f226d] | 264 | [/mnt/amd/users/urmel/singular/obachman/Singular] |
---|
[71f0be3] | 265 | --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX |
---|
| 266 | [same as prefix] |
---|
| 267 | --bindir=DIR user executables in DIR [EPREFIX/bin] |
---|
| 268 | --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] |
---|
| 269 | --libexecdir=DIR program executables in DIR [EPREFIX/libexec] |
---|
| 270 | --datadir=DIR read-only architecture-independent data in DIR |
---|
| 271 | [PREFIX/share] |
---|
| 272 | --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] |
---|
| 273 | --sharedstatedir=DIR modifiable architecture-independent data in DIR |
---|
| 274 | [PREFIX/com] |
---|
| 275 | --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] |
---|
| 276 | --libdir=DIR object code libraries in DIR [EPREFIX/lib] |
---|
| 277 | --includedir=DIR C header files in DIR [PREFIX/include] |
---|
| 278 | --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] |
---|
| 279 | --infodir=DIR info documentation in DIR [PREFIX/info] |
---|
| 280 | --mandir=DIR man documentation in DIR [PREFIX/man] |
---|
| 281 | --srcdir=DIR find the sources in DIR [configure dir or ..] |
---|
| 282 | --program-prefix=PREFIX prepend PREFIX to installed program names |
---|
| 283 | --program-suffix=SUFFIX append SUFFIX to installed program names |
---|
| 284 | --program-transform-name=PROGRAM |
---|
| 285 | run sed PROGRAM on installed program names |
---|
| 286 | Host type: |
---|
| 287 | --build=BUILD configure for building on BUILD [BUILD=HOST] |
---|
| 288 | --host=HOST configure for HOST [guessed] |
---|
| 289 | --target=TARGET configure for TARGET [TARGET=HOST] |
---|
| 290 | Features and packages: |
---|
| 291 | --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) |
---|
| 292 | --enable-FEATURE[=ARG] include FEATURE [ARG=yes] |
---|
| 293 | --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] |
---|
| 294 | --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) |
---|
| 295 | --x-includes=DIR X include files are in DIR |
---|
| 296 | --x-libraries=DIR X library files are in DIR |
---|
| 297 | --enable and --with options recognized: |
---|
| 298 | --enable-PACKAGE configure and build PACKAGE |
---|
| 299 | --disable-PACKAGE do not configure and build PACKAGE |
---|
[9f226d] | 300 | where PACKAGE can be: |
---|
| 301 | smallgmp minimal version of gmp written in C only |
---|
| 302 | MP Multi Protocol library |
---|
| 303 | factory polynomial factorization library |
---|
| 304 | libfac char set and modp poly factorization library |
---|
| 305 | Singular CAS for commutative algebra |
---|
[71f0be3] | 306 | --with-PACKAGE use PACKAGE, provide dependent functionality |
---|
| 307 | --without-PACKAGE do not use PACKAGE, disable dependent functionality |
---|
| 308 | where PACKAGE can be: |
---|
[9f226d] | 309 | MP Multi Protocol |
---|
[71f0be3] | 310 | factory polynomial factorization library |
---|
| 311 | libfac char set and modp poly factorization library |
---|
[9f226d] | 312 | --with-apint=PACKAGE use PACKAGE for arbitary integer arithmetic |
---|
| 313 | where PACKAGE can be gmp, smallgmp, or buildin |
---|