From 0fbfab21290eeca5b908745e5fb51d2ab2a50aef Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 22 Feb 2017 17:53:40 -0800
Subject: [PATCH] Support PGEN_FOR_BUILD and FREEZE_IMPORTLIB_FOR_BUILD

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[ Andrey Smirnov: ported to Python 3.6 ]
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
 Makefile.pre.in | 10 ++++++++++
 configure.ac    |  3 +++
 2 files changed, 13 insertions(+)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index 82b01c9..7c14a4e 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -719,10 +719,15 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
 ############################################################################
 # Importlib
 
+ifeq (@FREEZE_IMPORTLIB_FOR_BUILD@,)
 Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
 
 Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
 	$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+else
+Programs/_freeze_importlib: @FREEZE_IMPORTLIB_FOR_BUILD@
+	cp $^ $@
+endif
 
 Python/importlib_external.h: @GENERATED_COMMENT@ $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib Python/marshal.c
 	./Programs/_freeze_importlib \
@@ -796,8 +801,13 @@ $(GRAMMAR_H): @GENERATED_COMMENT@ $(GRAMMAR_INPUT) $(PGEN)
 $(GRAMMAR_C): @GENERATED_COMMENT@ $(GRAMMAR_H)
 	touch $(GRAMMAR_C)
 
+ifeq (@PGEN_FOR_BUILD@,)
 $(PGEN): $(PGENOBJS)
 		$(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
+else
+$(PGEN): @PGEN_FOR_BUILD@
+		cp $^ $@
+endif
 
 Parser/grammar.o:	$(srcdir)/Parser/grammar.c \
 				$(srcdir)/Include/token.h \
diff --git a/configure.ac b/configure.ac
index 9a61018..3a12788 100644
--- a/configure.ac
+++ b/configure.ac
@@ -91,6 +91,9 @@ fi
 AC_SUBST(PYTHON_FOR_BUILD)
 AC_SUBST(GENERATED_COMMENT)
 
+AC_SUBST(PGEN_FOR_BUILD)
+AC_SUBST(FREEZE_IMPORTLIB_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
 dnl can cause trouble.
-- 
2.9.3

