52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
import os
|
|
|
|
from numpy.distutils.fcompiler.gnu import GnuFCompiler
|
|
|
|
compilers = ['VastFCompiler']
|
|
|
|
class VastFCompiler(GnuFCompiler):
|
|
compiler_type = 'vast'
|
|
compiler_aliases = ()
|
|
description = 'Pacific-Sierra Research Fortran 90 Compiler'
|
|
version_pattern = (r'\s*Pacific-Sierra Research vf90 '
|
|
r'(Personal|Professional)\s+(?P<version>[^\s]*)')
|
|
|
|
# VAST f90 does not support -o with -c. So, object files are created
|
|
# to the current directory and then moved to build directory
|
|
object_switch = ' && function _mvfile { mv -v `basename $1` $1 ; } && _mvfile '
|
|
|
|
executables = {
|
|
'version_cmd' : ["vf90", "-v"],
|
|
'compiler_f77' : ["g77"],
|
|
'compiler_fix' : ["f90", "-Wv,-ya"],
|
|
'compiler_f90' : ["f90"],
|
|
'linker_so' : ["<F90>"],
|
|
'archiver' : ["ar", "-cr"],
|
|
'ranlib' : ["ranlib"]
|
|
}
|
|
module_dir_switch = None #XXX Fix me
|
|
module_include_switch = None #XXX Fix me
|
|
|
|
def find_executables(self):
|
|
pass
|
|
|
|
def get_version_cmd(self):
|
|
f90 = self.compiler_f90[0]
|
|
d, b = os.path.split(f90)
|
|
vf90 = os.path.join(d, 'v'+b)
|
|
return vf90
|
|
|
|
def get_flags_arch(self):
|
|
vast_version = self.get_version()
|
|
gnu = GnuFCompiler()
|
|
gnu.customize(None)
|
|
self.version = gnu.get_version()
|
|
opt = GnuFCompiler.get_flags_arch(self)
|
|
self.version = vast_version
|
|
return opt
|
|
|
|
if __name__ == '__main__':
|
|
from distutils import log
|
|
log.set_verbosity(2)
|
|
from numpy.distutils import customized_fcompiler
|
|
print(customized_fcompiler(compiler='vast').get_version())
|