Chris@87
|
1 from __future__ import division, absolute_import, print_function
|
Chris@87
|
2
|
Chris@87
|
3 import os
|
Chris@87
|
4
|
Chris@87
|
5 from numpy.distutils.fcompiler.gnu import GnuFCompiler
|
Chris@87
|
6
|
Chris@87
|
7 compilers = ['VastFCompiler']
|
Chris@87
|
8
|
Chris@87
|
9 class VastFCompiler(GnuFCompiler):
|
Chris@87
|
10 compiler_type = 'vast'
|
Chris@87
|
11 compiler_aliases = ()
|
Chris@87
|
12 description = 'Pacific-Sierra Research Fortran 90 Compiler'
|
Chris@87
|
13 version_pattern = r'\s*Pacific-Sierra Research vf90 '\
|
Chris@87
|
14 '(Personal|Professional)\s+(?P<version>[^\s]*)'
|
Chris@87
|
15
|
Chris@87
|
16 # VAST f90 does not support -o with -c. So, object files are created
|
Chris@87
|
17 # to the current directory and then moved to build directory
|
Chris@87
|
18 object_switch = ' && function _mvfile { mv -v `basename $1` $1 ; } && _mvfile '
|
Chris@87
|
19
|
Chris@87
|
20 executables = {
|
Chris@87
|
21 'version_cmd' : ["vf90", "-v"],
|
Chris@87
|
22 'compiler_f77' : ["g77"],
|
Chris@87
|
23 'compiler_fix' : ["f90", "-Wv,-ya"],
|
Chris@87
|
24 'compiler_f90' : ["f90"],
|
Chris@87
|
25 'linker_so' : ["<F90>"],
|
Chris@87
|
26 'archiver' : ["ar", "-cr"],
|
Chris@87
|
27 'ranlib' : ["ranlib"]
|
Chris@87
|
28 }
|
Chris@87
|
29 module_dir_switch = None #XXX Fix me
|
Chris@87
|
30 module_include_switch = None #XXX Fix me
|
Chris@87
|
31
|
Chris@87
|
32 def find_executables(self):
|
Chris@87
|
33 pass
|
Chris@87
|
34
|
Chris@87
|
35 def get_version_cmd(self):
|
Chris@87
|
36 f90 = self.compiler_f90[0]
|
Chris@87
|
37 d, b = os.path.split(f90)
|
Chris@87
|
38 vf90 = os.path.join(d, 'v'+b)
|
Chris@87
|
39 return vf90
|
Chris@87
|
40
|
Chris@87
|
41 def get_flags_arch(self):
|
Chris@87
|
42 vast_version = self.get_version()
|
Chris@87
|
43 gnu = GnuFCompiler()
|
Chris@87
|
44 gnu.customize(None)
|
Chris@87
|
45 self.version = gnu.get_version()
|
Chris@87
|
46 opt = GnuFCompiler.get_flags_arch(self)
|
Chris@87
|
47 self.version = vast_version
|
Chris@87
|
48 return opt
|
Chris@87
|
49
|
Chris@87
|
50 if __name__ == '__main__':
|
Chris@87
|
51 from distutils import log
|
Chris@87
|
52 log.set_verbosity(2)
|
Chris@87
|
53 from numpy.distutils.fcompiler import new_fcompiler
|
Chris@87
|
54 compiler = new_fcompiler(compiler='vast')
|
Chris@87
|
55 compiler.customize()
|
Chris@87
|
56 print(compiler.get_version())
|