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>
This commit is contained in:
Thomas Petazzoni
2010-12-07 21:09:56 +01:00
committed by Peter Korsgaard
parent 3bbf1c2ea6
commit 17b66affdf
17 changed files with 113 additions and 242 deletions

9
package/ccache/Config.in Normal file
View File

@@ -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

33
package/ccache/ccache.mk Normal file
View File

@@ -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