summaryrefslogtreecommitdiffstats
path: root/package/ccache
diff options
context:
space:
mode:
authorThomas De Schampheleire <patrickdepinguin+buildroot@gmail.com>2012-05-16 21:39:28 +0200
committerPeter Korsgaard <jacmet@sunsite.dk>2012-05-18 10:42:29 +0200
commit433290761fceb476b095548eec10adf72405e050 (patch)
treec4f01707f31ab978e39223d40ff6bcdf388aa421 /package/ccache
parent4d1c69dd1021b0e94930c97f6f8af7bdff2fd667 (diff)
downloadbuildroot-novena-433290761fceb476b095548eec10adf72405e050.tar.gz
buildroot-novena-433290761fceb476b095548eec10adf72405e050.zip
ccache: allow dynamic selection of cache directory
The existing ccache infrastructure sets the cache directory hardcoded in the ccache binary. As this directory was set to ~/.buildroot-ccache, the cache is not necessarily local (e.g. in corporate environments the home directories may be mounted over NFS.) Previous versions of buildroot did allow to set the cache directory, but this was also hardcoded (so you had to rebuild ccache to change it), plus that support was removed. See http://lists.busybox.net/pipermail/buildroot/2011-July/044511.html for a discussion on this. This patch modifies ccache to respect a new shell variable (exported from the Makefile, based on a configuration option) instead of CCACHE_DIR. The name CCACHE_DIR itself is already used by autotargets for the ccache package. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/ccache')
-rw-r--r--package/ccache/ccache.mk24
1 files changed, 12 insertions, 12 deletions
diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk
index f71376ee8..d7106eed1 100644
--- a/package/ccache/ccache.mk
+++ b/package/ccache/ccache.mk
@@ -25,22 +25,22 @@ HOST_CCACHE_CONF_ENV = \
# has zero dependency besides the C library.
HOST_CCACHE_CONF_OPT += ccache_cv_zlib_1_2_3=no
-# We directly hardcode configuration into the binary, as it is much
-# easier to handle than passing an environment variable. Our
-# configuration is:
-# - the cache location
-# - the fact that ccache shouldn't use the compiler binary mtime to
-# - detect a change in the compiler, because in the context of
-# - Buildroot, that completely defeats the purpose of ccache. Of
-# - course, that leaves the user responsible for purging its cache
-# - when the compiler changes.
-define HOST_CCACHE_FIX_CCACHE_DIR
- sed -i 's,getenv("CCACHE_DIR"),"$(CCACHE_CACHE_DIR)",' $(@D)/ccache.c
+# Patch host-ccache as follows:
+# - Use BUILDROOT_CACHE_DIR instead of CCACHE_DIR, because CCACHE_DIR
+# is already used by autotargets for the ccache package.
+# BUILDROOT_CACHE_DIR is exported by Makefile based on config option
+# BR2_CCACHE_DIR.
+# - ccache shouldn't use the compiler binary mtime to detect a change in
+# the compiler, because in the context of Buildroot, that completely
+# defeats the purpose of ccache. Of course, that leaves the user
+# responsible for purging its cache when the compiler changes.
+define HOST_CCACHE_PATCH_CONFIGURATION
+ sed -i 's,getenv("CCACHE_DIR"),getenv("BUILDROOT_CACHE_DIR"),' $(@D)/ccache.c
sed -i 's,getenv("CCACHE_COMPILERCHECK"),"none",' $(@D)/ccache.c
endef
HOST_CCACHE_POST_CONFIGURE_HOOKS += \
- HOST_CCACHE_FIX_CCACHE_DIR
+ HOST_CCACHE_PATCH_CONFIGURATION
$(eval $(call AUTOTARGETS))
$(eval $(call AUTOTARGETS,host))