aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2013-09-04 21:57:50 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-09-04 21:57:52 +0000
commita62334edaf9f52dbed3264cda2247f4e5ea7de06 (patch)
treecfefb138d75b4650a2314c838bbf58aecbf08a8b
parent62cd88d0d1614bbdb643f4cf4f014283b427ec7b (diff)
parent6cea59a4b9b62442a5e17f6954e308a35ba12b5e (diff)
downloadbuild-tools_r22.2.tar.gz
Merge "Add "WITH_SYNTAX_CHECK=1 make ...""tools_r22.2
-rw-r--r--core/binary.mk16
-rw-r--r--core/clear_vars.mk1
-rw-r--r--core/config.mk9
3 files changed, 26 insertions, 0 deletions
diff --git a/core/binary.mk b/core/binary.mk
index d55f8144d5..75f6edec21 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -170,6 +170,16 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(TARGET_GLOBAL
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_DEFAULT_COMPILER_FLAGS := \
$(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS))
+ifeq ($(strip $(WITH_SYNTAX_CHECK)),)
+ LOCAL_NO_SYNTAX_CHECK := true
+endif
+
+ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
+ my_syntax_arch := host
+else
+ my_syntax_arch := $(TARGET_ARCH)
+endif
+
ifeq ($(strip $(LOCAL_CC)),)
ifeq ($(strip $(LOCAL_CLANG)),true)
LOCAL_CC := $(CLANG)
@@ -177,6 +187,9 @@ ifeq ($(strip $(LOCAL_CC)),)
LOCAL_CC := $($(my_prefix)CC)
endif
endif
+ifneq ($(LOCAL_NO_SYNTAX_CHECK),true)
+ LOCAL_CC := $(SYNTAX_TOOLS_PREFIX)/ccc-syntax $(my_syntax_arch) "$(LOCAL_CC)"
+endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(LOCAL_CC)
ifeq ($(strip $(LOCAL_CXX)),)
@@ -186,6 +199,9 @@ ifeq ($(strip $(LOCAL_CXX)),)
LOCAL_CXX := $($(my_prefix)CXX)
endif
endif
+ifneq ($(LOCAL_NO_SYNTAX_CHECK),true)
+ LOCAL_CXX := $(SYNTAX_TOOLS_PREFIX)/cxx-syntax $(my_syntax_arch) "$(LOCAL_CXX)"
+endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(LOCAL_CXX)
# TODO: support a mix of standard extensions so that this isn't necessary
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 092953ddd5..9b8bf4019f 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -137,6 +137,7 @@ LOCAL_ADDITIONAL_CERTIFICATES:=
LOCAL_PREBUILT_MODULE_FILE:=
LOCAL_POST_INSTALL_CMD:=
LOCAL_DIST_BUNDLED_BINARIES:=
+LOCAL_NO_SYNTAX_CHECK:=
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
# iterate over thousands of entries every time.
diff --git a/core/config.mk b/core/config.mk
index 21e187d67a..0153109733 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -247,6 +247,15 @@ TARGET_TOOLCHAIN_ROOT := $(patsubst %/, %, $(dir $(TARGET_TOOLCHAIN_ROOT)))
TARGET_TOOLCHAIN_ROOT := $(wildcard $(TARGET_TOOLCHAIN_ROOT))
endif
+# Disable WITH_SYNTAX_CHECK if tool can't be found
+SYNTAX_TOOLS_PREFIX := prebuilts/clang/$(HOST_PREBUILT_TAG)/host/3.3/bin
+ifneq ($(strip $(WITH_SYNTAX_CHECK)),)
+ ifeq ($(wildcard $(SYNTAX_TOOLS_PREFIX)/ccc-syntax),)
+ $(warning *** Disable WITH_SYNTAX_CHECK because $(SYNTAX_TOOLS_PREFIX)/ccc-syntax does not exist)
+ WITH_SYNTAX_CHECK :=
+ endif
+endif
+
# Pick a Java compiler.
include $(BUILD_SYSTEM)/combo/javac.mk