Subversion Repositories slepc-dev

Rev

Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1377 slepc 1
#
2
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1672 slepc 3
#  SLEPc - Scalable Library for Eigenvalue Problem Computations
2116 eromero 4
#  Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain
1377 slepc 5
#
1672 slepc 6
#  This file is part of SLEPc.
7
#    
8
#  SLEPc is free software: you can redistribute it and/or modify it under  the
9
#  terms of version 3 of the GNU Lesser General Public License as published by
10
#  the Free Software Foundation.
11
#
12
#  SLEPc  is  distributed in the hope that it will be useful, but WITHOUT  ANY
13
#  WARRANTY;  without even the implied warranty of MERCHANTABILITY or  FITNESS
14
#  FOR  A  PARTICULAR PURPOSE. See the GNU Lesser General Public  License  for
15
#  more details.
16
#
17
#  You  should have received a copy of the GNU Lesser General  Public  License
18
#  along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
1377 slepc 19
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
20
#
21
 
914 dsic.upv.es!antodo 22
import os
23
import sys
24
 
25
def Load(petscdir):
2475 jroman 26
  global ARCH,DIR,MAKE,SCALAR,PRECISION,ISINSTALL,DESTDIR,BFORT,TEST_RUNS,CC,CC_FLAGS,AR,AR_FLAGS,AR_LIB_SUFFIX,RANLIB,IND64,BUILD_USING_CMAKE
914 dsic.upv.es!antodo 27
 
28
  if 'PETSC_ARCH' in os.environ:
1527 slepc 29
    ISINSTALL = 0
914 dsic.upv.es!antodo 30
    ARCH = os.environ['PETSC_ARCH']
1527 slepc 31
    PETSCVARIABLES = os.sep.join([petscdir,ARCH,'conf','petscvariables'])
2427 jroman 32
    PETSCCONF_H = os.sep.join([petscdir,ARCH,'include','petscconf.h'])
914 dsic.upv.es!antodo 33
  else:
1527 slepc 34
    ISINSTALL = 1
2229 jroman 35
    ARCH = 'arch-installed-petsc'
1527 slepc 36
    PETSCVARIABLES = os.sep.join([petscdir,'conf','petscvariables'])
2427 jroman 37
    PETSCCONF_H = os.sep.join([petscdir,'include','petscconf.h'])
914 dsic.upv.es!antodo 38
 
2475 jroman 39
  BUILD_USING_CMAKE = 0
914 dsic.upv.es!antodo 40
  try:
1527 slepc 41
    f = open(PETSCVARIABLES)
914 dsic.upv.es!antodo 42
    for l in f.readlines():
43
      (k,v) = l.split('=',1)
44
      k = k.strip()
45
      v = v.strip()
46
      if k == 'PETSC_SCALAR':
47
        SCALAR = v
48
      elif k == 'PETSC_PRECISION':
49
        PRECISION = v
50
      elif k == 'MAKE':
51
        MAKE = v
2217 jroman 52
      elif k == 'DESTDIR':
53
        DESTDIR = v
2285 jroman 54
      elif k == 'BFORT':
55
        BFORT = v
2358 jroman 56
      elif k == 'TEST_RUNS':
57
        TEST_RUNS = v
2423 jroman 58
      elif k == 'CC':
59
        CC = v
60
      elif k == 'CC_FLAGS':
61
        CC_FLAGS = v
62
      elif k == 'AR':
63
        AR = v
64
      elif k == 'AR_FLAGS':
65
        AR_FLAGS = v
66
      elif k == 'AR_LIB_SUFFIX':
67
        AR_LIB_SUFFIX = v
68
      elif k == 'RANLIB':
69
        RANLIB = v
2475 jroman 70
      elif k == 'PETSC_BUILD_USING_CMAKE':
71
        BUILD_USING_CMAKE = v
914 dsic.upv.es!antodo 72
    f.close()
73
  except:
74
    sys.exit('ERROR: PETSc is not configured for architecture ' + ARCH)
2426 jroman 75
 
76
  IND64 = 0
77
  try:
78
    f = open(PETSCCONF_H)
79
    for l in f.readlines():
80
      l = l.split()
81
      if len(l)==3 and l[0]=='#define' and l[1]=='PETSC_USE_64BIT_INDICES' and l[2]=='1':
82
        IND64 = 1
83
    f.close()
84
  except:
85
    sys.exit('ERROR: cannot open petscconf.h')
86