aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2012-06-06 13:27:11 +0000
committerJohn Crispin <john@openwrt.org>2012-06-06 13:27:11 +0000
commita53b084e497a9f1629a2caada833ebe14a6838b7 (patch)
treeb3c7d810e91ef20fedfcb2e87027309371c7c21d
parent84a8853430779dd7ac93682654f008fe3f7eebd7 (diff)
downloadupstream-a53b084e497a9f1629a2caada833ebe14a6838b7.tar.gz
upstream-a53b084e497a9f1629a2caada833ebe14a6838b7.tar.bz2
upstream-a53b084e497a9f1629a2caada833ebe14a6838b7.zip
add ccache wrapper
SVN-Revision: 32075
-rw-r--r--rules.mk8
-rw-r--r--tools/ccache/Makefile10
-rwxr-xr-xtools/ccache/files/ccache_cc2
-rwxr-xr-xtools/ccache/files/ccache_cxx2
4 files changed, 20 insertions, 2 deletions
diff --git a/rules.mk b/rules.mk
index f6e748c429..73a015e7a0 100644
--- a/rules.mk
+++ b/rules.mk
@@ -188,8 +188,12 @@ INSTALL_DATA:=install -m0644
INSTALL_CONF:=install -m0600
ifneq ($(CONFIG_CCACHE),)
- TARGET_CC:= ccache $(TARGET_CC)
- TARGET_CXX:= ccache $(TARGET_CXX)
+ TARGET_CC_NOCACHE:=$(TARGET_CC)
+ TARGET_CXX_NOCACHE:=$(TARGET_CXX)
+ export TARGET_CC_NOCACHE
+ export TARGET_CXX_NOCACHE
+ TARGET_CC:= ccache_cc
+ TARGET_CXX:= ccache_cxx
HOSTCC:= ccache $(HOSTCC)
endif
diff --git a/tools/ccache/Makefile b/tools/ccache/Makefile
index 9bc0b5901a..8848fa5102 100644
--- a/tools/ccache/Makefile
+++ b/tools/ccache/Makefile
@@ -17,6 +17,11 @@ PKG_CAT:=zcat
include $(INCLUDE_DIR)/host-build.mk
+define Host/Install/ccache
+ $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
+ $(CP) ./files/* $(STAGING_DIR_HOST)/bin/
+endef
+
ifneq ($(strip $(shell which ccache >/dev/null && echo found)),found)
define Host/Compile
$(MAKE) CC="$(HOSTCC_NOCACHE)" -C $(HOST_BUILD_DIR)
@@ -26,6 +31,10 @@ ifneq ($(strip $(shell which ccache >/dev/null && echo found)),found)
-$(MAKE) -C $(HOST_BUILD_DIR) uninstall
$(call Host/Clean/Default)
endef
+ define Host/Install
+ $(call Host/Install/Default)
+ $(call Host/Install/ccache)
+ endef
else
define Host/Prepare
endef
@@ -34,6 +43,7 @@ else
define Host/Compile
endef
define Host/Install
+ $(call Host/Install/ccache)
endef
define Host/Clean
endef
diff --git a/tools/ccache/files/ccache_cc b/tools/ccache/files/ccache_cc
new file mode 100755
index 0000000000..01c4ad42a2
--- /dev/null
+++ b/tools/ccache/files/ccache_cc
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ccache "${TARGET_CC_NOCACHE}" "$@"
diff --git a/tools/ccache/files/ccache_cxx b/tools/ccache/files/ccache_cxx
new file mode 100755
index 0000000000..cc60eb3a13
--- /dev/null
+++ b/tools/ccache/files/ccache_cxx
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec ccache "${TARGET_CXX_NOCACHE}" "$@"