[Numpy-svn] r3564 - trunk/numpy/distutils/fcompiler

numpy-svn at scipy.org numpy-svn at scipy.org
Wed Feb 28 13:32:22 EST 2007


Author: pearu
Date: 2007-02-28 12:32:18 -0600 (Wed, 28 Feb 2007)
New Revision: 3564

Modified:
   trunk/numpy/distutils/fcompiler/ibm.py
Log:
Fixing xlf compiler for AIX with 9.x and 10.x version support (needs testing and checking that xlf 8.x compilers are still detected)

Modified: trunk/numpy/distutils/fcompiler/ibm.py
===================================================================
--- trunk/numpy/distutils/fcompiler/ibm.py	2007-02-28 13:12:06 UTC (rev 3563)
+++ trunk/numpy/distutils/fcompiler/ibm.py	2007-02-28 18:32:18 UTC (rev 3564)
@@ -11,7 +11,7 @@
     version_pattern =  r'(xlf\(1\)\s*|)IBM XL Fortran ((Advanced Edition |)Version |Enterprise Edition V)(?P<version>[^\s*]*)'
     #IBM XL Fortran Enterprise Edition V10.1 for AIX \nVersion: 10.01.0000.0004
     executables = {
-        'version_cmd'  : ["xlf"],
+        'version_cmd'  : ["xlf","-qversion"],
         'compiler_f77' : ["xlf"],
         'compiler_fix' : ["xlf90", "-qfixed"],
         'compiler_f90' : ["xlf90"],
@@ -24,14 +24,16 @@
         version = FCompiler.get_version(self,*args,**kwds)
 
         if version is None:
-            # Let's try version_cmd with -qversion flag that V10 supports:
-            l = self.__class__.executables['version_cmd']
-            if '-qversion' not in l:
-                l.append('-qversion')
+            # Let's try version_cmd without -qversion flag that
+            # xlf versions <=8.x don't have.
+            version_cmd =  self.version_cmd
+            orig_version_cmd = version_cmd[:]
+            if '-qversion' in version_cmd:
+                version_cmd.remove('-qversion')
                 version = FCompiler.get_version(self,*args,**kwds)
                 if version is None:
-                    l.remove('-qversion')
-                
+                    version_cmd[:] = orig_version_cmd
+
         xlf_dir = '/etc/opt/ibmcmp/xlf'
         if version is None and os.path.isdir(xlf_dir):
             # If the output of xlf does not contain version info
@@ -61,7 +63,10 @@
         version = self.get_version(ok_status=[0,40])
         if version is not None:
             import tempfile
-            xlf_cfg = '/etc/opt/ibmcmp/xlf/%s/xlf.cfg' % version
+            if sys.platform.startswith('aix'):
+                xlf_cfg = '/etc/xlf.cfg'
+            else:
+                xlf_cfg = '/etc/opt/ibmcmp/xlf/%s/xlf.cfg' % version
             new_cfg = tempfile.mktemp()+'_xlf.cfg'
             log.info('Creating '+new_cfg)
             fi = open(xlf_cfg,'r')




More information about the Numpy-svn mailing list