]> granicus.if.org Git - python/commitdiff
Add --check-tkinter to setup.py. Install IDLE. Fixes #634078.
authorMartin v. Löwis <martin@v.loewis.de>
Wed, 6 Nov 2002 21:59:33 +0000 (21:59 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Wed, 6 Nov 2002 21:59:33 +0000 (21:59 +0000)
Makefile.pre.in
Misc/NEWS
Tools/idle/setup.py

index 8a47d6fdbe7a65201930d76afe20bd1f9c17f02f..37df9a12dcee05d6471c1b468a764282e3c87ab7 100644 (file)
@@ -530,7 +530,7 @@ memtest:    all platform
                $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
 
 # Install everything
-install:       altinstall bininstall maninstall
+install:       altinstall bininstall maninstall idleinstall
 
 # Install almost everything without disturbing previous versions
 altinstall:    altbininstall libinstall inclinstall libainstall \
@@ -826,6 +826,10 @@ frameworkinstallunixtools:
        $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \
                srcdir=$(srcdir) builddir=. dstroot=$(PYTHONFRAMEWORKPREFIX)/../..
 
+# This installs IDLE
+idleinstall:
+       SRCDIR=$(srcdir) ./$(BUILDPYTHON) $(srcdir)/Tools/idle/setup.py install --check-tkinter
+
 # Build the toplevel Makefile
 Makefile.pre: Makefile.pre.in config.status
        CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
index d35cc0f37196c3fa1e9a263b23737c35a07f86df..5d97dd75616ddf9ec2b0fef0652eff2fdddcd8b2 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -582,6 +582,8 @@ Tools/Demos
 Build
 -----
 
+- On Unix, IDLE is now installed automatically.
+
 - The fpectl module is not built by default; it's dangerous or useless
   except in the hands of experts.
 
index ba27bed90534565153204f0e65ef847016445050..71549a865002701bcf805b90027aa83821a07998 100644 (file)
@@ -1,9 +1,26 @@
-import os,glob
+import os, glob, sys
 from distutils.core import setup
 from distutils.command.build_py import build_py
 from distutils.command.install_lib import install_lib
 import idlever
 
+try:
+    pos = sys.argv.index("--check-tkinter")
+except ValueError:
+    pass
+else:
+    del sys.argv[pos]
+    try:
+        import _tkinter
+    except ImportError:
+        print >>sys.stderr, "Cannot install IDLE without _tkinter"
+        raise SystemExit
+
+try:
+    package_dir = os.path.join(os.environ["SRCDIR"], "Tools", "idle")
+except KeyError:
+    package_dir = "."
+
 # name of idle package
 idlelib = "idlelib"
 
@@ -24,7 +41,8 @@ class idle_build_py(build_py):
             outfile = self.get_plain_outfile(self.build_lib, [idlelib], name)
             dir = os.path.dirname(outfile)
             self.mkpath(dir)
-            self.copy_file(name, outfile, preserve_mode = 0)
+            self.copy_file(os.path.join(package_dir, name), outfile,
+                           preserve_mode = 0)
         for name in Icons:
             outfile = self.get_plain_outfile(self.build_lib,
                                              [idlelib,"Icons"], name)
@@ -35,7 +53,8 @@ class idle_build_py(build_py):
 
     def get_source_files(self):
         # returns the .py files, the .txt files, and the icons
-        icons = [os.path.join("Icons",name) for name in Icons]
+        icons = [os.path.join(package_dir, "Icons",name) for name in Icons]
+        txts = [os.path.join(package_dir, name) for name in txt_files]
         return build_py.get_source_files(self)+txt_files+icons
 
     def get_outputs(self, include_bytecode=1):
@@ -75,7 +94,7 @@ as well as a Python shell window and a debugger.""",
 
       cmdclass = {'build_py':idle_build_py,
                   'install_lib':idle_install_lib},
-      package_dir = {idlelib:'.'},
+      package_dir = {idlelib: package_dir},
       packages = [idlelib],
-      scripts = ['idle']
+      scripts = [os.path.join(package_dir, 'idle')]
       )