summaryrefslogtreecommitdiff
path: root/package/ccache
diff options
context:
space:
mode:
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
+