diff options
| -rw-r--r-- | CHANGES | 3 | ||||
| -rw-r--r-- | Config.in | 8 | ||||
| -rw-r--r-- | Makefile | 26 | ||||
| -rw-r--r-- | docs/buildroot.html | 31 | ||||
| -rw-r--r-- | package/Config.in | 2 | ||||
| -rw-r--r-- | package/Makefile.in | 10 | ||||
| -rw-r--r-- | package/ccache/Config.in | 9 | ||||
| -rw-r--r-- | package/ccache/ccache.mk | 33 | ||||
| -rw-r--r-- | toolchain/ccache/Config.in | 16 | ||||
| -rw-r--r-- | toolchain/ccache/Config.in.2 | 13 | ||||
| -rw-r--r-- | toolchain/ccache/ccache.mk | 196 | ||||
| -rwxr-xr-x | toolchain/dependencies/dependencies.sh | 2 | ||||
| -rw-r--r-- | toolchain/toolchain-buildroot.mk | 1 | ||||
| -rw-r--r-- | toolchain/toolchain-buildroot/Config.in | 1 | ||||
| -rw-r--r-- | toolchain/toolchain-crosstool-ng.mk | 1 | ||||
| -rw-r--r-- | toolchain/toolchain-external.mk | 1 | ||||
| -rw-r--r-- | toolchain/toolchain-external/ext-tool.mk | 2 | 
17 files changed, 113 insertions, 242 deletions
| @@ -1,5 +1,8 @@  2011.02, Not yet released: +	Ccache support reworked. Now used for both host and target +	compilation, and cache is stored in ~/.buildroot-ccache. +  	Updated/fixed packages: cloop, m4, openssh, xz  	New packages: lsuio @@ -94,6 +94,14 @@ config BR2_JLEVEL  	help  	  Number of jobs to run simultaneously +config BR2_CCACHE +	bool "Enable compiler cache" +	help +	  This option will enable the use of ccache, a compiler +	  cache. It will cache the result of previous builds to speed +	  up future builds. The cache is stored in +	  $HOME/.buildroot-ccache. +  config BR2_DEPRECATED  	bool "Show packages that are deprecated or obsolete"  	help @@ -125,10 +125,13 @@ HOSTAS:=as  endif  ifndef HOSTCC  HOSTCC:=gcc -else +HOSTCC:=$(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc) +HOSTCC_NOCCACHE:=$(HOSTCC)  endif  ifndef HOSTCXX  HOSTCXX:=g++ +HOSTCXX:=$(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++) +HOSTCXX_NOCCACHE:=$(HOSTCXX)  endif  ifndef HOSTFC  HOSTFC:=gfortran @@ -147,8 +150,6 @@ HOSTNM:=nm  endif  HOSTAR:=$(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar)  HOSTAS:=$(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as) -HOSTCC:=$(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc) -HOSTCXX:=$(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)  HOSTFC:=$(shell which $(HOSTLD) || type -p $(HOSTLD) || echo || which g77 || type -p g77 || echo gfortran)  HOSTCPP:=$(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp)  HOSTLD:=$(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld) @@ -156,6 +157,7 @@ HOSTLN:=$(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)  HOSTNM:=$(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)  export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTFC HOSTLD +export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE  # bash prints the name of the directory on 'cd <dir>' if CDPATH is  # set, so unset it here to not cause problems. Notice that the export @@ -231,10 +233,15 @@ PREFERRED_LIB_FLAGS:=--enable-static --enable-shared  # along with the packages to build for the target.  #  ############################################################## + +ifeq ($(BR2_CCACHE),y) +BASE_TARGETS += host-ccache +endif +  ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) -BASE_TARGETS:=uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers +BASE_TARGETS += uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers  else -BASE_TARGETS:=uclibc +BASE_TARGETS += uclibc  endif  TARGETS:= @@ -276,6 +283,13 @@ TARGET_SKELETON=$(TOPDIR)/fs/skeleton  BR2_DEPENDS_DIR=$(BUILD_DIR)/buildroot-config +ifeq ($(BR2_CCACHE),y) +CCACHE:=$(HOST_DIR)/usr/bin/ccache +CCACHE_CACHE_DIR=$(HOME)/.buildroot-ccache +HOSTCC  := $(CCACHE) $(HOSTCC) +HOSTCXX := $(CCACHE) $(HOSTCXX) +endif +  include toolchain/Makefile.in  include package/Makefile.in @@ -480,7 +494,7 @@ export HOSTCFLAGS  $(BUILD_DIR)/buildroot-config/%onf:  	mkdir -p $(@D)/lxdialog -	$(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F) +	$(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)  COMMON_CONFIG_ENV = \  	KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \ diff --git a/docs/buildroot.html b/docs/buildroot.html index f471962ad..b6cf578bd 100644 --- a/docs/buildroot.html +++ b/docs/buildroot.html @@ -29,6 +29,7 @@        <li><a href="#buildroot_innards">How Buildroot works</a></li>        <li><a href="#using_toolchain">Using the uClibc toolchain outside Buildroot</a></li>        <li><a href="#external_toolchain">Use an external toolchain</a></li> +      <li><a href="#ccache-support">Using <code>ccache</code> in Buildroot</li>        <li><a href="#downloaded_packages">Location of downloaded packages</a></li>        <li><a href="#add_packages">Adding new packages to Buildroot</a></li>        <li><a href="#board_support">Creating your own board support</a></li> @@ -523,9 +524,8 @@ $(ZLIB_DIR)/libz.a: $(ZLIB_DIR)/.configured      <ul>        <li><b>toolchain</b> (in the <code>toolchain/</code> directory) contains        the Makefiles and associated files for all software related to the -      cross-compilation toolchain: <code>binutils</code>, <code>ccache</code>, -      <code>gcc</code>, <code>gdb</code>, <code>kernel-headers</code> and -      <code>uClibc</code>.</li> +      cross-compilation toolchain: <code>binutils</code>, <code>gcc</code>, +      <code>gdb</code>, <code>kernel-headers</code> and <code>uClibc</code>.</li>        <li><b>package</b> (in the <code>package/</code> directory) contains the        Makefiles and associated files for all user-space tools that Buildroot @@ -681,6 +681,31 @@ endif      Build options -> Toolchain and header file location</code> options.      This could be useful if the toolchain must be shared with other users.</p> +    <h2 id="ccache-support">Using <code>ccache</code> in Buildroot</h2> + +    <p><a href="http://ccache.samba.org">ccache</a> is a compiler +    cache. It stores the object files resulting from each compilation +    process, and is able to skip future compilation of the same source +    file (with same compiler and same arguments) by using the +    pre-existing object files. When doing almost identical builds from +    scratch a number of times, it can nicely speed up the build +    process.</p> + +    <p><code>ccache</code> support is integrated in Buildroot. You +    just have to enable <code>Enable compiler cache</code> +    in <code>Build options</code>. This will automatically build +    <code>ccache</code> and use it for every host and target +    compilation.</p> + +    <p>The cache is located +    in <code>$HOME/.buildroot-ccache</code>. It is stored outside of +    Buildroot output directory so that it can be shared by separate +    Buildroot builds. If you want to get rid of the cache, simply +    remove this directory.</p> + +    <p>You can get statistics on the cache (its size, number of hits, +    misses, etc.) by running <code>make ccache-stats</code>.</p> +      <h2 id="downloaded_packages">Location of downloaded packages</h2>      <p>It might be useful to know that the various tarballs that are diff --git a/package/Config.in b/package/Config.in index 08ffda619..b02682855 100644 --- a/package/Config.in +++ b/package/Config.in @@ -35,7 +35,7 @@ source "package/autoconf/Config.in"  source "package/automake/Config.in"  source "package/bison/Config.in"  source "package/bsdiff/Config.in" -source "toolchain/ccache/Config.in.2" +source "package/ccache/Config.in"  if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS  source "package/coreutils/Config.in"  endif diff --git a/package/Makefile.in b/package/Makefile.in index 2ca8c3144..d448a7edf 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -142,6 +142,14 @@ TARGET_RANLIB   = $(TARGET_CROSS)ranlib  TARGET_OBJCOPY  = $(TARGET_CROSS)objcopy  TARGET_OBJDUMP  = $(TARGET_CROSS)objdump +TARGET_CC_NOCCACHE  := $(TARGET_CC) +TARGET_CXX_NOCCACHE := $(TARGET_CXX) + +ifeq ($(BR2_CCACHE),y) +TARGET_CC  := $(CCACHE) $(TARGET_CC) +TARGET_CXX := $(CCACHE) $(TARGET_CXX) +endif +  ifeq ($(BR2_STRIP_strip),y)  STRIP_DISCARD_ALL:=--discard-all  STRIP_STRIP_UNNEEDED:=--strip-unneeded @@ -175,7 +183,7 @@ HOST_LDFLAGS  += -L$(HOST_DIR)/lib -L$(HOST_DIR)/usr/lib -Wl,-rpath,$(HOST_DIR)/  HOST_PATH=$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(PATH)  # hostcc version as an integer - E.G. 4.3.2 => 432 -HOSTCC_VERSION:=$(shell $(HOSTCC) --version | \ +HOSTCC_VERSION:=$(shell $(HOSTCC_NOCCACHE) --version | \  	sed -n 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[ ]*.*$$/\1\2\3/p')  TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \ diff --git a/package/ccache/Config.in b/package/ccache/Config.in new file mode 100644 index 000000000..f4f7f8f9c --- /dev/null +++ b/package/ccache/Config.in @@ -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 + diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk new file mode 100644 index 000000000..1d0a5608e --- /dev/null +++ b/package/ccache/ccache.mk @@ -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 + diff --git a/toolchain/ccache/Config.in b/toolchain/ccache/Config.in deleted file mode 100644 index 6f36650c7..000000000 --- a/toolchain/ccache/Config.in +++ /dev/null @@ -1,16 +0,0 @@ -# - -comment "Ccache Options" - -config BR2_CCACHE -	bool "Enable ccache support?" -	help -	    Enable ccache support? - -config BR2_CCACHE_DIR -	string "ccache dir location?" -	depends on BR2_CCACHE -	default "$(TOOLCHAIN_DIR)/ccache-$(CCACHE_VER)/cache" -	help -	    Where ccache should store cached files. - diff --git a/toolchain/ccache/Config.in.2 b/toolchain/ccache/Config.in.2 deleted file mode 100644 index 6a6c78915..000000000 --- a/toolchain/ccache/Config.in.2 +++ /dev/null @@ -1,13 +0,0 @@ -# - -config BR2_PACKAGE_CCACHE_TARGET -	bool "ccache" -	depends on BR2_PACKAGE_GCC_TARGET -	help -	  ccache is a compiler cache. It speeds up recompilation of -	  C/C++ code by caching previous compiles and detecting when -	  the same compile is being done again. - -	  http://ccache.samba.org - - diff --git a/toolchain/ccache/ccache.mk b/toolchain/ccache/ccache.mk deleted file mode 100644 index 8e414b27b..000000000 --- a/toolchain/ccache/ccache.mk +++ /dev/null @@ -1,196 +0,0 @@ -############################################################# -# -# build ccache to make recompiles faster on the build system -# -############################################################# -CCACHE_VER:=2.4 -CCACHE_SITE:=http://samba.org/ftp/ccache -CCACHE_SOURCE:=ccache-$(CCACHE_VER).tar.gz -CCACHE_DIR1:=$(TOOLCHAIN_DIR)/ccache-$(CCACHE_VER) -CCACHE_DIR2:=$(BUILD_DIR)/ccache-$(CCACHE_VER) -CCACHE_CAT:=$(ZCAT) -CCACHE_BINARY:=ccache -CCACHE_TARGET_BINARY:=usr/bin/ccache - -$(DL_DIR)/$(CCACHE_SOURCE): -	$(call DOWNLOAD,$(CCACHE_SITE),$(CCACHE_SOURCE)) - -$(CCACHE_DIR1)/.unpacked: $(DL_DIR)/$(CCACHE_SOURCE) -	$(CCACHE_CAT) $(DL_DIR)/$(CCACHE_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) - -	touch $@ - -$(CCACHE_DIR1)/.patched: $(CCACHE_DIR1)/.unpacked -	# WARNING - this will break if the toolchain is moved. -	# Should probably patch things to use a relative path. -	$(SED) "s,getenv(\"CCACHE_PATH\"),\"$(STAGING_DIR)/usr/bin-ccache\",g" \ -		$(CCACHE_DIR1)/execute.c -	# WARNING - this will break if the toolchain build dir is deleted -	#	when using the default cache dir location. -	$(SED) "s,getenv(\"CCACHE_DIR\"),\"$(BR2_CCACHE_DIR)\",g" \ -		$(CCACHE_DIR1)/ccache.c -	mkdir -p $(CCACHE_DIR1)/cache -	$(CONFIG_UPDATE) $(@D) -	touch $@ - -$(CCACHE_DIR1)/.configured: $(CCACHE_DIR1)/.patched -	mkdir -p $(CCACHE_DIR1) -	(cd $(CCACHE_DIR1); rm -rf config.cache; \ -		CC="$(HOSTCC)" \ -		$(CCACHE_DIR1)/configure $(QUIET) \ -		--target=$(GNU_HOST_NAME) \ -		--host=$(GNU_HOST_NAME) \ -		--build=$(GNU_HOST_NAME) \ -		--prefix=/usr \ -		$(QUIET) \ -	) -	touch $@ - -$(CCACHE_DIR1)/$(CCACHE_BINARY): $(CCACHE_DIR1)/.configured -	$(MAKE) CC="$(HOSTCC)" -C $(CCACHE_DIR1) - -$(STAGING_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR1)/$(CCACHE_BINARY) -	mkdir -p $(STAGING_DIR)/usr/bin -	cp $(CCACHE_DIR1)/ccache $(STAGING_DIR)/usr/bin -	# Keep the actual toolchain binaries in a directory at the same level. -	# Otherwise, relative paths for include dirs break. -	mkdir -p $(STAGING_DIR)/usr/bin-ccache -	(cd $(STAGING_DIR)/usr/bin-ccache; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-cc; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-gcc $(REAL_GNU_TARGET_NAME)-cc; \ -	) -	[ -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc ] && \ -		mv $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc \ -			$(STAGING_DIR)/usr/bin-ccache/ -	(cd $(STAGING_DIR)/usr/bin; \ -		ln -fs ccache $(GNU_TARGET_NAME)-cc; \ -		ln -fs ccache $(GNU_TARGET_NAME)-gcc; \ -		ln -fs ccache $(REAL_GNU_TARGET_NAME)-cc; \ -		ln -fs ccache $(REAL_GNU_TARGET_NAME)-gcc; \ -	) -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) -	[ -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-c++ ] && \ -		mv $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-c++ \ -			$(STAGING_DIR)/usr/bin-ccache/ -	[ -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-g++ ] && \ -		mv $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-g++ \ -			$(STAGING_DIR)/usr/bin-ccache/ -	(cd $(STAGING_DIR)/usr/bin; \ -		ln -fs ccache $(GNU_TARGET_NAME)-c++; \ -		ln -fs ccache $(GNU_TARGET_NAME)-g++;\ -		ln -fs ccache $(REAL_GNU_TARGET_NAME)-c++; \ -		ln -fs ccache $(REAL_GNU_TARGET_NAME)-g++; \ -	) -	(cd $(STAGING_DIR)/usr/bin-ccache; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-c++ $(GNU_TARGET_NAME)-c++; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-g++ $(GNU_TARGET_NAME)-g++; \ -	) -endif - -ccache: gcc $(STAGING_DIR)/$(CCACHE_TARGET_BINARY) - -ccache-clean: -	rm -rf $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc -	rm -rf $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc -	rm -rf $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-cc -	rm -rf $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc -	if [ -f $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-gcc ]; then \ -		mv $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-gcc \ -			$(STAGING_DIR)/usr/bin/; \ -		(cd $(STAGING_DIR)/usr/bin; \ -			ln -fs $(REAL_GNU_TARGET_NAME)-gcc \ -				$(REAL_GNU_TARGET_NAME)-cc; \ -			ln -fs $(REAL_GNU_TARGET_NAME)-gcc \ -				$(GNU_TARGET_NAME)-cc; \ -			ln -fs $(REAL_GNU_TARGET_NAME)-gcc \ -				$(GNU_TARGET_NAME)-gcc; \ -		); \ -	fi -	if [ -f $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-c++ ]; then \ -		rm -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-c++; \ -		mv $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-c++ \ -			$(STAGING_DIR)/usr/bin/; \ -	fi -	if [ -f $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-g++ ]; then \ -		rm -f $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-g++; \ -		mv $(STAGING_DIR)/usr/bin-ccache/$(REAL_GNU_TARGET_NAME)-g++ \ -			$(STAGING_DIR)/usr/bin/; \ -	fi -	rm -rf $(STAGING_DIR)/usr/bin-ccache/* -	(cd $(STAGING_DIR)/usr/bin; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-g++ $(GNU_TARGET_NAME)-c++; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-g++ $(GNU_TARGET_NAME)-g++; \ -		ln -fs $(REAL_GNU_TARGET_NAME)-g++ $(REAL_GNU_TARGET_NAME)-c++; \ -	) -	-$(MAKE) -C $(CCACHE_DIR1) clean - -ccache-dirclean: -	rm -rf $(CCACHE_DIR1) - - - - -############################################################# -# -# build ccache for use on the target system -# -############################################################# - -$(CCACHE_DIR2)/.unpacked: $(DL_DIR)/$(CCACHE_SOURCE) -	$(CCACHE_CAT) $(DL_DIR)/$(CCACHE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - -	touch $@ - -$(CCACHE_DIR2)/.patched: $(CCACHE_DIR2)/.unpacked -	touch $@ - -$(CCACHE_DIR2)/.configured: $(CCACHE_DIR2)/.patched -	mkdir -p $(CCACHE_DIR2) -	(cd $(CCACHE_DIR2); rm -rf config.cache; \ -		$(TARGET_CONFIGURE_OPTS) \ -		$(CCACHE_DIR2)/configure $(QUIET) \ -		--target=$(GNU_TARGET_NAME) \ -		--host=$(GNU_TARGET_NAME) \ -		--build=$(GNU_HOST_NAME) \ -		--prefix=/usr \ -		--sysconfdir=/etc \ -		$(DISABLE_NLS) \ -		$(QUIET) \ -	) -	touch $@ - -$(CCACHE_DIR2)/$(CCACHE_BINARY): $(CCACHE_DIR2)/.configured -	$(MAKE) -C $(CCACHE_DIR2) CFLAGS="$(TARGET_CFLAGS)" - -$(TARGET_DIR)/$(CCACHE_TARGET_BINARY): $(CCACHE_DIR2)/$(CCACHE_BINARY) -	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(CCACHE_DIR2) install -	# put a bunch of symlinks into /bin, since that is earlier -	# in the default PATH than /usr/bin where gcc lives -	(cd $(TARGET_DIR)/bin; \ -		ln -fs /usr/bin/ccache cc; \ -		ln -fs /usr/bin/ccache gcc; \ -		ln -fs /usr/bin/ccache c++; \ -		ln -fs /usr/bin/ccache g++; \ -	) - -ccache_target: uclibc $(TARGET_DIR)/$(CCACHE_TARGET_BINARY) - -ccache_target-sources: $(DL_DIR)/$(CCACHE_SOURCE) - -ccache_target-clean: -	rm -f $(TARGET_DIR)/$(CCACHE_TARGET_BINARY) \ -	      $(addprefix $(TARGET_DIR)/bin/,cc gcc c++ g++) -	-$(MAKE) -C $(CCACHE_DIR2) clean - -ccache_target-dirclean: -	rm -rf $(CCACHE_DIR2) -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_CCACHE),y) -TARGETS+=ccache -endif -ifeq ($(BR2_PACKAGE_CCACHE_TARGET),y) -TARGETS+=ccache_target -endif diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index ee21b3780..1aa013f5a 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -79,7 +79,7 @@ if [ $MAKE_MAJOR -lt 3 ] || [ $MAKE_MAJOR -eq 3 -a $MAKE_MINOR -lt 81 ] ; then  fi;  # Check host gcc -COMPILER=$(which $HOSTCC 2> /dev/null) +COMPILER=$(which $HOSTCC_NOCCACHE 2> /dev/null)  if [ -z "$COMPILER" ] ; then  	COMPILER=$(which cc 2> /dev/null)  fi; diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk index d879697e9..44044d749 100644 --- a/toolchain/toolchain-buildroot.mk +++ b/toolchain/toolchain-buildroot.mk @@ -2,7 +2,6 @@  include toolchain/dependencies/dependencies.mk  include toolchain/binutils/binutils.mk -include toolchain/ccache/ccache.mk  include toolchain/elf2flt/elf2flt.mk  include toolchain/gcc/gcc-uclibc-4.x.mk  include toolchain/gdb/gdb.mk diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in index a9dd19240..c45825151 100644 --- a/toolchain/toolchain-buildroot/Config.in +++ b/toolchain/toolchain-buildroot/Config.in @@ -5,5 +5,4 @@ source "toolchain/kernel-headers/Config.in"  source "toolchain/uClibc/Config.in"  source "toolchain/binutils/Config.in"  source "toolchain/gcc/Config.in" -source "toolchain/ccache/Config.in"  endif diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk index 81fce1872..1c8030091 100644 --- a/toolchain/toolchain-crosstool-ng.mk +++ b/toolchain/toolchain-crosstool-ng.mk @@ -3,7 +3,6 @@  # Explicit ordering:  include toolchain/helpers.mk  include toolchain/binutils/binutils.mk -include toolchain/ccache/ccache.mk  include toolchain/dependencies/dependencies.mk  include toolchain/elf2flt/elf2flt.mk  include toolchain/gcc/gcc-uclibc-4.x.mk diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk index 6f1f641ac..f90b6f147 100644 --- a/toolchain/toolchain-external.mk +++ b/toolchain/toolchain-external.mk @@ -2,7 +2,6 @@  include toolchain/helpers.mk  include toolchain/binutils/binutils.mk -include toolchain/ccache/ccache.mk  include toolchain/dependencies/dependencies.mk  include toolchain/elf2flt/elf2flt.mk  include toolchain/gcc/gcc-uclibc-4.x.mk diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk index 7e4645ddb..53ad636ac 100644 --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -62,7 +62,7 @@ endif # ! no threads  # could select a multilib variant as we want the "main" sysroot, which  # contains all variants of the C library in the case of multilib  # toolchains. -TARGET_CC_NO_SYSROOT=$(filter-out --sysroot=%,$(TARGET_CC)) +TARGET_CC_NO_SYSROOT=$(filter-out --sysroot=%,$(TARGET_CC_NOCCACHE))  SYSROOT_DIR=$(shell $(TARGET_CC_NO_SYSROOT) -print-sysroot 2>/dev/null)  ifeq ($(SYSROOT_DIR),)  SYSROOT_DIR=$(shell readlink -f $$(LANG=C $(TARGET_CC_NO_SYSROOT) -print-file-name=libc.a) |sed -r -e 's:usr/lib/libc\.a::;') | 
