Menu

signature md5 for targets ?

Help
2007-10-09
2013-03-15
  • Nobody/Anonymous

    <<< Begin Makefile
    %.a: %.z : signature md5
    echo "test" > $@

    %.b: %.a : signature md5
    echo "test" > $@

    %.c: %.b : signature md5
    echo "test" > $@
    <<< End Makefile

    After successfull build of all target I do a "touch on a.z"
    -> as expected nothing will be rebuild.

    But if I touch a.a or a.b the following targets will be rebuild.
    Does md5 has not effect on targets?

    Sometimes the timestamp changes of target and the rebuild is very expensive.

    Marc

     
    • Anders Johnson

      Anders Johnson - 2007-10-09

      When I try this, I don't see following targets being built -- just the targets that were touched.

      The issue here is that makepp assumes that the build info is no longer valid because the timestamp changed, and therefore you could have modified the file.  Makepp is somewhat pessimistic, and rather than recomputing the MD5 to see if the build info is valid, it will just rebuild the touched target.

       
  • Daniel Pfeiffer

    Daniel Pfeiffer - 2011-10-03

    This has since long worked as expected.  In fact makeppreplay / mppr makes use of this to save makepp / mpp recompilations.

     

Log in to post a comment.