Chris@87
|
1 from __future__ import division, absolute_import, print_function
|
Chris@87
|
2
|
Chris@87
|
3 from numpy.distutils.cpuinfo import cpu
|
Chris@87
|
4 from numpy.distutils.fcompiler import FCompiler
|
Chris@87
|
5
|
Chris@87
|
6 compilers = ['MIPSFCompiler']
|
Chris@87
|
7
|
Chris@87
|
8 class MIPSFCompiler(FCompiler):
|
Chris@87
|
9
|
Chris@87
|
10 compiler_type = 'mips'
|
Chris@87
|
11 description = 'MIPSpro Fortran Compiler'
|
Chris@87
|
12 version_pattern = r'MIPSpro Compilers: Version (?P<version>[^\s*,]*)'
|
Chris@87
|
13
|
Chris@87
|
14 executables = {
|
Chris@87
|
15 'version_cmd' : ["<F90>", "-version"],
|
Chris@87
|
16 'compiler_f77' : ["f77", "-f77"],
|
Chris@87
|
17 'compiler_fix' : ["f90", "-fixedform"],
|
Chris@87
|
18 'compiler_f90' : ["f90"],
|
Chris@87
|
19 'linker_so' : ["f90", "-shared"],
|
Chris@87
|
20 'archiver' : ["ar", "-cr"],
|
Chris@87
|
21 'ranlib' : None
|
Chris@87
|
22 }
|
Chris@87
|
23 module_dir_switch = None #XXX: fix me
|
Chris@87
|
24 module_include_switch = None #XXX: fix me
|
Chris@87
|
25 pic_flags = ['-KPIC']
|
Chris@87
|
26
|
Chris@87
|
27 def get_flags(self):
|
Chris@87
|
28 return self.pic_flags + ['-n32']
|
Chris@87
|
29 def get_flags_opt(self):
|
Chris@87
|
30 return ['-O3']
|
Chris@87
|
31 def get_flags_arch(self):
|
Chris@87
|
32 opt = []
|
Chris@87
|
33 for a in '19 20 21 22_4k 22_5k 24 25 26 27 28 30 32_5k 32_10k'.split():
|
Chris@87
|
34 if getattr(cpu, 'is_IP%s'%a)():
|
Chris@87
|
35 opt.append('-TARG:platform=IP%s' % a)
|
Chris@87
|
36 break
|
Chris@87
|
37 return opt
|
Chris@87
|
38 def get_flags_arch_f77(self):
|
Chris@87
|
39 r = None
|
Chris@87
|
40 if cpu.is_r10000(): r = 10000
|
Chris@87
|
41 elif cpu.is_r12000(): r = 12000
|
Chris@87
|
42 elif cpu.is_r8000(): r = 8000
|
Chris@87
|
43 elif cpu.is_r5000(): r = 5000
|
Chris@87
|
44 elif cpu.is_r4000(): r = 4000
|
Chris@87
|
45 if r is not None:
|
Chris@87
|
46 return ['r%s' % (r)]
|
Chris@87
|
47 return []
|
Chris@87
|
48 def get_flags_arch_f90(self):
|
Chris@87
|
49 r = self.get_flags_arch_f77()
|
Chris@87
|
50 if r:
|
Chris@87
|
51 r[0] = '-' + r[0]
|
Chris@87
|
52 return r
|
Chris@87
|
53
|
Chris@87
|
54 if __name__ == '__main__':
|
Chris@87
|
55 from numpy.distutils.fcompiler import new_fcompiler
|
Chris@87
|
56 compiler = new_fcompiler(compiler='mips')
|
Chris@87
|
57 compiler.customize()
|
Chris@87
|
58 print(compiler.get_version())
|