This is an old revision of the document!
Configuring feature triggers
The capabilities of Abinit can be enhanced by the use of optional external packages. The corresponding options of configure all follow the same scheme:
- enable_package, to trigger the detection and build of the corresponding feature;
- with_package, to specify the install prefix of a package;
- with_package_bins, to specify where to look for the executables of a package (when applies);
- with_package_incs, to specify include flags when compiling code that uses the package (when applies);
- with_package_libs, to specify package libraries to link the code with (when applies).
In each of the previous items, package will be replaced by the names listed below. Please note that the use of with_package is incompatible with the other with_* options, since it defines the values specified by these options in a possibly conflicting way. If you try to use both schemes, configure will fail and ask you to choose only one of them.
The with_package option expects a directory as argument. For example, if you specify:
with_fox="/path/to/fox"
, the configure script will look for:
- binaries in /path/to/fox/bin;
- include files in /path/to/fox/include;
- libraries in /path/to/fox/lib and /path/to/fox/lib64.
The following table summarizes the available optional features of Abinit. To enable them, you will have to make sure that the corresponding external dependencies of Abinit are correctly installed on your system before configuring Abinit.
Package | Status | Description |
---|---|---|
BigDFT | Development | Wavelets for low-dimensional systems |
ETSF_IO | Mature | Platform-independent data exchange |
FoX | Mature | Fortran XML I/O |
Libpspio | Experimental | Reading of atomic data in many formats |
LibXC | Mature | More than 300 exchange-correlation functionals |
LibYAML | Experimental | Fortran YAML I/O |
Wannier90 | Mature | Maximally-Localized Wannier Functions (MLWFs) |
The following table indicates which options are allowed for each package and whether it is enabled by default. For purely optional packages, the default is to disable them, whereas packages transitioning from optional to mandatory are usually enabled by default. In the following, to determine the names of the options, just replace the stars by the corresponding package IDs.
Package ID | Default | with_* | with_*_bins | with_*_incs | with_*_libs |
---|---|---|---|---|---|
bigdft | Disabled | Yes | No | Yes | Yes |
etsf_io | Disabled | Yes | No | Yes | Yes |
fox | Disabled | Yes | No | Yes | Yes |
libpspio | Disabled | Yes | No | Yes | Yes |
libxc | Enabled | Yes | No | Yes | Yes |
libyaml | Disabled | Yes | No | Yes | Yes |
wannier90 | Disabled | Yes | Yes | Yes | Yes |
For instance, LibXC support is enabled by default, and there are with_libxc, with_libxc_incs, and with_libxc_libs options, but there is no with_libxc_bins option.
All these options cen be overridden by with_extdeps_prefix, which tells the configure script that all external dependencies have been installed in the same place. This option is mutually exclusive with the use of any other with_* option for optional features. If you decide to use it, it must be the only one.