diff options
-rw-r--r-- | Makefile.pre.in | 6 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Tools/idle/setup.py | 29 |
3 files changed, 31 insertions, 6 deletions
diff --git a/Makefile.pre.in b/Makefile.pre.in index 8a47d6f..37df9a1 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -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 @@ -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. diff --git a/Tools/idle/setup.py b/Tools/idle/setup.py index ba27bed..71549a8 100644 --- a/Tools/idle/setup.py +++ b/Tools/idle/setup.py @@ -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')] ) |