From e84fbcf5bc52dbeb2f8459d7ce25b61e6ce90fe5 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 6 Jun 2012 13:27:11 +0000 Subject: [PATCH] [tools] add ccache wrapper git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32075 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- rules.mk | 8 ++++++-- tools/ccache/Makefile | 10 ++++++++++ tools/ccache/files/ccache_cc | 2 ++ tools/ccache/files/ccache_cxx | 2 ++ 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 tools/ccache/files/ccache_cc create mode 100755 tools/ccache/files/ccache_cxx 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}" "$@"