Where the ml
environment module command is shown the previous dependencies
are meant to be made visible, usually through $LD_LIBRARY_PATH
variable or
similarly. Check README
files.
Also, edit --prefix
-es accordingly.
version="3.0.1"
mkdir -p $dir && cd $dir
wget -O libxc-$version.tar.gz "https://gitlab.com/libxc/libxc/-/archive/$version/libxc-$version.tar.gz"
tar -xzvf libxc-$version.tar.gz
ml load gcc openblas
cd libxc-$version
autoreconf --install # <- to bootstrap some autoconf macro
autoconf # <- generate `configure`
./configure --prefix=/usr/local/apps-gcc-8.2/libxc/$version/ \
--enable-fortran
make -j2
make check
make install
version="0.9.1"
mkdir -p $dir && cd $dir
wget "https://gitlab.com/siesta-project/libraries/libgridxc/-/archive/master/libgridxc-master.tar.gz"
tar -xzvf libgridxc-master.tar.gz
mv libgridxc-master libgridxc-$version
ml load gcc libxc/3.0.1
cd libgridxc-$version
./autogen.sh # <- not described in the docs!
mkdir -p build_serial && cd build_serial
sh ../configure --enable-multiconfig \
--with-mpi --with-libxc=$LIBXC_ROOT \
--prefix=/usr/local/apps-gcc-8.2/libgridxc_wlibxc3.0.1/$version/
make -j2
make check
make install
for this i checked gitlab’s siesta-project group for the last tagged release 1.5.4: https://gitlab.com/siesta-project/libraries/xmlf90/-/releases#xmlf90-1.5.4
version="1.5.4"
mkdir -p $dir && cd $dir
wget -o xmlf90-$version.tar.gz "https://launchpad.net/xmlf90/trunk/1.5/+download/xmlf90-$version.tar.gz"
tar -xzvf xmlf90-$version.tar.gz
ml load gcc
cd xmlf90-$version
./configure --prefix=/usr/local/apps-gcc-8.2/xmlf90/$version/
make -j2
make check
make install
version="1.1.8"
mkdir -p $dir && cd $dir
wget -O libpsml-$version.tar.gz "https://gitlab.com/siesta-project/libraries/libpsml/-/archive/libpsml-$version/libpsml-libpsml-$version.tar.gz"
tar -xzvf libpsml-$version.tar.gz
ml load gcc xmlf90
cd libpsml-libpsml-$version
autoreconf --install # <- to bootstrap some autoconf macro
autoconf # <- generate `configure`
./configure --prefix=/usr/local/apps-gcc-8.2/libpsml/$version/ \
--with-xmlf90=$XMLF90_ROOT
make -j2
make check
make install
To check that some of the deps we just built actually do work.
It should be able to generate PSML files too. https://departments.icmab.es/leem/siesta/Pseudopotentials/Code/downloads.html
mkdir -p $dir && cd $dir
wget https://departments.icmab.es/leem/siesta/Pseudopotentials/Code/atom-4.2.0.pdf
wget https://departments.icmab.es/leem/siesta/Pseudopotentials/Code/atom-4.2.7-100.tgz
tar -xzvf atom-4.2.7-100.tgz
cd atom-4.2.7-100
cat > arch.make << EOF
ARCH=linux-gfortran
#
include \$(XMLF90_ROOT)/share/org.siesta-project/xmlf90.mk
include \$(GRIDXC_ROOT)/share/org.siesta-project/gridxc_dp.mk
#
FFLAGS= -O2
FFLAGS_DEBUG= -O0 -g -fbacktrace
LDFLAGS=
RANLIB=echo
#
.F.o:
\$(FC) -c \$(FFLAGS) \$(INCFLAGS) \$(FPPFLAGS) \$<
.f.o:
\$(FC) -c \$(FFLAGS) \$(INCFLAGS) \$<
.F90.o:
\$(FC) -c \$(FFLAGS) \$(INCFLAGS) \$(FPPFLAGS) \$<
.f90.o:
\$(FC) -c \$(FFLAGS) \$(INCFLAGS) \$<
#
EOF
make
- I had to edit the default paths to .mk-files (and fix some permissions)
- In this setup
libxc
is linked dynamically. To execatm
I needml load libxc
first. - Take care when building with ~libxc v.>4.0
Interfaces change, and some software does not reflect it in time
(I had troubles with
ONCVPSP
pseudo generator, for example). I also had to pass newerlibxc
the--enable-shared
configuration directive, in order to allowlibgridxc
to link. Saving you time to fing explanation here: https://stackoverflow.com/questions/13812185/how-to-recompile-with-fpic Alternatively: is there any sense in makinglibxc
a static library?