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