summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-08-04 06:56:10 +0000
committermbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-08-04 06:56:10 +0000
commit4c102c1828e19f29666c0818a98c99171565c5b8 (patch)
treef07a8494f7ad815c9258c581dd44182e3955822e
parent96a116341a30bce09a7d4a45e37a02e07412f543 (diff)
and now, finally, enable ccache support
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4434 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--Config.in7
-rw-r--r--rules.mk14
2 files changed, 17 insertions, 4 deletions
diff --git a/Config.in b/Config.in
index 752e1d93e..edcb19a4f 100644
--- a/Config.in
+++ b/Config.in
@@ -44,6 +44,13 @@ config JLEVEL
help
Number of jobs to run simultanesouly
+config CCACHE
+ bool
+ prompt "Use ccache" if BUILDOPTS
+ default n
+ help
+ Compiler cache; see http://ccache.samba.org/
+
source "toolchain/Config.in"
source "target/sdk/Config.in"
diff --git a/rules.mk b/rules.mk
index 206e57dd0..89adb3efc 100644
--- a/rules.mk
+++ b/rules.mk
@@ -35,8 +35,8 @@ IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
-KERNEL_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
-TARGET_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
+KERNEL_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc-
+TARGET_CROSS:=$(OPTIMIZE_FOR_CPU)-linux-uclibc-
IMAGE:=$(BUILD_DIR)/root_fs_$(ARCH)
TARGET_PATH:=$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
@@ -53,6 +53,11 @@ PATCH:=$(SCRIPT_DIR)/patch-kernel.sh
SED:=$(STAGING_DIR)/bin/sed -i -e
CP:=cp -fpR
+ifneq ($(CONFIG_CCACHE),)
+ export CCACHE_DIR:=$(TOPDIR)/ccache_$(ARCH)
+ TARGET_CC:=ccache $(TARGET_CC)
+endif
+
HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
-e 's/sparc.*/sparc/' \
-e 's/arm.*/arm/' \
@@ -74,8 +79,8 @@ TARGET_CONFIGURE_OPTS:= \
AS=$(TARGET_CROSS)as \
LD=$(TARGET_CROSS)ld \
NM=$(TARGET_CROSS)nm \
- CC=$(TARGET_CROSS)gcc \
- GCC=$(TARGET_CROSS)gcc \
+ CC="$(TARGET_CC)" \
+ GCC="$(TARGET_CC)" \
CXX=$(TARGET_CROSS)g++ \
RANLIB=$(TARGET_CROSS)ranlib \
STRIP=$(TARGET_CROSS)strip
@@ -84,6 +89,7 @@ TARGET_CONFIGURE_OPTS:= \
RSTRIP:= \
STRIP="$(STRIP)" \
STRIP_KMOD="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" \
+ PATH=$(TARGET_PATH) \
$(SCRIPT_DIR)/rstrip.sh
# where to build (and put) .ipk packages