Commit 9028d0a5 authored by Fred Drake's avatar Fred Drake

Visious hackery to solve a build-control problem related to our use of

distutils for the library modules built as shared objects.  A better solution
appears possible, but with the threat that the distutils becomes more
magical ("complex").
This closes SF bug #458343.
parent e3d7622f
...@@ -456,6 +456,17 @@ class build_ext (Command): ...@@ -456,6 +456,17 @@ class build_ext (Command):
debug=self.debug, debug=self.debug,
extra_postargs=extra_args) extra_postargs=extra_args)
# XXX -- this is a Vile HACK!
#
# The setup.py script for Python on Unix needs to be able to
# get this list so it can perform all the clean up needed to
# avoid keeping object files around when cleaning out a failed
# build of an extension module. Since Distutils does not
# track dependencies, we have to get rid of intermediates to
# ensure all the intermediates will be properly re-built.
#
self._built_objects = objects[:]
# Now link the object files together into a "shared object" -- # Now link the object files together into a "shared object" --
# of course, first we have to figure out all the other things # of course, first we have to figure out all the other things
# that go into the mix. # that go into the mix.
......
...@@ -172,6 +172,13 @@ class PyBuildExt(build_ext): ...@@ -172,6 +172,13 @@ class PyBuildExt(build_ext):
self.get_ext_filename(fullname)) self.get_ext_filename(fullname))
os.remove(ext_filename) os.remove(ext_filename)
# XXX -- This relies on a Vile HACK in
# distutils.command.build_ext.build_extension(). The
# _built_objects attribute is stored there strictly for
# use here.
for filename in self._built_objects:
os.remove(filename)
def get_platform (self): def get_platform (self):
# Get value of sys.platform # Get value of sys.platform
platform = sys.platform platform = sys.platform
......
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