[OpenWrt-Devel] [PATCH] build: improve ccache support

Petr Štetiar ynezz at true.cz
Mon Jun 1 16:51:57 EDT 2020

Roman Yeryomin <roman at advem.lv> [2020-06-01 18:32:26]:


> Set CCACHE_DIR to $(TOPDIR)/.ccache and CCACHE_BASEDIR to $(TOPDIR).

this changes location of ccache directory (people would need to move it,
symlink back or override it) and with CCACHE_BASEDIR it probably also
invalidates the current cache/hashes, doesn't it?

BTW you've missed following hardcoded patterns:


> This allows to do clean and dirclean.

Isn't it desired to remove potentially broken ccache as well with
clean/dirclean? Do I want to remove my config, downloads, feeds etc. in order
to remove ccache?

> +++ b/include/host-build.mk
> +  $(if $(CONFIG_CCACHE),$(1) : export CCACHE_COMPILERCHECK:=%compiler% -dumpmachine; %compiler% -dumpversion)

you've missed to describe this change

>  distclean:
>  	rm -rf bin build_dir .config* dl feeds key-build* logs package/feeds package/openwrt-packages staging_dir tmp
> +	rm -rf $(TOPDIR)/.ccache

Other CCACHE_DIR variable occurencies can be overriden, this is hardcoded

Michael Jones <mike at meshplusplus.com> [2020-06-01 13:34:51]:

> Having build behavior change based on a symlink is undesirable.

`make CCACHE_DIR=/whatever` should work as well

> 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.

BTW .config is .gitignored for a reason.

Anyway, I don't think, that bloating the menu config with every Make variable
from now on is desired. System has sane defaults and is flexible enough to
allow fine tunning if needed.

-- ynezz

openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list