diff --git a/README.rst b/README.rst index 39c18294..2ce0e3e5 100644 --- a/README.rst +++ b/README.rst @@ -11,8 +11,8 @@ robust. Make sure, you check results as careful as possible. Use at your own risk! -Installing -========== +Installation +============ |build status| @@ -30,16 +30,42 @@ Prerequisites * libXC library with f03 interface (version >=6.0.0) -Building the code ------------------ +Obtaining via Conda +------------------- + +The preferred way of obtaining SkProgs is to install it via the conda package +management framework using `Miniconda +`_ or `Anaconda +`_. Make sure to add/enable the +``conda-forge`` channel in order to be able to access SkProgs:: + + conda config --add channels conda-forge + conda config --set channel_priority strict + +We recommend to set up a dedicated conda environment and to use the +`mamba solver `_ :: + + conda create --name skprogs + conda activate skprogs + conda install conda-libmamba-solver + conda config --set solver libmamba + +to install the latest stable release of SkProgs (Fortran and Python +components):: + + mamba install skprogs skprogs-python + + +Building from source +-------------------- Follow the usual CMake build workflow: * Configure the project, specify your compilers (e.g. ``gfortran``), - the install location (e.g. ``$HOME/opt/skprogs``) and the build directory - (e.g. ``_build``):: + the install location (i.e. path stored in ``YOUR_SKPROGS_INSTALL_FOLDER``, + e.g. ``$HOME/opt/skprogs``) and the build directory (e.g. ``_build``):: - FC=gfortran cmake -DCMAKE_INSTALL_PREFIX=$HOME/opt/skprogs -B _build . + FC=gfortran cmake -DCMAKE_INSTALL_PREFIX=YOUR_SKPROGS_INSTALL_FOLDER -B _build . If libXC is installed in a non-standard location, you may need to specify either the ``CMAKE_PREFIX_PATH`` environment variable (if libXC was built with @@ -65,6 +91,39 @@ Follow the usual CMake build workflow: cmake --install _build +Building libXC from source +-------------------------- + +Follow the usual CMake build workflow: + +* Clone the official libXC repository and checkout the latest release tag, e.g. + ``6.2.2``:: + + git clone https://gitlab.com/libxc/libxc.git libxc + cd libxc/ + git checkout 6.2.2 + +* Configure the project, specify your compilers (e.g. ``gfortran`` and ``gcc``), + the install location (i.e. path stored in ``YOUR_LIBXC_INSTALL_FOLDER``, e.g. + ``$HOME/opt/libxc``) and the build directory (e.g. ``_build``):: + + FC=gfortran CC=gcc cmake -DENABLE_FORTRAN=True -DCMAKE_INSTALL_PREFIX=YOUR_LIBXC_INSTALL_FOLDER -B _build . + +* If the configuration was successful, build the code :: + + cmake --build _build -- -j + +* After successful build, you should test the code by running :: + + pushd _build + ctest -j + popd + +* If the tests were successful, install the package via :: + + cmake --install _build + + Advanced build configuration ============================ @@ -85,7 +144,7 @@ variable. If you want to load an external toolchain file instead of one from the source tree, you can specify the file path with the ``-DTOOLCHAIN_FILE`` option :: - -DTOOLCHAIN_FILE=/some/path/myintel.cmake + -DTOOLCHAIN_FILE=/path/to/myintel.cmake or with the ``SKPROGS_TOOLCHAIN_FILE`` environment variable. @@ -101,9 +160,10 @@ Generating SK-files The basic steps of generating the electronic part of the SK-tables are as follows: -* Initialize the necessary environment variables by sourceing the - ``skprogs-activate.sh`` script (provided you have BASH or compatible shell, - otherwise inspect the script and set up the environment variables manually):: +* If you have build SkProgs from source, initialize the necessary environment + variables by sourceing the ``skprogs-activate.sh`` script (provided you have + BASH or a compatible shell, otherwise inspect the script and set up the + environment variables manually):: source /bin/skprogs-activate.sh