summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-29 13:29:44 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-30 12:04:49 +0100
commit0299499770e33e0214146132799f8779e81e581d (patch)
tree76922ab617e852e82c7636f887d2266dd37582ac /meta
parenta92ff3ad4212f8966bbd3f6defcb112737d81cda (diff)
downloadpoky-0299499770e33e0214146132799f8779e81e581d.tar.gz
ccache: Separate out into its own class
Currently, ccache is used if it is present. When building from scratch it gives no performance improvement and creates a ton of empty directories even when its not in use. This change moves ccache support to a bbclass file which the user can choose to enable. This should make builds more determinstic and make it easier/clearer to the end user when its being used and when it is not. (From OE-Core rev: 2acf8da4f13c175ea818b9514677b7059de1e3e2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/base.bbclass2
-rw-r--r--meta/classes/ccache.bbclass5
-rw-r--r--meta/classes/kernel-yocto.bbclass2
-rw-r--r--meta/conf/bitbake.conf5
4 files changed, 9 insertions, 5 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 79685f7e7d..9219170a30 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -271,7 +271,7 @@ python base_eventhandler() {
271} 271}
272 272
273addtask configure after do_patch 273addtask configure after do_patch
274do_configure[dirs] = "${CCACHE_DIR} ${S} ${B}" 274do_configure[dirs] = "${S} ${B}"
275do_configure[deptask] = "do_populate_sysroot" 275do_configure[deptask] = "do_populate_sysroot"
276base_do_configure() { 276base_do_configure() {
277 : 277 :
diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
new file mode 100644
index 0000000000..10f9b9f9aa
--- /dev/null
+++ b/meta/classes/ccache.bbclass
@@ -0,0 +1,5 @@
1CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}"
2export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
3
4do_configure[dirs] =+ "${CCACHE_DIR}"
5do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index e931630510..2a3373c63a 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -161,7 +161,7 @@ do_kernel_checkout[dirs] = "${S}"
161 161
162addtask kernel_checkout before do_patch after do_unpack 162addtask kernel_checkout before do_patch after do_unpack
163 163
164do_kernel_configme[dirs] = "${CCACHE_DIR} ${S} ${B}" 164do_kernel_configme[dirs] = "${S} ${B}"
165do_kernel_configme() { 165do_kernel_configme() {
166 echo "[INFO] doing kernel configme" 166 echo "[INFO] doing kernel configme"
167 167
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 5fda36b01c..48287a71ab 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -409,10 +409,9 @@ export PATH
409# Build utility info. 409# Build utility info.
410################################################################## 410##################################################################
411 411
412CCACHE = "${@bb.which(d.getVar('PATH', True), 'ccache') and 'ccache '}" 412CCACHE ??= ""
413TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" 413TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
414 414
415export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
416export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 415export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
417export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 416export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
418export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 417export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
@@ -746,7 +745,7 @@ BB_CONSOLELOG ?= "${TMPDIR}/cooker.log.${DATETIME}"
746 745
747# Setup our default hash policy 746# Setup our default hash policy
748BB_SIGNATURE_HANDLER ?= "OEBasic" 747BB_SIGNATURE_HANDLER ?= "OEBasic"
749BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN" 748BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE"
750BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK XAUTHORITY" 749BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK XAUTHORITY"
751 750
752MLPREFIX ??= "" 751MLPREFIX ??= ""