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