--- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -633,9 +633,11 @@ sharedmods: $(BUILDPYTHON) pybuilddir.tx *) quiet="";; \ esac; \ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + PYTHONXCPREFIX='$(DESTDIR)$(prefix)' \ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + PYTHONXCPREFIX='$(DESTDIR)$(prefix)' \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build @@ -1750,8 +1752,10 @@ libainstall: @DEF_MAKE_RULE@ python-conf # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: all + CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + --skip-build \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \ --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ def get_platform(): return sys.platform -CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ) +CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ) or ('PYTHONXCPREFIX' in os.environ) HOST_PLATFORM = get_platform() MS_WINDOWS = (HOST_PLATFORM == 'win32') CYGWIN = (HOST_PLATFORM == 'cygwin') @@ -575,6 +575,13 @@ class PyBuildExt(build_ext): ext.name, level=1) return + # Import check will not work when cross-compiling. + if 'PYTHONXCPREFIX' in os.environ: + self.announce( + 'WARNING: skipping import check for cross-compiled: "%s"' % + ext.name) + return + # Workaround for Mac OS X: The Carbon-based modules cannot be # reliably imported into a command-line Python if 'Carbon' in ext.extra_link_args: