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.3.tar.gz', 8 'http://ftp.mcs.anl.gov/pub/petsc/externalpackages/fftw-3.3.3.tar.gz'] 9 self.functions = ['fftw_malloc'] 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.framework.pushLanguage('C') 26 args.append('MPICC="'+self.framework.getCompiler()+'"') 27 self.framework.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