Skip to content

reinh-bader/fgsl

Repository files navigation

This is release 1.6.0 of the Fortran interface 
to the GNU Scientific Library. 
It is based on version 2.7 of GSL, and should not be used with 
earlier GSL releases.

Please use the release 1.0.0 in combination with GSL 1.x
Please use the release 1.1.0 in combination with GSL 2.1 or 2.2.1
Please use the release 1.2.0 in combination with GSL 2.3
Please use the release 1.3.0 in combination with GSL 2.4
Please use the release 1.4.0 in combination with GSL 2.5
Please use the release 1.5.0 in combination with GSL 2.6

Please consult the NEWS file for a change log.

License:
~~~~~~~~

FGSL is released under Version 2 or later of the GPL.

Installation procedure:
~~~~~~~~~~~~~~~~~~~~~~~

(A) prerequisites:

 1. An installation of GSL libraries and include files.
    Note that newer distributions may put libraries and 
    includes into different packages e.g., gsl and gsl-devel.
    For building FGSL, both must be installed.
 2. The ANSI C compiler used to build the GSL installation
 3. A Fortran compiler that supports C interop.

(B) autoconf setup:
This section applies only if you have downloaded the github
repository. Use of autoconf version 2.69 or higher and m4 1.4.16 or 
higher is recommended. Generate the configure script with
mkdir m4
autoreconf -i
After updating the same repository it may be necessary to issue
autoreconf
(without an additional option)

(C) build procedure:
this has changed due to introduction of an autoconf based system
(thanks to Tom Schoonjans for contributing this)

export FC=<fortran compiler command>
export FCFLAGS=<additional Fortran flags>
export gsl_LIBS=<gsl library link line>
export PKG_CONFIG_PATH=<lib/pkgconfig directory in which gsl.pc resides>
./configure

    Furthermore, the configure script allows the user to enable several
    options, such as --prefix=<my_installation_location>

    For a list of all available options run:
    ./configure --help

    NOTES: 
    * for supporting different compilers with a single GSL 
      installation it is recommended to specify the following

      ./configure --prefix=<path to gsl install> \
                  --libdir=<path to gsl install>/lib/$FC \
                  --includedir=<path to gsl install>/include/$FC

    * path names containing blanks are not supported.
  

make
    Builds the module information file and static as well
    as shared libraries.
    Testing can be performed by doing

make check
    This runs a number of tests. Please check for failures and
    report to the indicated mail address.    
    For a debug version of the library using a debug build of GSL
    is recommended. Furthermore, if the GSL installation contains 
    shared libraries, you may need add an entry to LD_LIBRARY_PATH
    pointing to the lib subdirectory of the GSL installation before
    running the tests. If you use GSL static libraries, these 
    probably require to be built with -fPIC, otherwise libtool
    will fail to link your executables.

make install
    this installs the library as well as the documentation into 
    /usr/local or, if specified, the prefix path. 

make dist (or make distcheck)

    Generate distribution tarballs. The latter is preferred (but it 
    takes much longer), since it will also make sure everything builds 
    correctly and the examples run, as well as verify if no files are 
    left after make clean and make uninstall.


(D) usage:

It is recommended that you obtain the necessary flags to compile with FGSL support
through pkg-config:

$F90 -o myprog.exe $(pkg-config --cflags fgsl) myprog.f90 \
	$(pkg-config --libs fgsl)

Alternatively, libtool can also be used to link the executables.

Reporting Bugs etc.
~~~~~~~~~~~~~~~~~~~

Reporting of bugs and suggestions for extensions should be submitted by 
opening an issue on Github.

Releases:

  * 0.5: End of March, 2007 (revision 1636)
  * 0.6: End of April, 2007 (revision 1680)
  * 0.7: End of July, 2007 (revision 1809)
  * 0.8: Early October, 2007 (revision 1940)
  * 0.8.1: Early April, 2008 (revision 2282) 
  * 0.9: End of August, 2008 (revision 2578)
  * 0.9.1 Early September, 2009 (revision 3355)
  * 0.9.2 September 22, 2009 (revision 3380)
  * 0.9.3 May 01, 2010 (revision 4123)
  * 0.9.4 May 31, 2011 (revision 5233)
  --- Migrated to Sourceforge ---
  * 1.0.0: February 11, 2014 (revision 34)
  --- Migrated to Github ---
  * 1.1.0: February, 2016 
  * 1.2.0: January, 2017
  * 1.3.0: August, 2019
  * 1.4.0: March, 2021
  * 1.5.0: July, 2021
  * 1.6.0: March, 2024