1 | import PETSc.package
|
---|
2 |
|
---|
3 | class Configure(PETSc.package.NewPackage):
|
---|
4 | def __init__(self, framework):
|
---|
5 | PETSc.package.NewPackage.__init__(self, framework)
|
---|
6 | self.download = ['http://ftp.mcs.anl.gov/pub/petsc/externalpackages/Chaco-2.2.tar.gz']
|
---|
7 | self.functions = ['interface']
|
---|
8 | self.includes = [] #Chaco does not have an include file
|
---|
9 | self.needsMath = 1
|
---|
10 | self.double = 0
|
---|
11 | self.complex = 1
|
---|
12 | self.liblist = [['libchaco.a']]
|
---|
13 | self.license = 'http://www.cs.sandia.gov/web1400/1400_download.html'
|
---|
14 | self.worksonWindows = 1
|
---|
15 | self.downloadonWindows = 1
|
---|
16 | return
|
---|
17 |
|
---|
18 | def Install(self):
|
---|
19 | import os
|
---|
20 | self.framework.log.write('chacoDir = '+self.packageDir+' installDir '+self.installDir+'\n')
|
---|
21 |
|
---|
22 | mkfile = 'make.inc'
|
---|
23 | g = open(os.path.join(self.packageDir, mkfile), 'w')
|
---|
24 | self.setCompilers.pushLanguage('C')
|
---|
25 | g.write('CC = '+self.setCompilers.getCompiler()+'\n')
|
---|
26 | g.write('CFLAGS = '+self.setCompilers.getCompilerFlags()+'\n')
|
---|
27 | g.write('OFLAGS = '+self.setCompilers.getCompilerFlags()+'\n')
|
---|
28 | self.setCompilers.popLanguage()
|
---|
29 | g.close()
|
---|
30 |
|
---|
31 | if self.installNeeded(mkfile):
|
---|
32 | try:
|
---|
33 | self.logPrintBox('Compiling chaco; this may take several minutes')
|
---|
34 | output,err,ret = PETSc.package.NewPackage.executeShellCommand('cd '+self.packageDir+' && cd code && make clean && make && cd '+self.installDir+' && '+self.setCompilers.AR+' '+self.setCompilers.AR_FLAGS+' '+self.libdir+'/libchaco.'+self.setCompilers.AR_LIB_SUFFIX+' `find '+self.packageDir+'/code -name "*.o"` && cd '+self.libdir+' && '+self.setCompilers.AR+' d libchaco.'+self.setCompilers.AR_LIB_SUFFIX+' main.o && '+self.setCompilers.RANLIB+' libchaco.'+self.setCompilers.AR_LIB_SUFFIX, timeout=2500, log = self.framework.log)
|
---|
35 | except RuntimeError, e:
|
---|
36 | raise RuntimeError('Error running make on CHACO: '+str(e))
|
---|
37 | self.postInstall(output+err, mkfile)
|
---|
38 | return self.installDir
|
---|
39 |
|
---|