diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2004-01-19 09:00:01 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2004-01-19 09:00:01 +0000 |
commit | c879ef7d77eb19cb4d795e4550573de9c58955b4 (patch) | |
tree | 1f4fefca21b78e13a10f133a5df586faa799347a /scipy_distutils/compaqfcompiler.py | |
parent | 60612a648d3b108daf597dfbaee57c316fb0775f (diff) | |
download | numpy-c879ef7d77eb19cb4d795e4550573de9c58955b4.tar.gz |
Refactoring build_flib.py (to follow and use standard distutils conventions and tools). It's work in-progress. Sending the output of 'python fcompiler.py --verbose' would be a great help if you have other than intel and gnu compilers installed.
Diffstat (limited to 'scipy_distutils/compaqfcompiler.py')
-rw-r--r-- | scipy_distutils/compaqfcompiler.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/scipy_distutils/compaqfcompiler.py b/scipy_distutils/compaqfcompiler.py new file mode 100644 index 000000000..c80574a75 --- /dev/null +++ b/scipy_distutils/compaqfcompiler.py @@ -0,0 +1,88 @@ + +#http://www.compaq.com/fortran/docs/ + +import os +import sys + +from cpuinfo import cpu +from fcompiler import FCompiler + +class CompaqFCompiler(FCompiler): + + compiler_type = 'compaq' + version_pattern = r'Compaq Fortran (?P<version>[^\s]*).*' + + if sys.platform[:5]=='linux': + fc_exe = 'fort' + else: + fc_exe = 'f90' + + executables = { + 'version_cmd' : [fc_exe, "-version"], + 'compiler_f77' : [fc_exe, "-f77rtl","-fixed"], + 'compiler_fix' : [fc_exe, "-fixed"], + 'compiler_f90' : [fc_exe], + 'linker_so' : [fc_exe], + 'archiver' : ["ar", "-cr"], + 'ranlib' : ["ranlib"] + } + + def get_flags(self): + return ['-assume no2underscore','-nomixed_str_len_arg'] + def get_flags_debug(self): + return ['-g','-check bounds'] + def get_flags_opt(self): + return ['-O4','-align dcommons','-assume bigarrays', + '-assume nozsize','-math_library fast'] + def get_flags_arch(self): + return ['-arch host', '-tune host'] + def get_flags_linker_so(self): + if sys.platform[:5]=='linux': + return ['-shared'] + return ['-shared','-Wl,-expect_unresolved,*'] + +class CompaqVisualFCompiler(FCompiler): + + compiler_type = 'compaqv' + version_pattern = r'(DIGITAL|Compaq) Visual Fortran Optimizing Compiler'\ + ' Version (?P<version>[^\s]*).*' + + compile_switch = '/c ' + object_switch = '/object:' + + static_lib_extension = ".lib" + static_lib_format = "%s%s" + + ar_exe = 'lib.exe' + fc_exe = 'DF' + if sys.platform=='win32': + from distutils.msvccompiler import MSVCCompiler + ar_exe = MSVCCompiler().lib + + executables = { + 'version_cmd' : ['DF', "/what"], + 'compiler_f77' : ['DF', "/f77rtl","/fixed"], + 'compiler_fix' : ['DF', "/fixed"], + 'compiler_f90' : ['DF'], + 'linker_so' : ['DF'], + 'archiver' : [ar_exe, "/OUT:"], + 'ranlib' : None + } + + def get_flags(self): + return ['/nologo','/MD','/WX','/iface=(cref,nomixed_str_len_arg)', + '/names:lowercase','/assume:underscore'] + def get_flags_opt(self): + return ['/Ox','/fast','/optimize:5','/unroll:0','/math_library:fast'] + def get_flags_arch(self): + return ['/threads'] + def get_flags_debug(self): + return ['/debug'] + +if __name__ == '__main__': + from distutils import log + log.set_verbosity(2) + from fcompiler import new_fcompiler + compiler = new_fcompiler(compiler='compaq') + compiler.customize() + print compiler.get_version() |