ccache: provide capability to do initial ccache setup
authorDanomi Manchego <danomimanchego123@gmail.com>
Thu, 1 May 2014 02:05:07 +0000 (22:05 -0400)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 14 Jun 2014 18:00:35 +0000 (20:00 +0200)
For example, if your project is known to require more space than the
default max cache size, then you might want to increase the cache size
to a suitable amount using the -M (--max-size) option.

The string you specify here is passed verbatim to ccache.  Refer to
ccache documentation for more details.

These initial settings are applied after ccache has been compiled.

Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Config.in
package/ccache/ccache.mk

index f13ae367d0a314aa457627f202c22e2883eadfe9..bf1ca864d6caa5a66b88c81171d648c18983ebb1 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -266,7 +266,7 @@ config BR2_CCACHE
        help
          This option will enable the use of ccache, a compiler
          cache. It will cache the result of previous builds to speed
-         up future builds. The cache is stored in
+         up future builds. By default, the cache is stored in
          $HOME/.buildroot-ccache.
 
          Note that Buildroot does not try to invalidate the cache
@@ -276,13 +276,30 @@ config BR2_CCACHE
          ccache cache by removing the $HOME/.buildroot-ccache
          directory.
 
+if BR2_CCACHE
+
 config BR2_CCACHE_DIR
        string "Compiler cache location"
-       depends on BR2_CCACHE
        default "$(HOME)/.buildroot-ccache"
        help
          Where ccache should store cached files.
 
+config BR2_CCACHE_INITIAL_SETUP
+       string "Compiler cache initial setup"
+       help
+         Initial ccache settings to apply, such as --max-files or --max-size.
+
+         For example, if your project is known to require more space than the
+         default max cache size, then you might want to increase the cache size
+         to a suitable amount using the -M (--max-size) option.
+
+         The string you specify here is passed verbatim to ccache.  Refer to
+         ccache documentation for more details.
+
+         These initial settings are applied after ccache has been compiled.
+
+endif
+
 config BR2_DEPRECATED
        bool "Show packages that are deprecated or obsolete"
        help
index df92c5e9947d21ab3f39c84db66322304cefbe46..f1ec16257ac4201692172ee093f9a7d8b7810809 100644 (file)
@@ -38,15 +38,25 @@ define HOST_CCACHE_PATCH_CONFIGURATION
        sed -i 's,"%s/.ccache","$(BR_CACHE_DIR)",' $(@D)/ccache.c
 endef
 
-HOST_CCACHE_POST_CONFIGURE_HOOKS += \
-       HOST_CCACHE_PATCH_CONFIGURATION
+HOST_CCACHE_POST_CONFIGURE_HOOKS += HOST_CCACHE_PATCH_CONFIGURATION
 
 define HOST_CCACHE_MAKE_CACHE_DIR
        mkdir -p $(BR_CACHE_DIR)
 endef
 
-HOST_CCACHE_POST_INSTALL_HOOKS += \
-       HOST_CCACHE_MAKE_CACHE_DIR
+HOST_CCACHE_POST_INSTALL_HOOKS += HOST_CCACHE_MAKE_CACHE_DIR
+
+# Provide capability to do initial ccache setup (e.g. increase default size)
+BR_CCACHE_INITIAL_SETUP = $(call qstrip,$(BR2_CCACHE_INITIAL_SETUP))
+ifneq ($(BR_CCACHE_INITIAL_SETUP),)
+define HOST_CCACHE_DO_INITIAL_SETUP
+       @$(call MESSAGE,"Applying initial settings")
+       $(CCACHE) $(BR_CCACHE_INITIAL_SETUP)
+       $(CCACHE) -s
+endef
+
+HOST_CCACHE_POST_INSTALL_HOOKS += HOST_CCACHE_DO_INITIAL_SETUP
+endif
 
 $(eval $(host-autotools-package))