summaryrefslogtreecommitdiff
path: root/gsl-1.9/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/INSTALL')
-rw-r--r--gsl-1.9/INSTALL513
1 files changed, 513 insertions, 0 deletions
diff --git a/gsl-1.9/INSTALL b/gsl-1.9/INSTALL
new file mode 100644
index 0000000..507e22a
--- /dev/null
+++ b/gsl-1.9/INSTALL
@@ -0,0 +1,513 @@
+GSL - GNU Scientific Library
+============================
+
+Installation Instructions
+=========================
+
+GSL follows the standard GNU installation procedure. To compile GSL
+you will need an ANSI C-compiler. After unpacking the distribution
+the Makefiles can be prepared using the configure command,
+
+ ./configure
+
+You can then build the library by typing,
+
+ make
+
+Both static and shared versions of the libraries will be compiled by
+default. Compilation of shared libraries can be turned off by
+specifying the `--disable-shared' option to `configure', e.g.
+
+ ./configure --disable-shared
+
+If you encounter problems building the library try using the above
+option, because some platforms do not support shared libraries. If
+you change any compilation options you will need to remove any
+existing compiled files with,
+
+ make clean
+
+before running "make" again, so the new settings take effect.
+
+For notes about problems with specific platforms and compilers see the
+next section of this file (below).
+
+An extensive test suite is available. After compiling the library
+with "make", it can be invoked with "make check" at the top level.
+The test output should be directed to a file rather than a terminal,
+with the command,
+
+ make check > log 2>&1
+
+to allow any errors to be examined in detail. By default, only test
+failures are shown. To see the complete output, set the environment
+variable GSL_TEST_VERBOSE=1.
+
+If you run the tests and get some failures, please see the notes on
+platform specific problems below. If you find failures that are not
+mentioned, please report them to bug-gsl@gnu.org.
+
+The library can be installed using the command,
+
+ make install
+
+The default installation directory prefix is /usr/local. Installing
+in this directory will require root privileges on most systems (use
+"su" or "sudo").
+
+The installation directory can be changed with the --prefix option to
+configure. Consult the "Further Information" section below for
+instructions on installing the library in another location or changing
+other default compilation options.
+
+ ------------------------------
+
+Platform Specific Compilation Notes
+===================================
+
+This section documents any known issues with installing GSL on
+specific platforms.
+
+ * General hints for all platforms
+ * AIX
+ * Compaq/DEC Alpha
+ * HP-UX
+ * IRIX
+ * MacOS X / PowerPC
+ * Microsoft Windows
+ * OpenBSD
+ * OS/2
+ * Solaris
+
+Hints for any platform
+======================
+
+1) If there are problems building the library try using
+
+ ./configure --disable-shared
+
+This will turn off the compilation of shared libraries and may allow
+the build process to complete successfully.
+
+If you get any problems try this first.
+
+2) With gcc-2.95/2.96 the tests fail in the eigen/ directory. This is
+due to a compiler optimization bug which causes errors in the
+manipulation of complex numbers.
+
+This is fixed in more recent versions of gcc. Do not use the library
+if you encounter this problem---install a newer version of gcc.
+
+3) Attempts to run 'strip' on the static library libgsl.a will probably
+produce a broken library (it is known to happen with GNU binutils
+strip, and probably affects others too). The libgsl.a ar archive made
+by libtool contains files with the same filenames from different
+directories, and this causes the strip program to overwrite these
+archive entries. If you need to produce a compact version of the
+library compile without -g instead of using strip.
+
+make install-strip does not work, due to a minor problem with autoconf
+which is fixed in the 2.5 development version of autoconf. In the
+meantime compile without -g instead if you need to reduce the file size.
+
+4) The configure script can fail with a segmentation fault on bash-2.01
+
+ $ ./configure
+ Segmentation fault
+
+This is due to a bug in bash, related to the MAIL environment
+variable. To work around it use
+
+ $ unset ENV MAIL MAILPATH
+ $ ./configure
+
+which should avoid the problem.
+
+Hints for AIX
+=============
+
+For compilation problems with the native compiler xlc, try disabling
+shared libraries,
+
+ setenv CC 'xlc'
+ setenv CFLAGS '-O -qmaxmem=8192'
+ ./configure --disable-shared
+ make
+
+If you get the error,
+
+ ld: 0711-781 ERROR: TOC overflow.
+
+you can try building the library with a larger linker
+table-of-contents by setting LDFLAGS before compilation,
+
+ LDFLAGS="-Wl,-bbigtoc" ./configure
+
+On older versions of AIX (e.g. 4.2) the size of the command-line is
+limited to 24kb, which causes linking to fail (due to the large number
+of files to be linked). Unfortunately this limit cannot be increased.
+To link the library you may need to use a manual approach of
+incrementally combining the object files in smaller groups.
+
+On more recent versions of AIX (e.g >= 5.1) use
+
+ chdev -l sys0 -a ncargs=NNN
+
+to increase the allowed number of arguments. NNN is the amount of
+space measured in 4k blocks (default 6, maximum 1024)
+
+If compiling with GCC the following error
+
+ fp-aix.c: In function `gsl_ieee_set_mode':
+ fp-aix.c:30: error: `fprnd_t' undeclared (first use in this function)
+
+can occur if /usr/includes/float.h is not used, and instead the
+float.h of the installed gcc is picked up instead -- it may be missing
+the necessary structs. To work around it copy the missing parts
+(between #ifdef _ALL_SOURCE and its #endif) from /usr/includes/float.h
+into a new header file and #include that in fp-aix.c
+
+Hints for Compaq/DEC Alpha
+==========================
+
+When comping with GCC use the -mieee and -mfp-rounding-mode options
+as appropriate, e.g.
+
+ ./configure CFLAGS="-mieee -mfp-rounding-mode=d -g -O2"
+
+The library should compile successfully with Compaq's C compiler on
+Tru64 Unix 'cc' using the -std, -ieee and -fprm options. Use
+
+ ./configure CC=cc
+ make CFLAGS="-std -ieee -fprm d"
+
+to build the library this way.
+
+Use GNU tar to unpack the tar file, as Tru64 tar gives an error
+halfway through.
+
+Hints for HP-UX
+===============
+
+The default mode of the HP-UX C compiler does not use ANSI C.
+
+To compile GSL you need to select ANSI C mode with the following
+configuration option:
+
+ CFLAGS="-Ae" ./configure
+
+To switch on optimization use CFLAGS="-Ae -O".
+
+Hints for IRIX (SGI)
+====================
+
+The library should be compiled with the CFLAGS option
+-OPT:IEEE_NaN_inf=ON to ensure correct IEEE arithmetic. The tests in
+sys/ will fail without this option. The older deprecated option
+-OPT:IEEE_comparisons=ON will also work.
+
+The 32 bit IRIX compiler gives warnings about "long double" not being
+supported. These can be ignored or turned off with,
+
+ CFLAGS="-woff 728" ./configure
+
+or
+
+ make CFLAGS="-woff 728"
+
+The compiler also gives warnings about certain libraries that are "not
+used for resolving any symbol". This is harmless and the warnings can
+be ignored.
+
+You may get warnings about " /usr/bin/ld: arg list too long" when
+building shared libraries. If so, try increasing the ncargs kernel
+parameter with the systune(1m) command.
+
+For 64-bit compilation use the following options,
+
+ CC=cc CFLAGS="-64" LDFLAGS="-64" ./configure
+
+or for gcc
+
+ CFLAGS="-mabi-64" LDFLAGS="-mabi=64 -mips4 -L/usr/local/lib/mabi=64"
+
+Hints for MacOS X and PowerPC
+=============================
+
+To install in /usr/local on MacOS systems, do "sudo make install" to
+gain root privileges.
+
+Note that GSL contains files with filenames of 32 characters or more.
+Therefore you need to be careful in unpacking the tar file, as some
+MacOS applications such as Stuffit Expander will truncate filenames to
+31 characters. Using GNU tar and gunzip directly is the safe way to
+unpack the distribution.
+
+There are problems with dynamic linker, so the library should be
+compiled with,
+
+ ./configure --disable-shared
+
+It has been reported that shared libraries can be built if MacOS X
+specific versions of libtool, automake and autoconf from
+http://fink.sourceforge.net/ are installed, and the GSL source is
+reconfigured from scratch (./autogen.sh; ./configure; make)
+
+To avoid warnings about long-double, use the flag
+
+ CFLAGS="-Wno-long-double ....(other options here)"
+
+in addition to the normal compilation options.
+
+The GCC 3.3 compiler shipped by Apple contains a bug which causes the
+wavelet tests to fail on "data untouched" tests at optimisation level
+-O2. You may be able work around this by compiling with CFLAGS="-O1
+..." instead.
+
+F J Frankin <MEP95JFF@sheffield.ac.uk> reported that some early
+versions of GCC-2.95 have a problem with long argument lists on PPC
+architecture, and this prevents GSL from compiling correctly (e.g. the
+test program in the blas directory gives a segmentation fault when
+run). This problem is fixed in more recent versions of GCC.
+
+
+Hints for Microsoft Windows
+===========================
+
+GSL should compile cleanly with GCC under Cygwin on Microsoft Windows.
+
+With Mingw/MSYS some floating point issues have been reported which
+cause failures in the monte/ test directory.
+
+Hints for OpenBSD
+=================
+
+As of July 2001 the OpenBSD log1p() function on i386 causes failures
+in the gsl complex tests. The configure script has been hardcoded to
+substitute gsl_log1p instead on OpenBSD. The log1p() bug has been
+reported and so may be fixed in future versions of OpenBSD.
+
+Hints for OS/2
+==============
+
+The configure script fails to detect the function 'isnan', leading to
+a slew of errors 'isnan redefined'.
+
+To work around this problem, run configure and edit the resulting
+config.h file to comment out the line which defines HAVE_ISINF.
+
+Hints for Solaris
+=================
+
+If you are using the Sun compilers then the library should be compiled
+with the Sun C compiler 'cc', not 'CC' which is the C++ compiler.
+
+The Sun compiler tools are stored in non-standard directories -- make
+sure that all the compiler and linker tools (cc, ar, ranlib, ld) are
+on the PATH. A typical PATH should include the directories
+/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb in that order.
+
+For example,
+
+ $ PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:$PATH
+ $ ./configure CC=cc CFLAGS=-O
+
+If you see configure output
+
+ checking for ar... :
+
+it means that 'ar' has not been found, and the library will fail to
+build.
+
+If you use the Sun compiler you should use the Sun linker and
+assembler. If you use GCC, you can use the GNU linker and assembler
+or the Sun linker and assembler.
+
+There may be some warnings about "end of loop code not reached". These
+can be ignored -- they come from the do { ... ; return ; } while(0)
+statement in the GSL_ERROR macro.
+
+ ------------------------------
+
+Further information on the standard GNU installation procedure
+==============================================================
+
+The sections below describe the general features of the standard GNU
+installation procedure.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. 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').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ 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 this package is:
+
+ 1. `cd' to the directory containing the package'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 a while. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 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.
+
+Compilers and Options
+=====================
+
+ Some systems require 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 on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+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'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+