xref: /petsc/config/BuildSystem/config/packages/ascem-io.py (revision d12e167ebf17844deeae3c4cdd43de9ffb5cfe5d)
1import config.package
2import os
3
4class Configure(config.package.Package):
5  def __init__(self, framework):
6    config.package.Package.__init__(self, framework)
7    self.download         = ['http://software.lanl.gov/ascem/tpls/ascem-io-2.2.tar.gz']
8    self.downloaddirname  = 'ascem-io'
9    self.includes         = ['ascemio_util.h']
10    self.liblist          = [['libparallelio.a']]
11    self.functions        = []
12    self.requirescxx11    = 0
13    self.downloadonWindows= 0
14    self.hastests         = 1
15    return
16
17  def setupDependencies(self, framework):
18    config.package.Package.setupDependencies(self, framework)
19    self.compilerFlags   = framework.require('config.compilerFlags', self)
20    self.mpi             = framework.require('config.packages.MPI',self)
21    self.hdf5            = framework.require('config.packages.hdf5',self)
22    self.deps            = [self.mpi,self.hdf5]
23    return
24
25  def Install(self):
26    import os
27    self.setCompilers.pushLanguage('C')
28    if self.hdf5.include:
29      MAKEARGS = 'MACHINE="" CC="'+self.setCompilers.getCompiler()+' '+self.setCompilers.getCompilerFlags()+'" HDF5_INCLUDE_DIR="'+self.hdf5.include[0]+'"'
30    else:
31      MAKEARGS = 'MACHINE="" CC="'+self.setCompilers.getCompiler()+' '+self.setCompilers.getCompilerFlags()+'"'
32    self.setCompilers.popLanguage()
33    INSTALLARGS = 'ASCEMIO_INSTALL_DIR="'+self.installDir+'"'
34    g = open(os.path.join(self.packageDir,'compiledata'),'w')
35    g.write(MAKEARGS+INSTALLARGS)
36    g.close()
37
38    if self.installNeeded('compiledata'):
39      try:
40        self.logPrintBox('Compiling and installing ascem-io; this may take several minutes')
41        self.installDirProvider.printSudoPasswordMessage()
42        output,err,ret = config.package.Package.executeShellCommand('cd '+os.path.join(self.packageDir,'src')+' && '+self.make.make+' '+MAKEARGS+' && '+self.installSudo+' '+self.make.make+' '+INSTALLARGS+' install', timeout=2500, log = self.log)
43      except RuntimeError, e:
44        raise RuntimeError('Error running make on ascem-io: '+str(e))
45      self.postInstall(output+err,'compiledata')
46    return self.installDir
47
48
49