Add an option to disable pydoc

It removes 0.5 MB of data from the target plus the pydoc script
itself.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---
 Makefile.pre.in |    6 +++++-
 configure.in    |    5 +++++
 setup.py        |   10 +++++++---
 3 files changed, 17 insertions(+), 4 deletions(-)

Index: Python-2.7.2/Makefile.pre.in
===================================================================
--- Python-2.7.2.orig/Makefile.pre.in
+++ Python-2.7.2/Makefile.pre.in
@@ -868,7 +868,7 @@
 		multiprocessing multiprocessing/dummy \
 		unittest \
 		lib-old \
-		curses pydoc_data $(MACHDEPS)
+		curses $(MACHDEPS)
 
 ifeq (@TEST_MODULES@,yes)
 LIBSUBDIRS += lib-tk/test lib-tk/test/test_tkinter \
@@ -880,6 +880,10 @@
 		ctypes/test distutils/tests unittest/test
 endif
 
+ifeq (@PYDOC@,yes)
+LIBSUBDIRS += pydoc_data
+endif
+
 libinstall:	build_all $(srcdir)/Lib/$(PLATDIR)
 	@for i in $(SCRIPTDIR) $(LIBDEST); \
 	do \
Index: Python-2.7.2/configure.in
===================================================================
--- Python-2.7.2.orig/configure.in
+++ Python-2.7.2/configure.in
@@ -2407,6 +2407,11 @@
         esac])
 fi
 
+AC_SUBST(PYDOC)
+
+AC_ARG_ENABLE(pydoc,
+	AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
+	[ PYDOC="${enableval}" ], [ PYDOC=yes ])
 
 AC_SUBST(TEST_MODULES)
 
Index: Python-2.7.2/setup.py
===================================================================
--- Python-2.7.2.orig/setup.py
+++ Python-2.7.2/setup.py
@@ -2092,6 +2092,12 @@
     # turn off warnings when deprecated modules are imported
     import warnings
     warnings.filterwarnings("ignore",category=DeprecationWarning)
+
+    scripts = ['Tools/scripts/idle', 'Tools/scripts/2to3',
+               'Lib/smtpd.py']
+    if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
+        scripts += [ 'Tools/scripts/pydoc' ]
+
     setup(# PyPI Metadata (PEP 301)
           name = "Python",
           version = sys.version.split()[0],
@@ -2112,9 +2118,7 @@
           ext_modules=[Extension('_struct', ['_struct.c'])],
 
           # Scripts to install
-          scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
-                     'Tools/scripts/2to3',
-                     'Lib/smtpd.py']
+          scripts = scripts,
         )
 
 # --install-platlib
