[Numpy-svn] r6497 - trunk/numpy/distutils/command

numpy-svn@scip... numpy-svn@scip...
Thu Feb 26 08:07:14 CST 2009


Author: cdavid
Date: 2009-02-26 08:07:09 -0600 (Thu, 26 Feb 2009)
New Revision: 6497

Modified:
   trunk/numpy/distutils/command/config.py
Log:
Add an expected keyword for check_type_size check, to speed things up on common platforms.

Modified: trunk/numpy/distutils/command/config.py
===================================================================
--- trunk/numpy/distutils/command/config.py	2009-02-26 14:06:55 UTC (rev 6496)
+++ trunk/numpy/distutils/command/config.py	2009-02-26 14:07:09 UTC (rev 6497)
@@ -165,7 +165,7 @@
 
         return self.try_compile(body, headers, include_dirs)
 
-    def check_type_size(self, type_name, headers=None, include_dirs=None, library_dirs=None):
+    def check_type_size(self, type_name, headers=None, include_dirs=None, library_dirs=None, expected=None):
         """Check size of a given type."""
         self._check_compiler()
 
@@ -185,6 +185,27 @@
                 headers, include_dirs, 'c')
         self._clean()
 
+        if expected:
+            body = r"""
+typedef %(type)s npy_check_sizeof_type;
+int main ()
+{
+    static int test_array [1 - 2 * !(((long) (sizeof (npy_check_sizeof_type))) == %(size)s)];
+    test_array [0] = 0
+
+    ;
+    return 0;
+}
+"""
+            for size in expected:
+                try:
+                    self._compile(body % {'type': type_name, 'size': size},
+                            headers, include_dirs, 'c')
+                    self._clean()
+                    return size
+                except CompileError:
+                    pass
+
         # this fails to *compile* if size > sizeof(type)
         body = r"""
 typedef %(type)s npy_check_sizeof_type;



More information about the Numpy-svn mailing list