Fixed compilation of quantum-espresso (#8439)
The patch to select ELPA API needs to be applied to version 6.2.0 too. The link line of hdf5 is computed incorrectly from the configuration part of the build-system. To fix this the relevant file (make.inc) is patched.
This commit is contained in:
parent
d943754e92
commit
004e9b8948
@ -82,8 +82,8 @@ class QuantumEspresso(Package):
|
|||||||
depends_on('elpa~openmp', when='+elpa~openmp')
|
depends_on('elpa~openmp', when='+elpa~openmp')
|
||||||
depends_on('hdf5', when='+hdf5')
|
depends_on('hdf5', when='+hdf5')
|
||||||
|
|
||||||
patch('dspev_drv_elpa.patch', when='@6.1+elpa ^elpa@2016.05.004')
|
patch('dspev_drv_elpa.patch', when='@6.1.0:+elpa ^elpa@2016.05.004')
|
||||||
patch('dspev_drv_elpa.patch', when='@6.1+elpa ^elpa@2016.05.003')
|
patch('dspev_drv_elpa.patch', when='@6.1.0:+elpa ^elpa@2016.05.003')
|
||||||
|
|
||||||
# We can't ask for scalapack or elpa if we don't want MPI
|
# We can't ask for scalapack or elpa if we don't want MPI
|
||||||
conflicts(
|
conflicts(
|
||||||
@ -165,6 +165,24 @@ def install(self, spec, prefix):
|
|||||||
|
|
||||||
configure(*options)
|
configure(*options)
|
||||||
|
|
||||||
|
# Apparently the build system of QE is so broken that:
|
||||||
|
#
|
||||||
|
# 1. The variable reported on stdout as HDF5_LIBS is actually
|
||||||
|
# called HDF5_LIB (singular)
|
||||||
|
# 2. The link flags omit a few `-L` from the line, and this
|
||||||
|
# causes the linker to break
|
||||||
|
#
|
||||||
|
# Below we try to match the entire HDF5_LIB line and substitute
|
||||||
|
# with the list of libraries that needs to be linked.
|
||||||
|
if '+hdf5' in spec:
|
||||||
|
make_inc = join_path(self.stage.source_path, 'make.inc')
|
||||||
|
hdf5_libs = ' '.join(spec['hdf5:hl,fortran'].libs)
|
||||||
|
filter_file(
|
||||||
|
'HDF5_LIB([\s]*)=([\s\w\-\/.,]*)',
|
||||||
|
'HDF5_LIB = {0}'.format(hdf5_libs),
|
||||||
|
make_inc
|
||||||
|
)
|
||||||
|
|
||||||
make('all')
|
make('all')
|
||||||
|
|
||||||
if 'platform=darwin' in spec:
|
if 'platform=darwin' in spec:
|
||||||
|
Loading…
Reference in New Issue
Block a user