summaryrefslogtreecommitdiffstats
path: root/Lib/distutils
diff options
context:
space:
mode:
authordoko@python.org <doko@python.org>2013-01-31 22:52:03 (GMT)
committerdoko@python.org <doko@python.org>2013-01-31 22:52:03 (GMT)
commitd65e2bab3b438f883ef28245f51795b14a4c498f (patch)
treef9a237fb2be7cf175a68940f4210407842f0468a /Lib/distutils
parentc5200b489de125088fdc445b5f5c97d7fb98cead (diff)
downloadcpython-d65e2bab3b438f883ef28245f51795b14a4c498f.zip
cpython-d65e2bab3b438f883ef28245f51795b14a4c498f.tar.gz
cpython-d65e2bab3b438f883ef28245f51795b14a4c498f.tar.bz2
- Issue #17086: Backport the patches from the 3.3 branch to cross-build
the package.
Diffstat (limited to 'Lib/distutils')
-rw-r--r--Lib/distutils/sysconfig.py7
-rw-r--r--Lib/distutils/util.py4
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index daa4dc7..250ef38 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -37,6 +37,11 @@ if os.name == "nt" and "\\pcbuild\\amd64" in project_base[-14:].lower():
project_base = os.path.abspath(os.path.join(project_base, os.path.pardir,
os.path.pardir))
+# set for cross builds
+if "_PYTHON_PROJECT_BASE" in os.environ:
+ # this is the build directory, at least for posix
+ project_base = os.path.normpath(os.environ["_PYTHON_PROJECT_BASE"])
+
# python_build: (Boolean) if true, we're either building Python or
# building an extension with an un-installed Python, so we use
# different (hard-wired) directories.
@@ -230,7 +235,7 @@ def get_config_h_filename():
def get_makefile_filename():
"""Return full pathname of installed Makefile from the Python build."""
if python_build:
- return os.path.join(os.path.dirname(sys.executable), "Makefile")
+ return os.path.join(project_base, "Makefile")
lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
return os.path.join(lib_dir, "config", "Makefile")
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index 5279411..ea6ed8a 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -51,6 +51,10 @@ def get_platform ():
return 'win-ia64'
return sys.platform
+ # Set for cross builds explicitly
+ if "_PYTHON_HOST_PLATFORM" in os.environ:
+ return os.environ["_PYTHON_HOST_PLATFORM"]
+
if os.name != "posix" or not hasattr(os, 'uname'):
# XXX what about the architecture? NT is Intel or Alpha,
# Mac OS is M68k or PPC, etc.