<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 1, 2020 at 1:22 PM Felix Fietkau <<a href="mailto:nbd@nbd.name">nbd@nbd.name</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2020-06-01 19:11, Michael Jones wrote:<br>
> <br>
> <br>
> On Mon, Jun 1, 2020 at 10:33 AM Roman Yeryomin <<a href="mailto:roman@advem.lv" target="_blank">roman@advem.lv</a><br>
> <mailto:<a href="mailto:roman@advem.lv" target="_blank">roman@advem.lv</a>>> wrote:<br>
> <br>
>     Set CCACHE_DIR to $(TOPDIR)/.ccache and CCACHE_BASEDIR to $(TOPDIR).<br>
>     This allows to do clean and dirclean. Cache hit rate for test build<br>
>     after dirclean is ~65%.<br>
>     If CCACHE is enabled stats are printed out at the end of building<br>
>     process.<br>
> <br>
>     Signed-off-by: Roman Yeryomin <<a href="mailto:roman@advem.lv" target="_blank">roman@advem.lv</a> <mailto:<a href="mailto:roman@advem.lv" target="_blank">roman@advem.lv</a>>><br>
> <br>
> <br>
> This certainly looks like an improvement.<br>
> <br>
> However, there is an important usage case that this change doesn't address.<br>
> <br>
> Frequently when I am working on OpenWRT related things, I have many<br>
> different workspaces all tied to the same git repository hosted<br>
> externally. The reason for this is to allow multiple builds to live and<br>
> run independently.<br>
> <br>
> Having the CCACHE_DIR be located *inside* the repository doesn't share<br>
> the cache between multiple workspaces.<br>
> <br>
> So can the CCACHE_DIR be made configurable at build time based on the<br>
> .config file? Perhaps it can default to this, and only be set to the<br>
> value in .config if provided? For my purposes, I would always set the<br>
> CCACHE_DIR to a path that all of my workspaces use.<br>
I don't think there's a need for that config option. You could simply<br>
add a .ccache symlink in your source dir and point it to your shared<br>
cache. I do the same with dl on my trees.<br>
<br>
- Felix<br></blockquote><div><br></div><div>I disagree.</div><div><br></div><div>Having build behavior change based on a symlink is undesirable.</div><div><br></div><div>If it were a config option, it becomes a documented feature that is easily discoverable in the menu config.</div><div><br></div><div>Additionally, having the ccache directory be a configuration option allows it to persist across clones of the git repository, if the .config file is stored in git. A symlink would need to be manually re-configured on each clone.<br></div></div></div>