lahey.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from __future__ import division, absolute_import, print_function
  2. import os
  3. from numpy.distutils.fcompiler import FCompiler
  4. compilers = ['LaheyFCompiler']
  5. class LaheyFCompiler(FCompiler):
  6. compiler_type = 'lahey'
  7. description = 'Lahey/Fujitsu Fortran 95 Compiler'
  8. version_pattern = r'Lahey/Fujitsu Fortran 95 Compiler Release (?P<version>[^\s*]*)'
  9. executables = {
  10. 'version_cmd' : ["<F90>", "--version"],
  11. 'compiler_f77' : ["lf95", "--fix"],
  12. 'compiler_fix' : ["lf95", "--fix"],
  13. 'compiler_f90' : ["lf95"],
  14. 'linker_so' : ["lf95", "-shared"],
  15. 'archiver' : ["ar", "-cr"],
  16. 'ranlib' : ["ranlib"]
  17. }
  18. module_dir_switch = None #XXX Fix me
  19. module_include_switch = None #XXX Fix me
  20. def get_flags_opt(self):
  21. return ['-O']
  22. def get_flags_debug(self):
  23. return ['-g', '--chk', '--chkglobal']
  24. def get_library_dirs(self):
  25. opt = []
  26. d = os.environ.get('LAHEY')
  27. if d:
  28. opt.append(os.path.join(d, 'lib'))
  29. return opt
  30. def get_libraries(self):
  31. opt = []
  32. opt.extend(['fj9f6', 'fj9i6', 'fj9ipp', 'fj9e6'])
  33. return opt
  34. if __name__ == '__main__':
  35. from distutils import log
  36. log.set_verbosity(2)
  37. from numpy.distutils import customized_fcompiler
  38. print(customized_fcompiler(compiler='lahey').get_version())