source: issm/trunk-jpl/externalpackages/petsc-dev/src/config/PETSc/packages/mpi4py.py@ 11896

Last change on this file since 11896 was 11896, checked in by habbalf, 13 years ago

petsc-dev : Petsc development code in external packages. Mercurial updates

File size: 2.3 KB
Line 
1import PETSc.package
2
3class 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','')
Note: See TracBrowser for help on using the repository browser.