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://mpi4py.googlecode.com/files/mpi4py-1.2.2.tar.gz']
|
---|
7 | self.functions = []
|
---|
8 | self.includes = []
|
---|
9 | self.liblist = []
|
---|
10 | self.complex = 1
|
---|
11 | return
|
---|
12 |
|
---|
13 | def setupDependencies(self, framework):
|
---|
14 | PETSc.package.NewPackage.setupDependencies(self, framework)
|
---|
15 | self.numpy = framework.require('PETSc.packages.Numpy',self)
|
---|
16 | self.setCompilers = framework.require('config.setCompilers',self)
|
---|
17 | self.sharedLibraries = framework.require('PETSc.utilities.sharedLibraries', self)
|
---|
18 | self.petscconfigure = framework.require('PETSc.Configure',self)
|
---|
19 | return
|
---|
20 |
|
---|
21 | def Install(self):
|
---|
22 | import os
|
---|
23 | pp = os.path.join(self.installDir,'lib','python*','site-packages')
|
---|
24 | if self.setCompilers.isDarwin():
|
---|
25 | apple = 'You may need to\n (csh/tcsh) setenv MACOSX_DEPLOYMENT_TARGET 10.X\n (sh/bash) MACOSX_DEPLOYMENT_TARGET=10.X; export MACOSX_DEPLOYMENT_TARGET\nbefore running make on PETSc'
|
---|
26 | else:
|
---|
27 | apple = ''
|
---|
28 | self.logClearRemoveDirectory()
|
---|
29 | self.logResetRemoveDirectory()
|
---|
30 | archflags = ""
|
---|
31 | if self.setCompilers.isDarwin():
|
---|
32 | if self.types.sizes['known-sizeof-void-p'] == 32:
|
---|
33 | archflags = "ARCHFLAGS=\'-arch i386\'"
|
---|
34 | else:
|
---|
35 | archflags = "ARCHFLAGS=\'-arch x86_64\'"
|
---|
36 | self.addMakeRule('mpi4py','', \
|
---|
37 | ['@MPICC=${PCC}; export MPICC; cd '+self.packageDir+';python setup.py clean --all; '+archflags+' python setup.py install --install-lib='+os.path.join(self.installDir,'lib'),\
|
---|
38 | '@echo "====================================="',\
|
---|
39 | '@echo "To use mpi4py, add '+os.path.join(self.petscconfigure.installdir,'lib')+' to PYTHONPATH"',\
|
---|
40 | '@echo "====================================="'])
|
---|
41 |
|
---|
42 | return self.installDir
|
---|
43 |
|
---|
44 | def configureLibrary(self):
|
---|
45 | self.checkDownload(1)
|
---|
46 | if not self.sharedLibraries.useShared:
|
---|
47 | raise RuntimeError('mpi4py requires PETSc be built with shared libraries; rerun with --with-shared-libraries')
|
---|
48 |
|
---|
49 | def alternateConfigureLibrary(self):
|
---|
50 | self.addMakeRule('mpi4py','')
|
---|
51 | self.addMakeRule('mpi4py_noinstall','')
|
---|