diff --git a/.ci_support/linux_64_mpimpich.yaml b/.ci_support/linux_64_mpimpich.yaml
index e51ed00..13665e6 100644
--- a/.ci_support/linux_64_mpimpich.yaml
+++ b/.ci_support/linux_64_mpimpich.yaml
@@ -7,7 +7,7 @@ cdt_name:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
fortran_compiler:
diff --git a/.ci_support/linux_64_mpinompi.yaml b/.ci_support/linux_64_mpinompi.yaml
index 13d314f..8c18fce 100644
--- a/.ci_support/linux_64_mpinompi.yaml
+++ b/.ci_support/linux_64_mpinompi.yaml
@@ -7,7 +7,7 @@ cdt_name:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
fortran_compiler:
diff --git a/.ci_support/linux_64_mpiopenmpi.yaml b/.ci_support/linux_64_mpiopenmpi.yaml
index b6afefd..ca66028 100644
--- a/.ci_support/linux_64_mpiopenmpi.yaml
+++ b/.ci_support/linux_64_mpiopenmpi.yaml
@@ -7,7 +7,7 @@ cdt_name:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
fortran_compiler:
diff --git a/.ci_support/osx_64_mpimpich.yaml b/.ci_support/osx_64_mpimpich.yaml
index 8a4bb32..3c16177 100644
--- a/.ci_support/osx_64_mpimpich.yaml
+++ b/.ci_support/osx_64_mpimpich.yaml
@@ -7,7 +7,7 @@ c_compiler_version:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
fortran_compiler:
- gfortran
fortran_compiler_version:
diff --git a/.ci_support/osx_64_mpinompi.yaml b/.ci_support/osx_64_mpinompi.yaml
index 35de905..86277f4 100644
--- a/.ci_support/osx_64_mpinompi.yaml
+++ b/.ci_support/osx_64_mpinompi.yaml
@@ -7,7 +7,7 @@ c_compiler_version:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
fortran_compiler:
- gfortran
fortran_compiler_version:
diff --git a/.ci_support/osx_64_mpiopenmpi.yaml b/.ci_support/osx_64_mpiopenmpi.yaml
index 60a4d42..d73b766 100644
--- a/.ci_support/osx_64_mpiopenmpi.yaml
+++ b/.ci_support/osx_64_mpiopenmpi.yaml
@@ -7,7 +7,7 @@ c_compiler_version:
channel_sources:
- conda-forge
channel_targets:
-- conda-forge main
+- conda-forge siesta_rc
fortran_compiler:
- gfortran
fortran_compiler_version:
diff --git a/README.md b/README.md
index 1158a19..0690524 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
About siesta-feedstock
======================
-Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/feedstock-siesta-feedstock/blob/main/LICENSE.txt)
+Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/siesta-feedstock/blob/main/LICENSE.txt)
Home: https://gitlab.com/siesta-project
@@ -33,8 +33,8 @@ Current build status
-
-
+
+
@@ -42,43 +42,43 @@ Current build status
linux_64_mpimpich |
-
-
+
+
|
linux_64_mpinompi |
-
-
+
+
|
linux_64_mpiopenmpi |
-
-
+
+
|
osx_64_mpimpich |
-
-
+
+
|
osx_64_mpinompi |
-
-
+
+
|
osx_64_mpiopenmpi |
-
-
+
+
|
diff --git a/conda-forge.yml b/conda-forge.yml
index a90798d..4752e40 100644
--- a/conda-forge.yml
+++ b/conda-forge.yml
@@ -8,3 +8,8 @@ github:
tooling_branch_name: main
conda_build:
pkg_format: '2'
+bot:
+ abi_migration_branches:
+ - main
+ - v4.1.x
+ # no v4.0.x
diff --git a/recipe/arch.make.MPI b/recipe/arch.make.MPI
deleted file mode 100644
index 5bd8d81..0000000
--- a/recipe/arch.make.MPI
+++ /dev/null
@@ -1,57 +0,0 @@
-.SUFFIXES:
-.SUFFIXES: .f .F .o .c .a .f90 .F90
-
-SIESTA_ARCH = unknown
-
-CC = %CC%
-FC = mpifort
-FC_SERIAL = %FC%
-FPP := $(FC_SERIAL) -E -P -x c
-
-CFLAGS = %CFLAGS%
-FFLAGS = %FFLAGS%
-
-AR = %AR%
-RANLIB = %RANLIB%
-
-SYS = nag
-
-SP_KIND = 4
-DP_KIND = 8
-KINDS = $(SP_KIND) $(DP_KIND)
-
-COMP_LIBS =
-
-FPPFLAGS = -DFC_HAVE_ABORT -DCDF -DMPI -DSIESTA__MRRR
-
-LIBS = -lscalapack -llapack -lblas
-LIBS += -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz
-
-INCFLAGS = %INCFLAGS%
-
-LDFLAGS = %LDFLAGS%
-
-MPI_INTERFACE=libmpi_f90.a
-MPI_INCLUDE=.
-
-# Dependency rules ---------
-
-# -g -O1 # your appropriate flags here...
-FFLAGS_DEBUG = %FFLAGS_DEBUG%
-
-# The atom.f code is very vulnerable. Particularly the Intel compiler
-# will make an erroneous compilation of atom.f with high optimization
-# levels.
-atom.o: atom.F
- $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
-
-.c.o:
- $(CC) -c $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $<
-.F.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
-.F90.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
-.f.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f) $<
-.f90.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90) $<
diff --git a/recipe/arch.make.SEQ b/recipe/arch.make.SEQ
deleted file mode 100644
index 07938f3..0000000
--- a/recipe/arch.make.SEQ
+++ /dev/null
@@ -1,54 +0,0 @@
-.SUFFIXES:
-.SUFFIXES: .f .F .o .c .a .f90 .F90
-
-SIESTA_ARCH = unknown
-
-CC = %CC%
-FC = %FC%
-FC_SERIAL = %FC%
-FPP := $(FC_SERIAL) -E -P -x c
-
-CFLAGS = %CFLAGS%
-FFLAGS = %FFLAGS%
-
-AR = %AR%
-RANLIB = %RANLIB%
-
-SYS = nag
-
-SP_KIND = 4
-DP_KIND = 8
-KINDS = $(SP_KIND) $(DP_KIND)
-
-COMP_LIBS =
-
-FPPFLAGS = -DFC_HAVE_ABORT -DCDF
-
-LIBS = -llapack -lblas
-LIBS += -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz
-
-INCFLAGS = %INCFLAGS%
-
-LDFLAGS = %LDFLAGS%
-
-# Dependency rules ---------
-
-# -g -O1 # your appropriate flags here...
-FFLAGS_DEBUG = %FFLAGS_DEBUG%
-
-# The atom.f code is very vulnerable. Particularly the Intel compiler
-# will make an erroneous compilation of atom.f with high optimization
-# levels.
-atom.o: atom.F
- $(FC) -c $(FFLAGS_DEBUG) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
-
-.c.o:
- $(CC) -c $(CFLAGS) $(INCFLAGS) $(CPPFLAGS) $<
-.F.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F) $<
-.F90.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
-.f.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f) $<
-.f90.o:
- $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90) $<
diff --git a/recipe/build.sh b/recipe/build.sh
index ddb7e31..1ea4654 100644
--- a/recipe/build.sh
+++ b/recipe/build.sh
@@ -3,21 +3,15 @@
# error on faulty execution
set -ex
-# Remove __FILE__ lines in utils file.
-sed -i -e "s:__FILE__:'fdf/utils.F90':g" Src/fdf/utils.F90
-
echo "Runing with mpi=$mpi and blas=$blas_impl"
echo "Build on target_platform=$target_platform"
echo "Build on uname=$(uname)"
-# Use the default utilities, for now.
-cd Obj
-../Src/obj_setup.sh
+# OpenMPI has the *.mod files in /lib
+export FFLAGS="$FFLAGS -I$PREFIX/lib"
#if [[ "$target_platform" == linux-* || "$target_platform" == "osx-arm64" ]]; then
# Workaround for https://github.com/conda-forge/scalapack-feedstock/pull/30#issuecomment-1061196317
- export FFLAGS="$FFLAGS -fallow-argument-mismatch"
- export DEBUG_FFLAGS="$DEBUG_FFLAGS -fallow-argument-mismatch"
export OMPI_FCFLAGS="$FFLAGS"
#fi
@@ -36,123 +30,76 @@ if [[ "$(uname)" == "Darwin" ]]; then
# (for architecture x86_64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
export SONAME="-Wl,-install_name,@rpath/"
export LDFLAGS="${LDFLAGS} -headerpad_max_install_names"
+
+ # Currently there is a problem with the compiler on Mac
+ # The version-info will be created in a wrong setup...
+ # So we have to do something else...
+ # This will just mean we won't parse the flags etc.
+ # Should not be a problem.
+ sed -i -e 's:@:#:g' Src/version-info-template.inc
else
export SONAME="-Wl,-soname,"
fi
if [[ "$mpi" != "nompi" ]]; then
- # This is not necessary as the arch.make files
- # handles this correctly
echo "passing on setting CC and FC for non-mpi"
- #export CC=mpicc
- #export FC=mpifort
+ export CC=mpicc
+ export FC=mpifort
fi
# Get the version
echo "CC version string: $($CC --version | head -1)"
if [[ -n "$GCC_AR" ]]; then
- repl="$repl;s:%AR%:$GCC_AR:g"
-else
- repl="$repl;s:%AR%:$AR:g"
+ export AR=$GCC_AR
fi
if [[ -n "$GCC_RANLIB" ]]; then
- repl="$repl;s:%RANLIB%:$GCC_RANLIB:g"
-else
- repl="$repl;s:%RANLIB%:$RANLIB:g"
+ export RANLIB=$GCC_RANLIB
fi
-repl="$repl;s:%CC%:$CC:g"
-repl="$repl;s:%FC%:$FC:g"
-# No OpenMP!
-repl="$repl;s:%CFLAGS%:${CFLAGS//-fopenmp/}:g"
-repl="$repl;s:%FFLAGS%:${FFLAGS//-fopenmp/}:g"
-repl="$repl;s:%FFLAGS_DEBUG%:${DEBUG_FFLAGS//-fopenmp/}:g"
-repl="$repl;s:%INCFLAGS%:-I$PREFIX/include:g"
-repl="$repl;s:%LDFLAGS%:-L$PREFIX/lib $LDFLAGS:g"
+export LDFLAGS="-L$PREFIX/lib $LDFLAGS"
if [[ "$mpi" == "nompi" ]]; then
- sed -e "$repl" $RECIPE_DIR/arch.make.SEQ > arch.make
+ MPI=OFF
else
- sed -e "$repl" $RECIPE_DIR/arch.make.MPI > arch.make
+ MPI=ON
fi
-echo "<<< arch.make >>>"
-cat arch.make
-echo "<<< arch.make done >>>"
-
-function mkcp {
- local target=$1
- shift
- local exe=$target
- if [ $# -ge 1 ]; then
- exe=$1
- shift
- fi
- echo "RUNNING: make $target"
- make $target
- cp -av $target $PREFIX/bin/$exe
- make clean
-}
-
-# First make a few of the libraries to check that they work!
-make libxmlparser.a
-# Try and build FoX to catch any debugs
-# make FoX/.config || cat FoX/config.log
-
-ls -l
-make version
-cat compinfo.F90
-mkcp siesta
-make version
-mkcp transiesta
-
-cd ../Util/Bands
-mkcp eigfat2plot
-mkcp gnubands
-
-cd ../COOP
-mkcp mprop
-mkcp fat
-
-cd ../Denchar/Src
-mkcp denchar
-
-cd ../../Eig2DOS
-mkcp Eig2DOS
-
-# Apparently the NetCDF module can *only* be found in Siesta compilation
-# ???
-#cd ../Gen-basis
-# mkcp gen-basis
-# mkcp ioncat
-
-cd ../Grid
-mkcp grid2cube
-# mkcp cdf2xsf
-# mkcp cdf2grid
-mkcp grid_rotate
-mkcp grid_supercell
-
-cd ../Optical
-mkcp optical
-mkcp optical_input
-
-cd ../TBTrans
-mkcp tbtrans tbtrans_old
-cd ../TBTrans_rep
-mkcp tbtrans
-
-cd ../Vibra/Src
-mkcp fcbuild
-mkcp vibra
-
-cd ../../VCA
-mkcp mixps
-mkcp fractional
-
-cd ../WFS
-mkcp readwf
-mkcp readwfx
-mkcp info_wfsx
-mkcp wfs2wfsx
-mkcp wfsx2wfs
-# mkcp wfsnc2fsx
+
+cmake_opts=(
+ # Add NetCDF
+ "-DWITH_LIBXC=on"
+ "-DWITH_NCDF=on"
+
+ # Disable flook
+ "-DWITH_FLOOK=off"
+
+ # MPI
+ "-DWITH_MPI=${MPI}"
+
+ # We will fetch the compatible versions
+ "-DLIBFDF_FIND_METHOD=fetch"
+ "-DLIBGRIDXC_FIND_METHOD=fetch"
+ "-DLIBPSML_FIND_METHOD=fetch"
+ "-DXMLF90_FIND_METHOD=fetch"
+
+ "-DCMAKE_BUILD_TYPE=Release"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+
+ # Request that the makefile is verbose
+ "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
+
+ # I don't think these are required.
+ # They are intended to omit linking to direct
+ "-DCMAKE_FIND_FRAMEWORK=NEVER"
+ "-DCMAKE_FIND_APPBUNDLE=NEVER"
+
+ # To not clutter things
+ "-DCMAKE_INSTALL_PREFIX=$PREFIX"
+)
+
+cmake -S. -Bobj_cmake "${cmake_opts[@]}"
+
+echo ">>>>>>>"
+echo "Showing version-info.inc: "
+cat obj_cmake/Src/version-info.inc
+echo ">>>>>>>"
+cmake --build obj_cmake --target install
diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml
index b883e82..8dfeb13 100644
--- a/recipe/conda_build_config.yaml
+++ b/recipe/conda_build_config.yaml
@@ -2,3 +2,7 @@ mpi:
- nompi
- mpich # [unix]
- openmpi # [unix]
+
+channel_targets:
+ # Remove this for proper releases
+ - conda-forge siesta_rc
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 5e5c1af..387df05 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,22 +1,20 @@
{% set name = "siesta" %}
-{% set siesta_version = "4.0.2" %}
-{% set version = siesta_version.split("-b")[0] %}
-{% set sha256 = "04300ba77a32d0ba2844d704e1c404d1417bd8c1ab76dba9d19f074076d9bc18" %}
+{% set siesta_version = "5.0.0-beta1" %}
+# This changes the X.Y.Z-betaW to X.Y.ZrcW
+{% set version = "rc".join(siesta_version.replace("beta", "b").split("-b")) %}
+{% set sha256 = "fdc03d224b07c55cfad629958901e7008bc3a1973c3ee7749bc2310671f49ac2" %}
package:
name: {{ name }}
version: {{ version }}
source:
- fn: {{ name }}-v{{ siesta_version }}.tar.bz2
- url: https://gitlab.com/siesta-project/{{ name }}/-/archive/v{{ siesta_version }}/siesta-v{{ siesta_version }}.tar.bz2
+ fn: {{ name }}-{{ siesta_version }}.tar.gz
+ url: https://gitlab.com/siesta-project/siesta/-/releases/{{ siesta_version }}/downloads/siesta-{{ siesta_version }}.tar.gz
sha256: {{ sha256 }}
- patches:
- # make version.o a phony target
- - patches/makefile_conda-clean.patch
# Default build version to be stepped with every new build!
-{% set build = 13 %}
+{% set build = 0 %}
# Define build matrix for MPI vs. non-mpi
## ensure mpi is defined (needed for conda-smithy recipe-lint)
@@ -42,13 +40,16 @@ requirements:
build:
- {{ compiler('fortran') }}
- {{ compiler('c') }}
- - openmpi-mpifort # [mpi == 'openmpi']
- make # [not win]
+ - git
+ - cmake
+ - pkg-config
host:
- libblas
- liblapack
- {{ mpi }} # [mpi != 'nompi']
- scalapack # [mpi != 'nompi']
+ - libxc >6.0
# need to list hdf5, libnetcdf and netcdf-fortran twice to get version
# pinning from conda_build_config and build pinning from {{ mpi_prefix }}
- hdf5
@@ -60,6 +61,7 @@ requirements:
run:
- {{ mpi }} # [mpi != 'nompi']
- scalapack # [mpi != 'nompi']
+ - libxc >6.0
- hdf5 * {{ mpi_prefix }}_*
- libnetcdf * {{ mpi_prefix }}_*
- netcdf-fortran * {{ mpi_prefix }}_*
diff --git a/recipe/patches/makefile_conda-clean.patch b/recipe/patches/makefile_conda-clean.patch
deleted file mode 100644
index f19ab51..0000000
--- a/recipe/patches/makefile_conda-clean.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/Src/Makefile b/Src/Makefile
-index a61b65a8..127d2c9c 100644
---- a/Src/Makefile
-+++ b/Src/Makefile
-@@ -290,18 +290,25 @@ ifeq ($(COMPILER_VERSION),)
- COMPILER_VERSION := Unknown version
- endif
-
-+.PHONY: version version.o
-+version.o: version
- version: version.F90
- @echo
- @echo "==> Incorporating information about present compilation (compiler and flags)"
-- @sed "s'SIESTA_ARCH'${SIESTA_ARCH}'g;s'FFLAGS'${FC} ${FFLAGS}'g;\
-+ @sed "s'SIESTA_ARCH'${SIESTA_ARCH}'g;s'FFLAGS'$(shell basename ${FC}) ${FFLAGS}'g;\
- s^COMPILER_VERSION^$(COMPILER_VERSION)^;\
- s'SIESTA_VERSION'$$(cat ${ tmp.F90
-+ s'FPPFLAGS'$(FPPFLAGS) $(DEFS)'g;s' -fdebug-prefix-map=[^[:space:]\"]*''g;\
-+ s'-isystem [^[:space:]\"]*''g" $< > tmp.F90
-+ @echo "after sed"
-+ @cat tmp.F90
- @awk '{if (length>80) { cur=78; \
- printf "%s&\n",substr($$0,0,78); \
- while(length-cur>78){ cur=cur+76 ; \
- printf "&%s&\n",substr($$0,cur-76,76) \
- } printf "&%s\n",substr($$0,cur)} else { print $$0 }}' tmp.F90 > compinfo.F90
-+ @echo "after awk"
-+ @cat compinfo.F90
- @($(MAKE) "FPPFLAGS=$(FPPFLAGS)" "DEFS=$(DEFS)" compinfo.o)
- @mv compinfo.o version.o
- @echo
diff --git a/recipe/run_test.sh b/recipe/run_test.sh
index 5a92570..f3b6014 100644
--- a/recipe/run_test.sh
+++ b/recipe/run_test.sh
@@ -4,13 +4,13 @@ set -e
echo "Running tests"
ls -l
-for cmd in siesta transiesta tbtrans \
+for cmd in siesta tbtrans phtrans \
eigfat2plot gnubands mprop fat \
denchar Eig2DOS \
grid2cube grid_rotate grid_supercell \
fcbuild vibra \
mixps fractional \
- readwf readwfx info_wfsx wfs2wfsx wfsx2wfs
+ readwf readwfx wfs2wfsx wfsx2wfs
do
echo "checking cmd = $cmd"
command -v $cmd
@@ -23,21 +23,25 @@ export OMPI_MCA_plm=isolated
export OMPI_MCA_btl_vader_single_copy_mechanism=none
export OMPI_MCA_rmaps_base_oversubscribe=yes
-# Run H2O system
-echo "Running h2o test"
-mkdir h2o
+# Run CG system
+echo "Running CG test"
+mkdir cg
-pushd h2o
-cp ../Tests/Pseudos/H.psf .
-cp ../Tests/Pseudos/O.psf .
-cp ../Tests/h2o/h2o.fdf .
+pushd cg
+
+cp -av ../Tests/08.GeometryOptimization/basejob.fdf cg.fdf
+echo "SystemLabel cg" >> cg.fdf
+echo "MD.TypeOfRun cg" >> cg.fdf
+cp -av ../Tests/Pseudos/Mg.psf .
+cp -av ../Tests/Pseudos/C.psf .
+cp -av ../Tests/Pseudos/O.psf .
if [[ "$mpi" == "nompi" ]]; then
- siesta < h2o.fdf > h2o.out
+ siesta cg.fdf > cg.out
else
- mpirun siesta < h2o.fdf > h2o.out
+ mpirun siesta cg.fdf > cg.out
fi
-echo "TEST START : h2o"
-cat h2o.out
-echo "TEST END : h2o"
+echo "TEST START : cg"
+cat cg.out
+echo "TEST END : cg"
popd
|