Extend dependency tracking so that .o files are rebuilt.

Two new tests are needed:

Don't skip building an extension if any of the depends files are newer
than the target.

Pass ext.depends to compiler.compile() so that it can track individual
files.
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 21dd0dc..943f30a 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -388,7 +388,6 @@
     # get_outputs ()
 
     def build_extensions(self):
-
         # First, sanity-check the 'extensions' list
         self.check_extensions_list(self.extensions)
 
@@ -396,7 +395,6 @@
             self.build_extension(ext)
 
     def build_extension(self, ext):
-
         sources = ext.sources
         if sources is None or type(sources) not in (ListType, TupleType):
             raise DistutilsSetupError, \
@@ -421,7 +419,6 @@
         else:
             ext_filename = os.path.join(self.build_lib,
                                         self.get_ext_filename(fullname))
-
         depends = sources + ext.depends
         if not (self.force or newer_group(depends, ext_filename, 'newer')):
             log.debug("skipping '%s' extension (up-to-date)", ext.name)
@@ -467,7 +464,8 @@
                                         macros=macros,
                                         include_dirs=ext.include_dirs,
                                         debug=self.debug,
-                                        extra_postargs=extra_args)
+                                        extra_postargs=extra_args,
+                                        depends=ext.depends)
 
         # XXX -- this is a Vile HACK!
         #