Spaces:
Running
Running
from numpy.distutils.cpuinfo import cpu | |
from numpy.distutils.fcompiler import FCompiler | |
compilers = ['MIPSFCompiler'] | |
class MIPSFCompiler(FCompiler): | |
compiler_type = 'mips' | |
description = 'MIPSpro Fortran Compiler' | |
version_pattern = r'MIPSpro Compilers: Version (?P<version>[^\s*,]*)' | |
executables = { | |
'version_cmd' : ["<F90>", "-version"], | |
'compiler_f77' : ["f77", "-f77"], | |
'compiler_fix' : ["f90", "-fixedform"], | |
'compiler_f90' : ["f90"], | |
'linker_so' : ["f90", "-shared"], | |
'archiver' : ["ar", "-cr"], | |
'ranlib' : None | |
} | |
module_dir_switch = None #XXX: fix me | |
module_include_switch = None #XXX: fix me | |
pic_flags = ['-KPIC'] | |
def get_flags(self): | |
return self.pic_flags + ['-n32'] | |
def get_flags_opt(self): | |
return ['-O3'] | |
def get_flags_arch(self): | |
opt = [] | |
for a in '19 20 21 22_4k 22_5k 24 25 26 27 28 30 32_5k 32_10k'.split(): | |
if getattr(cpu, 'is_IP%s'%a)(): | |
opt.append('-TARG:platform=IP%s' % a) | |
break | |
return opt | |
def get_flags_arch_f77(self): | |
r = None | |
if cpu.is_r10000(): r = 10000 | |
elif cpu.is_r12000(): r = 12000 | |
elif cpu.is_r8000(): r = 8000 | |
elif cpu.is_r5000(): r = 5000 | |
elif cpu.is_r4000(): r = 4000 | |
if r is not None: | |
return ['r%s' % (r)] | |
return [] | |
def get_flags_arch_f90(self): | |
r = self.get_flags_arch_f77() | |
if r: | |
r[0] = '-' + r[0] | |
return r | |
if __name__ == '__main__': | |
from numpy.distutils import customized_fcompiler | |
print(customized_fcompiler(compiler='mips').get_version()) | |