summaryrefslogtreecommitdiffstats
path: root/Lib/sysconfig.py
diff options
context:
space:
mode:
authorTrent Nelson <trent@trent.me>2012-10-16 12:13:12 (GMT)
committerTrent Nelson <trent@trent.me>2012-10-16 12:13:12 (GMT)
commitc101bf32c4011a3c7f3249b8c15bcf95b944095b (patch)
tree2f9bd362763b518d9482ade7265b23f8a2472171 /Lib/sysconfig.py
parent8a420227488aa743e20c27368ee64a114c1d651f (diff)
downloadcpython-c101bf32c4011a3c7f3249b8c15bcf95b944095b.zip
cpython-c101bf32c4011a3c7f3249b8c15bcf95b944095b.tar.gz
cpython-c101bf32c4011a3c7f3249b8c15bcf95b944095b.tar.bz2
Issue #15298: ensure _sysconfigdata is generated in build directory,
not source directory. Patch by Richard Oudkerk (sbt).
Diffstat (limited to 'Lib/sysconfig.py')
-rw-r--r--Lib/sysconfig.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index ba4024f..41a233b 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -390,13 +390,22 @@ def _generate_posix_vars():
if _PYTHON_BUILD:
vars['LDSHARED'] = vars['BLDSHARED']
- destfile = os.path.join(os.path.dirname(__file__), '_sysconfigdata.py')
+ pybuilddir = 'build/lib.%s-%s' % (get_platform(), sys.version[:3])
+ if hasattr(sys, "gettotalrefcount"):
+ pybuilddir += '-pydebug'
+ os.makedirs(pybuilddir, exist_ok=True)
+ destfile = os.path.join(pybuilddir, '_sysconfigdata.py')
+
with open(destfile, 'w', encoding='utf8') as f:
f.write('# system configuration generated and used by'
' the sysconfig module\n')
f.write('build_time_vars = ')
pprint.pprint(vars, stream=f)
+ # Create file used for sys.path fixup -- see Modules/getpath.c
+ with open('pybuilddir.txt', 'w', encoding='ascii') as f:
+ f.write(pybuilddir)
+
def _init_posix(vars):
"""Initialize the module as appropriate for POSIX systems."""
# _sysconfigdata is generated at build time, see _generate_posix_vars()