Caching make

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Caching make

Pete Johnson
I am using make for IC design builds. Our tool flows typically involve
dozens of different tools and compile chains of up to 20 steps. Much
more complicated than the typical software flow. Some steps (like design
synthesis) can take up to a day to run.

To avoid accidentally triggering a recompile that could last a day, we
generally code the Makefile to allow dependencies to be switched in and
out using a variable defined on the command line. This generally works
well. However, for some targets which only require a few minutes to
build, this is undesirable. Too much manual intervention is required to
deal with this.

What would be useful is a cache. The idea is that targets could be saved
along with a checksum of the dependency files. Future compile steps
could be avoided by comparing the checksums of dependencies against
previous builds and then just copying the cached target file if
everything matched.

I have looked at CCache but this is C specific.

Does anyone have recommendations about how to set something like this up
in GNU Make? Has this been done before?

Thanks,

-Pete


_______________________________________________
Help-make mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Caching make

Noel Yap
You might want to look into using SCons.

HTH,
Noel

Pete Johnson wrote:

> I am using make for IC design builds. Our tool flows typically involve
> dozens of different tools and compile chains of up to 20 steps. Much
> more complicated than the typical software flow. Some steps (like design
> synthesis) can take up to a day to run.
>
> To avoid accidentally triggering a recompile that could last a day, we
> generally code the Makefile to allow dependencies to be switched in and
> out using a variable defined on the command line. This generally works
> well. However, for some targets which only require a few minutes to
> build, this is undesirable. Too much manual intervention is required to
> deal with this.
>
> What would be useful is a cache. The idea is that targets could be saved
> along with a checksum of the dependency files. Future compile steps
> could be avoided by comparing the checksums of dependencies against
> previous builds and then just copying the cached target file if
> everything matched.
>
> I have looked at CCache but this is C specific.
>
> Does anyone have recommendations about how to set something like this up
> in GNU Make? Has this been done before?
>
> Thanks,
>
> -Pete
>
>
> _______________________________________________
> Help-make mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/help-make


_______________________________________________
Help-make mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Caching make

Boris Kolpackov
In reply to this post by Pete Johnson
Pete Johnson <[hidden email]> writes:

> Does anyone have recommendations about how to set something like this up
> in GNU Make? Has this been done before?

There is no out-of-the-box support for this but you can do it yourself.
The following text should give you some ideas:

http://kolpackov.net/pipermail/notes/2004-September/000011.html

Note that the patch mentioned at the end of this text is mostly (except $$-)
integrated into mainline CVS and will appear in the next release.

-boris




_______________________________________________
Help-make mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-make