and now, finally, enable ccache support
authormbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 4 Aug 2006 06:56:10 +0000 (06:56 +0000)
committermbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 4 Aug 2006 06:56:10 +0000 (06:56 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/buildroot-ng/openwrt@4434 3c298f89-4303-0410-b956-a3cf2f4a3e73

Config.in
rules.mk

index 752e1d93e70e44b8087cf6ae429c57df022adf16..edcb19a4f5cfab05500b3a36e10178612e698c21 100644 (file)
--- 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"
 
index 206e57dd03e1f6cd2a461ccf1194307166328481..89adb3efc26dbcfc020544569f7c9f5bb51968e6 100644 (file)
--- 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