pnfft: new package (#2646)

* pnfft: new package

* Convert some packages with overridden install from AutotoolsPackage to Package

* pnfft: fix URL

* Switch FFTW-derived packages back to AutotoolsPackage

* Disable unneeded build phases in FFTW and derived packages

* Separate build phases for FFTW and derived packages

* Fix broken merge

* fftw: pfft_patches for 3.3.6

* fftw: address @adamjstewart’s review comments
This commit is contained in:
Michael Kuron
2017-03-25 20:27:52 +01:00
committed by Adam J. Stewart
parent 3af971165a
commit 55300d1181
4 changed files with 233 additions and 60 deletions

View File

@@ -39,26 +39,52 @@ class Pfft(AutotoolsPackage):
depends_on('fftw+mpi+pfft_patches')
depends_on('mpi')
def install(self, spec, prefix):
def configure(self, spec, prefix):
options = ['--prefix={0}'.format(prefix)]
if not self.compiler.f77 or not self.compiler.fc:
options.append("--disable-fortran")
configure(*options)
make()
if self.run_tests:
make("check")
make("install")
configure = Executable('../configure')
if '+double' in spec['fftw']:
with working_dir('double', create=True):
configure(*options)
if '+float' in spec['fftw']:
configure('--enable-float', *options)
make()
if self.run_tests:
make("check")
make("install")
with working_dir('float', create=True):
configure('--enable-float', *options)
if '+long_double' in spec['fftw']:
configure('--enable-long-double', *options)
make()
if self.run_tests:
with working_dir('long-double', create=True):
configure('--enable-long-double', *options)
def build(self, spec, prefix):
if '+double' in spec['fftw']:
with working_dir('double'):
make()
if '+float' in spec['fftw']:
with working_dir('float'):
make()
if '+long_double' in spec['fftw']:
with working_dir('long-double'):
make()
def check(self, spec, prefix):
if '+double' in spec['fftw']:
with working_dir('double'):
make("check")
make("install")
if '+float' in spec['fftw']:
with working_dir('float'):
make("check")
if '+long_double' in spec['fftw']:
with working_dir('long-double'):
make("check")
def install(self, spec, prefix):
if '+double' in spec['fftw']:
with working_dir('double'):
make("install")
if '+float' in spec['fftw']:
with working_dir('float'):
make("install")
if '+long_double' in spec['fftw']:
with working_dir('long-double'):
make("install")