[Python-checkins] r69302 - python/trunk/Lib/distutils/sysconfig.py

neil.schemenauer python-checkins at python.org
Thu Feb 5 17:14:40 CET 2009


Author: neil.schemenauer
Date: Thu Feb  5 17:14:39 2009
New Revision: 69302

Log:
Fix get_python_inc() to work when building in a directory separate from
the source.  Also, define 'srcdir' on non-posix platforms.


Modified:
   python/trunk/Lib/distutils/sysconfig.py

Modified: python/trunk/Lib/distutils/sysconfig.py
==============================================================================
--- python/trunk/Lib/distutils/sysconfig.py	(original)
+++ python/trunk/Lib/distutils/sysconfig.py	Thu Feb  5 17:14:39 2009
@@ -73,14 +73,17 @@
         prefix = plat_specific and EXEC_PREFIX or PREFIX
     if os.name == "posix":
         if python_build:
+            # Assume the executable is in the build directory.  The
+            # pyconfig.h file should be in the same directory.  Since
+            # the build directory may not be the source directory, we
+            # must use "srcdir" from the makefile to find the "Include"
+            # directory.
             base = os.path.dirname(os.path.abspath(sys.executable))
             if plat_specific:
-                inc_dir = base
+                return base
             else:
-                inc_dir = os.path.join(base, "Include")
-                if not os.path.exists(inc_dir):
-                    inc_dir = os.path.join(os.path.dirname(base), "Include")
-            return inc_dir
+                incdir = os.path.join(get_config_var('srcdir'), 'Include')
+                return os.path.normpath(incdir)
         return os.path.join(prefix, "include", "python" + get_python_version())
     elif os.name == "nt":
         return os.path.join(prefix, "include")
@@ -521,6 +524,9 @@
         _config_vars['prefix'] = PREFIX
         _config_vars['exec_prefix'] = EXEC_PREFIX
 
+        if 'srcdir' not in _config_vars:
+            _config_vars['srcdir'] = project_base
+
         if sys.platform == 'darwin':
             kernel_version = os.uname()[2] # Kernel version (8.4.3)
             major_version = int(kernel_version.split('.')[0])


More information about the Python-checkins mailing list