xref: /petsc/config/BuildSystem/config/packages/fftw.py (revision 9c92e8244581f622dbccb6d19f80c146cd7606d1)
1import config.package
2
3class Configure(config.package.GNUPackage):
4  def __init__(self, framework):
5    config.package.GNUPackage.__init__(self, framework)
6    # host locally as fftw.org url can expire after new release.
7    self.download   = ['https://www.fftw.org/fftw-3.3.10.tar.gz',
8                       'https://web.cels.anl.gov/projects/petsc/download/externalpackages/fftw-3.3.10.tar.gz']
9    self.functions  = ['fftw_malloc']
10    self.includes   = ['fftw3.h']
11    self.liblist    = [['libfftw3_mpi.a','libfftw3.a'],['libfftw3.a']]
12    self.pkgname    = 'fftw3'
13    self.precisions = ['double']
14    return
15
16  def setupDependencies(self, framework):
17    config.package.GNUPackage.setupDependencies(self, framework)
18    self.mpi  = framework.require('config.packages.MPI',self)
19    self.blasLapack = self.framework.require('config.packages.BlasLapack',self)
20    self.deps = [self.blasLapack]
21    self.odeps = [self.mpi]
22    return
23
24  def formGNUConfigureArgs(self):
25    args = config.package.GNUPackage.formGNUConfigureArgs(self)
26    self.pushLanguage('C')
27    self.popLanguage()
28    if self.mpi.found and not self.mpi.usingMPIUni:
29      args.append('MPICC="'+self.getCompiler()+'"')
30      args.append('--enable-mpi')
31      if self.mpi.lib:
32        args.append('LIBS="'+self.libraries.toStringNoDupes(self.mpi.lib)+'"')
33    return args
34