On 2020-06-01 23:51, Petr Štetiar wrote:
Roman Yeryomin <ro...@advem.lv> [2020-06-01 18:32:26]:

Hi,

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?

Yes.
I'm not 100% sure but for me it makes more sense to make separate ccache dirs for each repo -- easier to manage and less corruption possibility.

BTW you've missed following hardcoded patterns:

 target/toolchain/Makefile:EXCLUDE_DIRS:=*/ccache
 target/sdk/Makefile:EXCLUDE_DIRS:=*/ccache/*

Hmm, missed that, will look.

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?

IMO it's desired to ccache host tools, which are cleaned only with dirclean.
It's always possible to just rm -rf ./.ccache same as with ./tmp/
Of cause we can make another make target, like cacheclean but not sure if it's worth doing.

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

you've missed to describe this change

This pattern was taken from package ccache, which looks sane to me. If you have other opinion, please share.

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

OK, this should be rm -rf $(CCACHE_DIR) probably.

Michael Jones <m...@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@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to