Add an option to disable lib2to3

lib2to3 is a library to convert Python 2.x code to Python 3.x. As
such, it is probably not very useful on embedded system targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>

---
 Makefile.pre.in |   18 ++++++++++++++----
 configure.ac    |    6 ++++++
 setup.py        |    5 +++--
 3 files changed, 23 insertions(+), 6 deletions(-)

Index: b/Makefile.pre.in
===================================================================
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1106,7 +1106,9 @@
 	(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
 endif
 	-rm -f $(DESTDIR)$(BINDIR)/2to3
+ifeq (@LIB2TO3@,yes)
 	(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
+endif
 	-rm -f $(DESTDIR)$(BINDIR)/pyvenv
 	(cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
 	if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
@@ -1146,7 +1148,6 @@
 		html json http dbm xmlrpc \
 		sqlite3 \
 		logging csv wsgiref urllib \
-		lib2to3 lib2to3/fixes lib2to3/pgen2 \
 		ctypes ctypes/macholib \
 		idlelib idlelib/Icons \
 		distutils distutils/command $(XMLLIBSUBDIRS) \
@@ -1188,9 +1189,6 @@
                 test/test_importlib/namespace_pkgs/module_and_namespace_package \
                 test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
 		sqlite3/test \
-		lib2to3/tests \
-		lib2to3/tests/data lib2to3/tests/data/fixers \
-		lib2to3/tests/data/fixers/myfixes \
 		ctypes/test \
 		idlelib/idle_test \
 		distutils/tests \
@@ -1203,6 +1201,14 @@
 LIBSUBDIRS += pydoc_data
 endif
 
+ifeq (@LIB2TO3@,yes)
+LIBSUBDIRS += lib2to3 lib2to3/fixes lib2to3/pgen2
+TESTSUBDIRS += lib2to3/tests			\
+	lib2to3/tests/data			\
+	lib2to3/tests/data/fixers		\
+	lib2to3/tests/data/fixers/myfixes
+endif
+
 ifeq (@TEST_MODULES@,yes)
 LIBSUBDIRS += $(TESTSUBDIRS)
 endif
@@ -1298,10 +1304,12 @@
 		-d $(LIBDEST)/site-packages -f $(STDLIB_CACHE_FLAGS) \
 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
 endif
+ifeq (@LIB2TO3@,yes)
 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
 		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
+endif
 
 # Create the PLATDIR source directory, if one wasn't distributed..
 $(srcdir)/Lib/$(PLATDIR):
Index: b/setup.py
===================================================================
--- a/setup.py
+++ b/setup.py
@@ -2213,10 +2213,11 @@
     import warnings
     warnings.filterwarnings("ignore",category=DeprecationWarning)
 
-    scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
-               'Lib/smtpd.py']
+    scripts = ['Tools/scripts/idle3', 'Lib/smtpd.py']
     if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
         scripts += [ 'Tools/scripts/pydoc3' ]
+    if not '--disable-lib2to3' in sysconfig.get_config_var("CONFIG_ARGS"):
+        scripts += [ 'Tools/scripts/2to3' ]
 
     setup(# PyPI Metadata (PEP 301)
           name = "Python",
Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -2684,6 +2684,12 @@
 	AS_HELP_STRING([--disable-test-modules], [disable test modules]),
 	[ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
 
+AC_SUBST(LIB2TO3)
+
+AC_ARG_ENABLE(lib2to3,
+	AS_HELP_STRING([--disable-lib2to3], [disable lib2to3]),
+	[ LIB2TO3="${enableval}" ], [ LIB2TO3=yes ])
+
 # Check for enable-ipv6
 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
 AC_MSG_CHECKING([if --enable-ipv6 is specified])
