openmx: remove custom phases

This commit is contained in:
Massimiliano Culpo 2022-04-11 16:44:28 +02:00
parent 1999135cab
commit b7ce6a5ec1

View File

@ -8,7 +8,8 @@ class Openmx(MakefilePackage):
"""OpenMX (Open source package for Material eXplorer) is a software """OpenMX (Open source package for Material eXplorer) is a software
package for nano-scale material simulations based on density functional package for nano-scale material simulations based on density functional
theories (DFT), norm-conserving pseudopotentials, and pseudo-atomic theories (DFT), norm-conserving pseudopotentials, and pseudo-atomic
localized basis functions.""" localized basis functions.
"""
homepage = "http://www.openmx-square.org/index.html" homepage = "http://www.openmx-square.org/index.html"
url = "https://t-ozaki.issp.u-tokyo.ac.jp/openmx3.8.tar.gz" url = "https://t-ozaki.issp.u-tokyo.ac.jp/openmx3.8.tar.gz"
@ -31,30 +32,32 @@ class Openmx(MakefilePackage):
parallel = False parallel = False
phases = ['edit', 'build'] build_directory = 'source'
def edit(self, spec, prefix): def edit(self, spec, prefix):
# Move contents to source/ # Move contents to source/
# http://www.openmx-square.org/bugfixed/18June12/README.txt # http://www.openmx-square.org/bugfixed/18June12/README.txt
copy_tree('patch', 'source') copy_tree('patch', 'source')
makefile = FileFilter('./source/makefile') makefile = FileFilter('./source/makefile')
makefile.filter('^DESTDIR.*$', 'DESTDIR = {0}/bin'.format(prefix)) makefile.filter('^DESTDIR.*$', 'DESTDIR = {0}/bin'.format(prefix))
def build(self, spec, prefix):
mkdirp(prefix.bin) mkdirp(prefix.bin)
@property
def common_arguments(self):
spec, common_option = self.spec, []
lapack_blas_libs = spec['lapack'].libs + spec['blas'].libs lapack_blas_libs = spec['lapack'].libs + spec['blas'].libs
lapack_blas_headers = spec['lapack'].headers + spec['blas'].headers lapack_blas_headers = spec['lapack'].headers + spec['blas'].headers
cc_option = [
common_option = [] spec['mpi'].mpicc,
cc_option = [spec['mpi'].mpicc,
self.compiler.openmp_flag, self.compiler.openmp_flag,
spec['fftw'].headers.include_flags, spec['fftw'].headers.include_flags
] ]
fc_option = [spec['mpi'].mpifc] fc_option = [spec['mpi'].mpifc]
lib_option = [spec['fftw'].libs.ld_flags, lib_option = [
spec['fftw'].libs.ld_flags,
lapack_blas_libs.ld_flags, lapack_blas_libs.ld_flags,
'-lmpi_mpifh', '-lmpi_mpifh'
] ]
if '%fj' in spec: if '%fj' in spec:
@ -67,11 +70,21 @@ def build(self, spec, prefix):
if '%gcc' in spec: if '%gcc' in spec:
lib_option.append('-lgfortran') lib_option.append('-lgfortran')
with working_dir('source'): return [
make('all', 'CC={0} {1} -I$(LIBERIDIR)'.format(
'CC={0} {1} -I$(LIBERIDIR)' ' '.join(cc_option), ' '.join(common_option)
.format(' '.join(cc_option), ' '.join(common_option)), ),
'FC={0} {1}' 'FC={0} {1}'.format(' '.join(fc_option), ' '.join(common_option)),
.format(' '.join(fc_option), ' '.join(common_option)), 'LIB={0}'.format(' '.join(lib_option))
'LIB={0}'.format(' '.join(lib_option)), ]
)
@property
def build_targets(self):
return [
'openmx', 'DosMain', 'jx', 'analysis_example', 'esp', 'polB',
'bandgnu13', 'bin2txt', 'cube2xsf', 'intensity_map', 'md2axsf'
] + self.common_arguments
@property
def install_targets(self):
return ['all'] + self.common_arguments