summaryrefslogtreecommitdiffstats
path: root/package/ccache
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2010-12-07 21:09:56 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2010-12-08 17:51:49 +0100
commit17b66affdf439ed7c35d2825a1e2bf7967191e14 (patch)
tree1ca4fdfe4efb06a8a081236c492531d9697e22bf /package/ccache
parent3bbf1c2ea6140d8b288b0af5b1a9c3a1aa92edad (diff)
downloadbuildroot-novena-17b66affdf439ed7c35d2825a1e2bf7967191e14.tar.gz
buildroot-novena-17b66affdf439ed7c35d2825a1e2bf7967191e14.zip
ccache: rework ccache management
* ccache is now a normal package (both for the host and the target). * ccache option is now part of the "Build options" menu. It will automatically build ccache for the host before building anything, and will use it to cache builds for both host compilations and target compilations. * bump ccache to 3.1.3 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/ccache')
-rw-r--r--package/ccache/Config.in9
-rw-r--r--package/ccache/ccache.mk33
2 files changed, 42 insertions, 0 deletions
diff --git a/package/ccache/Config.in b/package/ccache/Config.in
new file mode 100644
index 000000000..f4f7f8f9c
--- /dev/null
+++ b/package/ccache/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_CCACHE
+ bool "ccache"
+ help
+ ccache is a compiler cache. It speeds up recompilation by
+ caching previous compilations and detecting when the same
+ compilation is being done again
+
+ http://samba.ccache.org
+
diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk
new file mode 100644
index 000000000..1d0a5608e
--- /dev/null
+++ b/package/ccache/ccache.mk
@@ -0,0 +1,33 @@
+#############################################################
+#
+# ccache
+#
+#############################################################
+
+CCACHE_VERSION = 3.1.3
+CCACHE_SITE = http://samba.org/ftp/ccache
+CCACHE_SOURCE = ccache-$(CCACHE_VERSION).tar.bz2
+
+# When ccache is being built for the host, ccache is not yet
+# available, so we have to use the special C compiler without the
+# cache.
+HOST_CCACHE_CONF_ENV = \
+ CC="$(HOSTCC_NOCCACHE)"
+
+# We directly hardcode the cache location into the binary, as it is
+# much easier to handle than passing an environment variable.
+define HOST_CCACHE_FIX_CCACHE_DIR
+ sed -i 's,getenv("CCACHE_DIR"),"$(CCACHE_CACHE_DIR)",' $(@D)/ccache.c
+endef
+
+HOST_CCACHE_POST_CONFIGURE_HOOKS += \
+ HOST_CCACHE_FIX_CCACHE_DIR
+
+$(eval $(call AUTOTARGETS,package,ccache))
+$(eval $(call AUTOTARGETS,package,ccache,host))
+
+ifeq ($(BR2_CCACHE),y)
+ccache-stats: host-ccache
+ $(Q)$(CCACHE) -s
+endif
+