Chris@87
|
1 from __future__ import division, absolute_import, print_function
|
Chris@87
|
2
|
Chris@87
|
3 from numpy.distutils.fcompiler import FCompiler
|
Chris@87
|
4
|
Chris@87
|
5 compilers = ['HPUXFCompiler']
|
Chris@87
|
6
|
Chris@87
|
7 class HPUXFCompiler(FCompiler):
|
Chris@87
|
8
|
Chris@87
|
9 compiler_type = 'hpux'
|
Chris@87
|
10 description = 'HP Fortran 90 Compiler'
|
Chris@87
|
11 version_pattern = r'HP F90 (?P<version>[^\s*,]*)'
|
Chris@87
|
12
|
Chris@87
|
13 executables = {
|
Chris@87
|
14 'version_cmd' : ["f90", "+version"],
|
Chris@87
|
15 'compiler_f77' : ["f90"],
|
Chris@87
|
16 'compiler_fix' : ["f90"],
|
Chris@87
|
17 'compiler_f90' : ["f90"],
|
Chris@87
|
18 'linker_so' : ["ld", "-b"],
|
Chris@87
|
19 'archiver' : ["ar", "-cr"],
|
Chris@87
|
20 'ranlib' : ["ranlib"]
|
Chris@87
|
21 }
|
Chris@87
|
22 module_dir_switch = None #XXX: fix me
|
Chris@87
|
23 module_include_switch = None #XXX: fix me
|
Chris@87
|
24 pic_flags = ['+Z']
|
Chris@87
|
25 def get_flags(self):
|
Chris@87
|
26 return self.pic_flags + ['+ppu', '+DD64']
|
Chris@87
|
27 def get_flags_opt(self):
|
Chris@87
|
28 return ['-O3']
|
Chris@87
|
29 def get_libraries(self):
|
Chris@87
|
30 return ['m']
|
Chris@87
|
31 def get_library_dirs(self):
|
Chris@87
|
32 opt = ['/usr/lib/hpux64']
|
Chris@87
|
33 return opt
|
Chris@87
|
34 def get_version(self, force=0, ok_status=[256, 0, 1]):
|
Chris@87
|
35 # XXX status==256 may indicate 'unrecognized option' or
|
Chris@87
|
36 # 'no input file'. So, version_cmd needs more work.
|
Chris@87
|
37 return FCompiler.get_version(self, force, ok_status)
|
Chris@87
|
38
|
Chris@87
|
39 if __name__ == '__main__':
|
Chris@87
|
40 from distutils import log
|
Chris@87
|
41 log.set_verbosity(10)
|
Chris@87
|
42 from numpy.distutils.fcompiler import new_fcompiler
|
Chris@87
|
43 compiler = new_fcompiler(compiler='hpux')
|
Chris@87
|
44 compiler.customize()
|
Chris@87
|
45 print(compiler.get_version())
|