Guile-GSL is a C/Scheme library extension for Guile, the GNU's Ubiquitous Intelligent Language for Extensions. It implements a binding to the GNU Scientific Library (GSL).
This page describes in detail how to install on a GNU+Linux system Guile-GSL and the libraries currently (Feb 11, 2007) required to plot math function graphs.
Supposing that our system has installed a basic GNU+Linux system (a Bourne shell like GNU Bash, the common command line utilities like tar and gzip, the X Window System) the installation sequence is: GSL, Guile, Tcl, Tk, BLT, GEE base library, GEE/Guile-GSL, GEE/Guile-TCL.
The GSL sources are available from the GNU distribution site, http://gnu.org/software/gsl. Once we have downloaded the archive it in a temporary directory:
$ cd /tmp; mkdir gsl; cd gsl $ wget http://ftp.gnu.org/gnu/gsl/gsl-1.8.tar.gz
we unpack it:
$ tar --extract --file=gsl-1.8.tar.gz --gzip --verbose $ cd gsl-1.8
then run the configuration and build it:
$ ./configure --disable-static --enable-shared $ make
we can optionally run the tests:
$ make check
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also install in a temporary directory:
$ (umask 0; make install DESTDIR=/tmp/gsl-bin)
take a look at it, then package the binary:
$ tar --directory=/tmp/gsl-bin --create --gzip \ --file=/tmp/gsl-bin-1.8.tar.gz .
switch profile to the superuser and install it:
$ tar --extract --gzip --file=/tmp/gsl-bin-1.8.tar.gz -v
The Guile sources are available from the GNU distribution site, http://gnu.org/software/guile. Once we have downloaded the archive it in a temporary directory:
$ cd /tmp; mkdir guile; cd guile $ wget http://ftp.gnu.org/pub/gnu/guile/guile-1.8.1.tar.gz
we unpack it:
$ tar --extract --file=guile-1.8.1.tar.gz --gzip --verbose $ cd guile-1.8.1
then run the configuration and build it:
$ ./configure --disable-static --enable-shared --with-threads $ make
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also install in a temporary directory:
$ (umask 0; make install DESTDIR=/tmp/guile-bin)
take a look at it, then package the binary:
$ tar --directory=/tmp/guile-bin --create --gzip \ --file=/tmp/guile-bin-1.8.1.tar.gz .
switch profile to the superuser and install it:
$ tar --extract --gzip --file=/tmp/gsl-bin-1.8.tar.gz -v
The Tcl sources are available from SourceForge. Once we have created a temporary directory:
$ cd /tmp; mkdir tcl; cd tcl
we can download the archive in it, let's say it is tcl8.4.14-src.tar.gz. We unpack it:
$ tar --extract --file=tcl8.4.14-src.tar.gz --gzip --verbose $ cd tcl8.4.14
then run the configuration and build it:
$ cd unix $ ./configure --disable-static --enable-shared \ --enable-man-symlinks --enable-man-compression --enable-man-suffix \ --enable-threads $ make
we can optionally run the tests:
$ make test
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also install in a temporary directory:
$ (umask 0; make install INSTALL_ROOT=/tmp/tcl-bin)
take a look at it, then package the binary:
$ tar --directory=/tmp/tcl-bin --create --gzip \ --file=/tmp/tcl-bin-8.4.14.tar.gz .
switch profile to the superuser and install it:
$ tar --extract --gzip --file=/tmp/tcl-bin-8.4.14.tar.gz -v
The Tk sources are available from SourceForge. Once we have created a temporary directory:
$ cd /tmp; mkdir tk; cd tk
we can download the archive in it, let's say it is
tk8.4.14-src.tar.gz. We unpack it:
$ tar --extract --file=tk8.4.14-src.tar.gz --gzip --verbose $ cd tk8.4.14
then run the configuration and build it:
$ cd unix $ ./configure --disable-static --enable-shared \ --enable-man-symlinks --enable-man-compression --enable-man-suffix \ --enable-threads $ make
we can optionally run the tests:
$ make test
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also install in a temporary directory:
$ (umask 0; make install INSTALL_ROOT=/tmp/tk-bin)
take a look at it, then package the binary:
$ tar --directory=/tmp/tk-bin --create --gzip \ --file=/tmp/tk-bin-8.4.14.tar.gz .
switch profile to the superuser and install it:
$ tar --extract --gzip --file=/tmp/tk-bin-8.4.14.tar.gz -v
The original BLT sources are available from SourceForge. Once we have created a temporary directory:
$ cd /tmp; mkdir blt; cd blt
we can download the archive in it, let's say it is BLT2.4z.tar.gz; we need also to download two patches blt2.4z-patch-1 and blt2.4z-patch-2. Alternatively we can download an already patched version from the download area of GEE, it should be blt2.4z-patched.tar.bz2.
We unpack the BLT archive:
$ tar --extract --file=blt2.4z-patched.tar.bz2 --bzip2 --verbose $ cd blt2.4z
then run the configuration and build it:
$ ./configure --disable-static --enable-shared $ make
The install to switch profile to the superuser and to do:
$ (umask 0; make install)
Unfortunately BLT does not support the DESTDIR variable neither the INSTALL_ROOT variable; to install into a temporary directory we have to mess with the prefix variable in the Makefile.
The GEE sources can be downloaded from the GNA! site. Once we have downloaded the archive it in a temporary directory:
$ cd /tmp; mkdir gee; cd gsl $ wget http://download.gna.org/gee/gee--alpha--0.3--patch-488.tar.bz2
we unpack it:
$ tar --extract --file=gee--alpha--0.3--patch-488.tar.bz2 --bzip2 --verbose $ cd gee--alpha--0.3
First we have to install the base library:
$ cd lib $ mkdir "=build" $ cd "=build" $ ./configure --disable-static --enable-shared $ make
we can optionally run the tests:
$ make test
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also build a temporary installation archive:
$ make bindist
take a look at the archive, which is named something like guile-gee_0.2.0_bin.tar.gz, then switch profile to the superuser and install it:
$ tar --extract --gzip --file=guile-gee_0.2.0_bin.tar.gz -v
To install the GSL binding, from the top of the GEE's source directory:
$ cd gsl $ mkdir "=build" $ cd "=build" $ ./configure --disable-static --enable-shared $ make
we can optionally run the tests:
$ make test
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also build a temporary installation archive:
$ make bindist
take a look at the archive, which is named something like guile-gsl_0.1.0_bin.tar.gz, then switch profile to the superuser and install it:
$ tar --extract --gzip --file=guile-gsl_0.1.0_bin.tar.gz -v
To install the Tcl binding, from the top of the GEE's source directory:
$ cd tcl $ mkdir "=build" $ cd "=build" $ ./configure --disable-static --enable-shared $ make
we can optionally run the tests:
$ make test
The basic installation procedure dictates to switch profile to the superuser and to do:
$ (umask 0; make install)
but we can also build a temporary installation archive:
$ make bindist
take a look at the archive, which is named something like guile-tcl_0.1.0_bin.tar.gz, then switch profile to the superuser and install it:
$ tar --extract --gzip --file=guile-gee_0.1.0_bin.tar.gz -v