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