Commit dc46175d authored by Martin v. Löwis's avatar Martin v. Löwis

Add --check-tkinter to setup.py. Install IDLE. Fixes #634078.

parent eb58f5d6
...@@ -530,7 +530,7 @@ memtest: all platform ...@@ -530,7 +530,7 @@ memtest: all platform
$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
# Install everything # Install everything
install: altinstall bininstall maninstall install: altinstall bininstall maninstall idleinstall
# Install almost everything without disturbing previous versions # Install almost everything without disturbing previous versions
altinstall: altbininstall libinstall inclinstall libainstall \ altinstall: altbininstall libinstall inclinstall libainstall \
...@@ -826,6 +826,10 @@ frameworkinstallunixtools: ...@@ -826,6 +826,10 @@ frameworkinstallunixtools:
$(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \ $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \
srcdir=$(srcdir) builddir=. dstroot=$(PYTHONFRAMEWORKPREFIX)/../.. srcdir=$(srcdir) builddir=. dstroot=$(PYTHONFRAMEWORKPREFIX)/../..
# This installs IDLE
idleinstall:
SRCDIR=$(srcdir) ./$(BUILDPYTHON) $(srcdir)/Tools/idle/setup.py install --check-tkinter
# Build the toplevel Makefile # Build the toplevel Makefile
Makefile.pre: Makefile.pre.in config.status Makefile.pre: Makefile.pre.in config.status
CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
......
...@@ -582,6 +582,8 @@ Tools/Demos ...@@ -582,6 +582,8 @@ Tools/Demos
Build Build
----- -----
- On Unix, IDLE is now installed automatically.
- The fpectl module is not built by default; it's dangerous or useless - The fpectl module is not built by default; it's dangerous or useless
except in the hands of experts. except in the hands of experts.
......
import os,glob import os, glob, sys
from distutils.core import setup from distutils.core import setup
from distutils.command.build_py import build_py from distutils.command.build_py import build_py
from distutils.command.install_lib import install_lib from distutils.command.install_lib import install_lib
import idlever 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 # name of idle package
idlelib = "idlelib" idlelib = "idlelib"
...@@ -24,7 +41,8 @@ class idle_build_py(build_py): ...@@ -24,7 +41,8 @@ class idle_build_py(build_py):
outfile = self.get_plain_outfile(self.build_lib, [idlelib], name) outfile = self.get_plain_outfile(self.build_lib, [idlelib], name)
dir = os.path.dirname(outfile) dir = os.path.dirname(outfile)
self.mkpath(dir) 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: for name in Icons:
outfile = self.get_plain_outfile(self.build_lib, outfile = self.get_plain_outfile(self.build_lib,
[idlelib,"Icons"], name) [idlelib,"Icons"], name)
...@@ -35,7 +53,8 @@ class idle_build_py(build_py): ...@@ -35,7 +53,8 @@ class idle_build_py(build_py):
def get_source_files(self): def get_source_files(self):
# returns the .py files, the .txt files, and the icons # 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 return build_py.get_source_files(self)+txt_files+icons
def get_outputs(self, include_bytecode=1): def get_outputs(self, include_bytecode=1):
...@@ -75,7 +94,7 @@ as well as a Python shell window and a debugger.""", ...@@ -75,7 +94,7 @@ as well as a Python shell window and a debugger.""",
cmdclass = {'build_py':idle_build_py, cmdclass = {'build_py':idle_build_py,
'install_lib':idle_install_lib}, 'install_lib':idle_install_lib},
package_dir = {idlelib:'.'}, package_dir = {idlelib: package_dir},
packages = [idlelib], packages = [idlelib],
scripts = ['idle'] scripts = [os.path.join(package_dir, 'idle')]
) )
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment