56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from __future__ import division, absolute_import, print_function
|
|
|
|
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())
|