# Building of Oak Leaf library

Oak Leaf is implemented as a software library, an independent unit for building of a complete executable program.

## Prerequisites

Building of Oak Leaf depends on a modern Fortran 2008+ compiler, the development platform is gfortran. The package routines calls Minpack library.

## Getting sources

Oak Leaf is available as a source code; there are two alternatives for build.

The canonical way is based on a prepared source package, the version 0.0.7 is an illustration:

        $ wget ftp://integral.physics.muni.cz/pub/oakleaf/oakleaf-0.0.7.tar.gz
        $ tar zxf oakleaf-0.0.7.tar.gz

An alternative approach is to clone of development Mercurial repository, and to bootstrap of Autotools:

        $ hg clone http://integral.physics.muni.cz/hg/oakleaf/
        $ autoreconf -i

Both the alternatives has certain benefits and disadvantages. The canonical way is easy and needs no additional software tools, which makes it attractive for users. Mercurial way requires development environment, but more recent code is available.

## Source package build

Oak Leaf is build by the standard procedure:

        $ ./configure
        $ make
        # make install    (as root)

The library can be un-installed (if the build directory still exists) by command

        # make uninstall    (as root)

## Package smoking tests

Oak Leaf package has included verification tests. Tests of very basic level can be executed as:

        $ make check

While advanced testing, under high voltage, is performed by

        $ export VOLTAGE=high
        $ make check

## Packages for GNU/Debian and Ubuntu

Oak Leaf is prepackaged for selected GNU/Linux distributions. They can be directly downloaded, or the repositories can be added to software managers by adding a suitable line from the list below to `/etc/apt/sources.list`:

        # Ubuntu 16.04
        deb http://munipack.physics.muni.cz/ubuntu/xenial xenial main

        # Ubuntu 18.04
        deb http://munipack.physics.muni.cz/ubuntu/bionic bionic main

        # Debian stable
        deb http://munipack.physics.muni.cz/devel/ stable main

GPG key needs to be imported initially:

        $ wget -O - http://integral.physics.muni.cz/~hroch/hroch@physics.muni.cz.gpg.key
      sudo apt-key add -

The installation itself is straightforward ([sudo] for Ubuntu):

        # [sudo] apt-get update
        # [sudo] apt-get install liboakleaf0 liboakleaf-dev liboakleaf-doc