opium package: add version 4.1 and update blas/lapack dependencies (#25591)

- remove unneeded dependency on blas
- create external-lapack variant
- patch makefile to not build lapack if `+external-lapack`

Also: 

- fix homepage link
- set parallel = False
- make references to `spec` consistent
- remove unneeded `build` method
This commit is contained in:
Glenn Johnson 2021-08-26 12:35:58 -05:00 committed by GitHub
parent 8664abc178
commit 6a31ca7386
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -9,28 +9,33 @@
class Opium(AutotoolsPackage): class Opium(AutotoolsPackage):
"""DFT pseudopotential generation project""" """DFT pseudopotential generation project"""
homepage = "https://opium.sourceforge.net/index.html" homepage = "http://opium.sourceforge.net"
url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz" url = "https://downloads.sourceforge.net/project/opium/opium/opium-v3.8/opium-v3.8-src.tgz"
version('4.1', sha256='e5a102b52601ad037d8a7b3e2dbd295baad23b8c1e4908b9014df2e432c23c60')
version('3.8', sha256='edee6606519330aecaee436ee8cfb0a33788b5677861d59e38aba936e87d5ad3') version('3.8', sha256='edee6606519330aecaee436ee8cfb0a33788b5677861d59e38aba936e87d5ad3')
depends_on('blas') variant('external-lapack', default=False,
depends_on('lapack') description='Links to externally installed LAPACK')
depends_on('lapack', when='+external-lapack')
parallel = False
def patch(self):
if '+external-lapack' in self.spec:
with working_dir('src'):
filter_file(r'(^subdirs=.*) lapack', r'\1', 'Makefile')
def configure_args(self): def configure_args(self):
spec = self.spec
options = [] options = []
libs = spec['lapack'].libs + spec['blas'].libs if '+external-lapack' in self.spec:
options.append('LDFLAGS=%s' % libs.ld_flags) options.append('LDFLAGS={0}'.format(self.spec['lapack'].libs.ld_flags))
return options return options
def build(self, spec, prefix):
with working_dir("src", create=False):
make("all-subdirs")
make("opium")
def install(self, spec, prefix): def install(self, spec, prefix):
# opium not have a make install :-(( # opium does not have a make install target :-((
mkdirp(self.prefix.bin) mkdirp(self.prefix.bin)
install(join_path(self.stage.source_path, 'opium'), install(join_path(self.stage.source_path, 'opium'),
self.prefix.bin) self.prefix.bin)