| Add support in Python build system to specify host pgen |
| |
| Python needs a "pgen" program to build itself. Unfortunately, the |
| Python build system assumes that it can use the pgen program it has |
| just built to build itself. Obviously, this cannot work in |
| cross-compilation mode since the pgen program have been built for the |
| target. |
| |
| Therefore, this patch adds support in the Python build system for the |
| new PGEN_FOR_BUILD variable, so that we can point Python ./configure |
| script to the pgen program that have been previously built for the |
| host. |
| |
| Patch ported to python2.7 by Maxime Ripard <ripard@archos.com>, and |
| later significantly reworked by Thomas Petazzoni |
| <thomas.petazzoni@free-electrons.com>, with some inspiration taken |
| from the Python patches of the PTXdist project, and then ported to |
| python3.3 by Maxime Ripard <maxime.ripard@free-electrons.com> |
| |
| Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> |
| --- |
| Makefile.pre.in | 5 +++-- |
| configure.ac | 5 +++++ |
| 2 files changed, 8 insertions(+), 2 deletions(-) |
| |
| Index: Python-3.3.0/Makefile.pre.in |
| =================================================================== |
| --- Python-3.3.0.orig/Makefile.pre.in |
| +++ Python-3.3.0/Makefile.pre.in |
| @@ -239,6 +239,7 @@ |
| ########################################################################## |
| # Parser |
| PGEN= Parser/pgen$(EXE) |
| +PGEN_FOR_BUILD=@PGEN_FOR_BUILD@ |
| |
| PSRCS= \ |
| Parser/acceler.c \ |
| @@ -639,8 +640,8 @@ |
| |
| $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS) |
| @$(MKDIR_P) Include |
| - $(MAKE) $(PGEN) |
| - $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) |
| + $(MAKE) $(PGEN_FOR_BUILD) |
| + $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) |
| $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS) |
| $(MAKE) $(GRAMMAR_H) |
| touch $(GRAMMAR_C) |
| Index: Python-3.3.0/configure.ac |
| =================================================================== |
| --- Python-3.3.0.orig/configure.ac |
| +++ Python-3.3.0/configure.ac |
| @@ -51,10 +51,15 @@ |
| AC_MSG_RESULT($interp) |
| PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp |
| fi |
| + AC_MSG_CHECKING(pgen for build) |
| + PGEN_FOR_BUILD="${PGEN_FOR_BUILD}" |
| + AC_MSG_RESULT($PGEN_FOR_BUILD) |
| else |
| PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E' |
| + PGEN_FOR_BUILD='./$(PGEN)' |
| fi |
| AC_SUBST(PYTHON_FOR_BUILD) |
| +AC_SUBST(PGEN_FOR_BUILD) |
| |
| dnl Ensure that if prefix is specified, it does not end in a slash. If |
| dnl it does, we get path names containing '//' which is both ugly and |