summaryrefslogtreecommitdiffstats
path: root/core/ccache.mk
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2015-07-20 18:40:18 -0700
committerYing Wang <wangying@google.com>2015-07-20 21:26:53 -0700
commitc671a7cf5cae42b61991d9b72e53d9d8a6ace84e (patch)
treee6f56e4836ff3722e56ffcf621b11a13cd472cbc /core/ccache.mk
parent7ac6cb804083a67d31a16b910dabfb76b30150a3 (diff)
downloadbuild-c671a7cf5cae42b61991d9b72e53d9d8a6ace84e.zip
build-c671a7cf5cae42b61991d9b72e53d9d8a6ace84e.tar.gz
build-c671a7cf5cae42b61991d9b72e53d9d8a6ace84e.tar.bz2
Split [CC|CXX]_WRAPPER from [TARGET|HOST]_[CC|CXX]
- Don't overwrite [TARGET|HOST]_[CC|CXX] with the [CC|CXX]_WRAPPER prefix, so that we can disable the wrapper per module. - Disable ccache on a module when FDO is enabled. Bug: 22612634 Change-Id: Ibc04a4742d589955066c7eceb43a0da9a2b893bc
Diffstat (limited to 'core/ccache.mk')
-rw-r--r--core/ccache.mk57
1 files changed, 57 insertions, 0 deletions
diff --git a/core/ccache.mk b/core/ccache.mk
new file mode 100644
index 0000000..34e5e1c
--- /dev/null
+++ b/core/ccache.mk
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+ifneq ($(USE_CCACHE),)
+ # The default check uses size and modification time, causing false misses
+ # since the mtime depends when the repo was checked out
+ export CCACHE_COMPILERCHECK := content
+
+ # See man page, optimizations to get more cache hits
+ # implies that __DATE__ and __TIME__ are not critical for functionality.
+ # Ignore include file modification time since it will depend on when
+ # the repo was checked out
+ export CCACHE_SLOPPINESS := time_macros,include_file_mtime,file_macro
+
+ # Turn all preprocessor absolute paths into relative paths.
+ # Fixes absolute paths in preprocessed source due to use of -g.
+ # We don't really use system headers much so the rootdir is
+ # fine; ensures these paths are relative for all Android trees
+ # on a workstation.
+ export CCACHE_BASEDIR := /
+
+ # Workaround for ccache with clang.
+ # See http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html
+ export CCACHE_CPP2 := true
+
+ CCACHE_HOST_TAG := $(HOST_PREBUILT_TAG)
+ # If we are cross-compiling Windows binaries on Linux
+ # then use the linux ccache binary instead.
+ ifeq ($(HOST_OS)-$(BUILD_OS),windows-linux)
+ CCACHE_HOST_TAG := linux-$(HOST_PREBUILT_ARCH)
+ endif
+ ccache := prebuilts/misc/$(CCACHE_HOST_TAG)/ccache/ccache
+ # Check that the executable is here.
+ ccache := $(strip $(wildcard $(ccache)))
+ ifdef ccache
+ ifndef CC_WRAPPER
+ CC_WRAPPER := $(ccache)
+ endif
+ ifndef CXX_WRAPPER
+ CXX_WRAPPER := $(ccache)
+ endif
+ ccache =
+ endif
+endif