This Python tool has been developed to automate the installation of libraries frequently used by HPC applications.
## Basic Usage
To install the library `<lib>` using compiler `<compiler>` and MPI `<mpi>` make sure to have a configuration file `<lib>.json` in the `config` directory and invoke the tool as follows:
The `config` directory contains various json files describing how to obtain and build the corresponding library. It must have the following structure (all keys are mandantory):
On startup, the installer tool will read the configuration files in `config` and add coreesponding options to the argument parser. In case `--<lib>-version` is not set, the default version from the json file is used.
### dependencies
Dependencies are used to determine the best installation order of selected librarie to satisfy all dependencies. Note that it is assumed that you supply needed dependencies via `LD_LIBRARY_PATH` in case they are not part of the current install.
Also note that `$PREFIX/lib` is automatically added to `LD_LIBRARY_PATH`
### download
Download command. This is being executed in a subshell. Make sure that it works in the shell used to start libinstaller.
The command may contain the variables `$VERSION` which will be replaced by the selected code version of the form `XXX.YYY.ZZZ` or `$VERSION_UNDERSCORE` which will be replaced by `XXX_YYY_ZZZ`.
The files will be downloaded to the `<src>`directory
### configure
Configure command. This is being executed in a subshell. Make sure that it works in the shell used to start libinstaller.
The variable `$PREFIX` will be replaced by the installation directory. The vairable `$SHARED` will be replaced by `--disable-shared` in case the respective option is set when invoking libinstaller.
### build
Build command. This is being executed in a subshell. Make sure that it works in the shell used to start libinstaller.
The variable `$BUILDTHREADS` will be replaced by the number of threads set when invoking libinstaller (`--threads`).
### install
Build command. This is being executed in a subshell. Make sure that it works in the shell used to start libinstaller.
The variable `$PREFIX` will be replaced by the installation directory.
### object files
The number of `*.o` files generated during compilation. It will be used to draw progress bars in case `--verbose` is not set.