mirror of https://github.com/abinit/abinit.git
121 lines
3.6 KiB
Plaintext
121 lines
3.6 KiB
Plaintext
Packaging Abinit
|
|
================
|
|
|
|
Which versions may be packaged?
|
|
-------------------------------
|
|
|
|
Abinit uses a x.y.z version numbering scheme, with the following
|
|
meanings:
|
|
|
|
* x: major version number, changes around every 5 years
|
|
* y: minor version number
|
|
+---> even values : production releases
|
|
+---> odd values : development releases
|
|
* z: patch level, usually between 0 and 3
|
|
|
|
Development releases should not be packaged.
|
|
|
|
|
|
|
|
External packages on which Abinit is dependent
|
|
----------------------------------------------
|
|
|
|
Abinit depends on several other packages:
|
|
|
|
* BLAS (mandatory)
|
|
* LAPACK (mandatory)
|
|
* NetCDF (mandatory)
|
|
* LibXC (mandatory)
|
|
* AtomPAW (may safely be disabled)
|
|
* BigDFT (may safely be disabled)
|
|
* Wannier90 (recommended)
|
|
|
|
It is possible to build them within Abinit, by using the corresponding
|
|
--with-(dft|linalg|trio)-flavor flags of the configure script. In this
|
|
case their source tarballs will be downloaded from their home pages or
|
|
the Abinit website, and stored into ~/.abinit/tarballs in order to avoid
|
|
multiple downloads, unless you use the --with-fallbacks-tardir option of
|
|
configure.
|
|
|
|
The best way to deal with external packages is however to make use of
|
|
pre-compiled versions already available on your system. In this case you
|
|
may use the --disable-fallbacks option of configure, in conjunction with
|
|
the following options:
|
|
|
|
* --with-*-bins, for the executables;
|
|
* --with-*-incs, for the C headers and Fortran modules;
|
|
* --with-*-libs, for the libraries.
|
|
|
|
Please note that "make -j<n>" will work only if you use externally
|
|
compiled packages. Having external BLAS, LAPACK, and NetCDF libraries
|
|
may nonetheless be sufficient.
|
|
|
|
|
|
|
|
Other external packages
|
|
-----------------------
|
|
|
|
Abinit may use the following other packages:
|
|
|
|
* FFTW3;
|
|
* ScaLAPACK.
|
|
|
|
|
|
|
|
Building Abinit
|
|
---------------
|
|
|
|
The configure script of Abinit provides many options, in order to keep
|
|
manual adjustments of the environment variables at the minimum. It is
|
|
also possible to store the options in a config file (see
|
|
~abinit/doc/build/config-template.ac9 for details), in order to facilitate
|
|
the reuse of platform-specific options. When packaging Abinit you will
|
|
likely want to disable this mechanism, by using the
|
|
--disable-config-file option of configure, or provide your own version
|
|
through the --with-config-file option.
|
|
|
|
Build flags are managed so that one can tune separately:
|
|
|
|
* debug flags (--with-*-dbgflags options);
|
|
* optimization flags (--with-*-optflags options);
|
|
* hints necessary to have the compilers behaving properly
|
|
(--enable-hints option).
|
|
|
|
It is however possible to bypass this mechanism by manually providing
|
|
CFLAGS, CXXFLAGS, and FCFLAGS, which, when set, will systematically
|
|
override the build system settings.
|
|
|
|
|
|
|
|
Testing Abinit
|
|
--------------
|
|
|
|
At present 'make check' runs the whole serial part of the Abinit test
|
|
suite, comprising more than 600 tests, which can at times prove quite
|
|
computer-intensive. We have started to work on making a reduced
|
|
selection of the most frequently failing tests, that would be more
|
|
suitable for packaging.
|
|
|
|
Abinit does not yet provide unit tests. A partial coverage of the code
|
|
at this level will be provided in the future.
|
|
|
|
|
|
|
|
Installing Abinit
|
|
-----------------
|
|
|
|
Abinit now installs in a FHS-compliant way, hence there should not be
|
|
any particular issue at the packaging level. It currently installs the
|
|
main programs, the documentation, and the test suite (in
|
|
<prefix>/share/abinit). Manpages will come as well at some point in the
|
|
future (help is gladly welcome).
|
|
|
|
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
Please contact Yann Pouillon <yann.pouillon@ehu.es> should you encounter
|
|
any important issue.
|
|
|