xref: /petsc/config/BuildSystem/config/packages/fftw.py (revision 9dddd24924da2034e9ad37bd0330bf8579e05078)
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   = ['http://www.fftw.org/fftw-3.3.8.tar.gz',
8                       'http://ftp.mcs.anl.gov/pub/petsc/externalpackages/fftw-3.3.8.tar.gz']
9    self.functions  = ['fftw_malloc','fftw_mpi_cleanup']
10    self.includes   = ['fftw3-mpi.h']
11    self.liblist    = [['libfftw3_mpi.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.mpi,self.blasLapack]
21    return
22
23  def formGNUConfigureArgs(self):
24    args = config.package.GNUPackage.formGNUConfigureArgs(self)
25    self.pushLanguage('C')
26    args.append('MPICC="'+self.getCompiler()+'"')
27    self.popLanguage()
28    args.append('--enable-mpi')
29    if self.mpi.lib:
30      args.append('LIBS="'+self.libraries.toStringNoDupes(self.mpi.lib)+'"')
31    return args
32