123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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())
|