summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrgommers <ralf.gommers@googlemail.com>2011-03-09 21:29:09 +0800
committerrgommers <ralf.gommers@googlemail.com>2011-03-09 21:42:05 +0800
commitce9fea2c202f80ab39fa2b4866efd08ad075b9f2 (patch)
tree1f5099a8098b1dcc1b871e088b41ea210e93e327
parentf43223479f917e404e724e6a3df27aa701e6d6bf (diff)
downloadnumpy-ce9fea2c202f80ab39fa2b4866efd08ad075b9f2.tar.gz
BUG: fix 64-bit Intel Fortran compiler detection. Closes #1448.
-rw-r--r--numpy/distutils/fcompiler/intel.py8
-rw-r--r--numpy/distutils/tests/test_fcompiler_intel.py34
2 files changed, 38 insertions, 4 deletions
diff --git a/numpy/distutils/fcompiler/intel.py b/numpy/distutils/fcompiler/intel.py
index d7effb01e..b593a91c7 100644
--- a/numpy/distutils/fcompiler/intel.py
+++ b/numpy/distutils/fcompiler/intel.py
@@ -136,9 +136,9 @@ class IntelItaniumFCompiler(IntelFCompiler):
class IntelEM64TFCompiler(IntelFCompiler):
compiler_type = 'intelem'
compiler_aliases = ()
- description = 'Intel Fortran Compiler for EM64T-based apps'
+ description = 'Intel Fortran Compiler for 64-bit apps'
- version_match = intel_version_match('EM64T-based|Intel\\(R\\) 64')
+ version_match = intel_version_match('EM64T-based|Intel\\(R\\) 64|64|IA-64|64-bit')
possible_executables = ['ifort', 'efort', 'efc']
@@ -165,9 +165,9 @@ class IntelVisualFCompiler(BaseIntelFCompiler):
compiler_type = 'intelv'
description = 'Intel Visual Fortran Compiler for 32-bit apps'
version_match = intel_version_match('32-bit|IA-32')
-
+
def update_executables(self):
- f = dummy_fortran_file()
+ f = dummy_fortran_file()
self.executables['version_cmd'] = ['<F77>', '/FI', '/c',
f + '.f', '/o', f + '.o']
diff --git a/numpy/distutils/tests/test_fcompiler_intel.py b/numpy/distutils/tests/test_fcompiler_intel.py
new file mode 100644
index 000000000..ad03daeea
--- /dev/null
+++ b/numpy/distutils/tests/test_fcompiler_intel.py
@@ -0,0 +1,34 @@
+from numpy.testing import *
+
+import numpy.distutils.fcompiler
+
+intel_32bit_version_strings = [
+ ("Intel(R) Fortran Intel(R) 32-bit Compiler Professional for applications"\
+ "running on Intel(R) 32, Version 11.1", '11.1'),
+]
+
+intel_64bit_version_strings = [
+ ("Intel(R) Fortran IA-64 Compiler Professional for applications"\
+ "running on IA-64, Version 11.0", '11.0'),
+ ("Intel(R) Fortran Intel(R) 64 Compiler Professional for applications"\
+ "running on Intel(R) 64, Version 11.1", '11.1')
+]
+
+class TestIntelFCompilerVersions(TestCase):
+ def test_32bit_version(self):
+ fc = numpy.distutils.fcompiler.new_fcompiler(compiler='intel')
+ for vs, version in intel_32bit_version_strings:
+ v = fc.version_match(vs)
+ assert_(v == version)
+
+
+class TestIntelEM64TFCompilerVersions(TestCase):
+ def test_64bit_version(self):
+ fc = numpy.distutils.fcompiler.new_fcompiler(compiler='intelem')
+ for vs, version in intel_64bit_version_strings:
+ v = fc.version_match(vs)
+ assert_(v == version)
+
+
+if __name__ == '__main__':
+ run_module_suite()