Chris@87: from __future__ import division, absolute_import, print_function Chris@87: Chris@87: from numpy.distutils.ccompiler import simple_version_match Chris@87: from numpy.distutils.fcompiler import FCompiler Chris@87: Chris@87: compilers = ['SunFCompiler'] Chris@87: Chris@87: class SunFCompiler(FCompiler): Chris@87: Chris@87: compiler_type = 'sun' Chris@87: description = 'Sun or Forte Fortran 95 Compiler' Chris@87: # ex: Chris@87: # f90: Sun WorkShop 6 update 2 Fortran 95 6.2 Patch 111690-10 2003/08/28 Chris@87: version_match = simple_version_match( Chris@87: start=r'f9[05]: (Sun|Forte|WorkShop).*Fortran 95') Chris@87: Chris@87: executables = { Chris@87: 'version_cmd' : ["", "-V"], Chris@87: 'compiler_f77' : ["f90"], Chris@87: 'compiler_fix' : ["f90", "-fixed"], Chris@87: 'compiler_f90' : ["f90"], Chris@87: 'linker_so' : ["", "-Bdynamic", "-G"], Chris@87: 'archiver' : ["ar", "-cr"], Chris@87: 'ranlib' : ["ranlib"] Chris@87: } Chris@87: module_dir_switch = '-moddir=' Chris@87: module_include_switch = '-M' Chris@87: pic_flags = ['-xcode=pic32'] Chris@87: Chris@87: def get_flags_f77(self): Chris@87: ret = ["-ftrap=%none"] Chris@87: if (self.get_version() or '') >= '7': Chris@87: ret.append("-f77") Chris@87: else: Chris@87: ret.append("-fixed") Chris@87: return ret Chris@87: def get_opt(self): Chris@87: return ['-fast', '-dalign'] Chris@87: def get_arch(self): Chris@87: return ['-xtarget=generic'] Chris@87: def get_libraries(self): Chris@87: opt = [] Chris@87: opt.extend(['fsu', 'sunmath', 'mvec']) 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='sun') Chris@87: compiler.customize() Chris@87: print(compiler.get_version())