Chris@87: # http://www.pgroup.com Chris@87: from __future__ import division, absolute_import, print_function Chris@87: Chris@87: from numpy.distutils.fcompiler import FCompiler Chris@87: from sys import platform Chris@87: Chris@87: compilers = ['PGroupFCompiler'] Chris@87: Chris@87: class PGroupFCompiler(FCompiler): Chris@87: Chris@87: compiler_type = 'pg' Chris@87: description = 'Portland Group Fortran Compiler' Chris@87: version_pattern = r'\s*pg(f77|f90|hpf|fortran) (?P[\d.-]+).*' Chris@87: Chris@87: if platform == 'darwin': Chris@87: executables = { Chris@87: 'version_cmd' : ["", "-V"], Chris@87: 'compiler_f77' : ["pgfortran", "-dynamiclib"], Chris@87: 'compiler_fix' : ["pgfortran", "-Mfixed", "-dynamiclib"], Chris@87: 'compiler_f90' : ["pgfortran", "-dynamiclib"], Chris@87: 'linker_so' : ["libtool"], Chris@87: 'archiver' : ["ar", "-cr"], Chris@87: 'ranlib' : ["ranlib"] Chris@87: } Chris@87: pic_flags = [''] Chris@87: else: Chris@87: executables = { Chris@87: 'version_cmd' : ["", "-V"], Chris@87: 'compiler_f77' : ["pgfortran"], Chris@87: 'compiler_fix' : ["pgfortran", "-Mfixed"], Chris@87: 'compiler_f90' : ["pgfortran"], Chris@87: 'linker_so' : ["pgfortran", "-shared", "-fpic"], Chris@87: 'archiver' : ["ar", "-cr"], Chris@87: 'ranlib' : ["ranlib"] Chris@87: } Chris@87: pic_flags = ['-fpic'] Chris@87: Chris@87: Chris@87: module_dir_switch = '-module ' Chris@87: module_include_switch = '-I' Chris@87: Chris@87: def get_flags(self): Chris@87: opt = ['-Minform=inform', '-Mnosecond_underscore'] Chris@87: return self.pic_flags + opt Chris@87: def get_flags_opt(self): Chris@87: return ['-fast'] Chris@87: def get_flags_debug(self): Chris@87: return ['-g'] Chris@87: Chris@87: if platform == 'darwin': Chris@87: def get_flags_linker_so(self): Chris@87: return ["-dynamic", '-undefined', 'dynamic_lookup'] Chris@87: Chris@87: if __name__ == '__main__': Chris@87: from distutils import log Chris@87: log.set_verbosity(2) Chris@87: from numpy.distutils.fcompiler import new_fcompiler Chris@87: compiler = new_fcompiler(compiler='pg') Chris@87: compiler.customize() Chris@87: print(compiler.get_version())