[Python-Dev] addressing distutils inability to track file dependencies
Guido van Rossum
Mon, 17 Jun 2002 10:47:38 -0400
> Here's a rough strategy for exploiting this feature in distutils.
> Does it make sense? Happily, I can't see any possible use of make.
> There is an option to enable dependency tracking. Not sure how the
> option is passed: command line (tedious), setup (not easily customized
> by user), does distutils have a user options file of some sort?
We could make the configure script check for GCC, and if detected, add
-MD to it.
> Each time distutils compiles a file it passes the -MD file to generate
> a .d file.
> On subsequent compilations, it checks for the .d file. If the .d file
> does not exist or is older than the .c file, it recompiles.
> Otherwise, it parses the .d file and compares the times for each of
> the dependencies.
Sounds good. It could skip parsing the .d file if the .o file
doesn't exist or is older than the .c file. If there is no .d file, I
would suggest only recompiling if the .c file is newer than the .o
file (otherwise systems without GCC will see recompilation of
everything all the time -- not a good idea IMO.)
Go ahead and implement this!
--Guido van Rossum (home page: http://www.python.org/~guido/)