Subversion Repositories slepc-dev

Rev

Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1187 slepc 1
#!/usr/bin/env python
2
 
3
import os
4
import sys
5
 
6
import petscconf
7
import log
8
import check
9
 
10
def Check(conf,directory):
11
 
12
  if petscconf.PRECISION == 'single':
13
    sys.exit('ERROR: PRIMME does not support single precision.')
14
 
15
  if not directory:
1188 slepc 16
    sys.exit('ERROR: I cannot guess where the PRIMME directory is.')
1187 slepc 17
 
18
  functions = ['primme_set_method','primme_Free','primme_initialize']
19
  if petscconf.SCALAR == 'real':
20
    functions += ['dprimme']
21
    include = 'DPRIMME'
22
    lib = '-ldprimme'
23
  else:
24
    functions += ['zprimme']
25
    include = 'ZPRIMME'
26
    lib = '-lzprimme'
27
 
28
 
29
  flags = ['-I' + directory + '/' + include]
30
  libs =  ['-L' + directory + ' ' + lib]
31
 
32
  if check.Link(functions,[],flags+libs):
33
    conf.write('SLEPC_HAVE_PRIMME = -DSLEPC_HAVE_PRIMME\n')
34
    conf.write('PRIMME_LIB =' + str.join(' ', libs) + '\n')
35
    conf.write('PRIMME_FLAGS =' + str.join(' ', flags) + '\n')
36
  else:
37
    sys.exit('ERROR: PRIMME link test failed.')
38
 
39
  return flags + libs
1188 slepc 40