Add libclang for target.
Change-Id: I3dc5de6c1a4e7f5ba64196dd8ee0965ef10d4e8b
diff --git a/Android.mk b/Android.mk
index 5f62da3..8cd6e17 100644
--- a/Android.mk
+++ b/Android.mk
@@ -29,6 +29,6 @@
))
include $(LOCAL_PATH)/clang.mk
-include $(LOCAL_PATH)/host_shared_clang.mk
+include $(LOCAL_PATH)/shared_clang.mk
include $(subdirs)
diff --git a/clang-device-build.mk b/clang-device-build.mk
new file mode 100644
index 0000000..46d535f
--- /dev/null
+++ b/clang-device-build.mk
@@ -0,0 +1,40 @@
+LOCAL_CFLAGS := \
+ -pedantic \
+ -Wcast-qual \
+ -Wno-long-long \
+ $(LOCAL_CFLAGS)
+
+LOCAL_CPPFLAGS := \
+ -Wno-sign-promo \
+ $(LOCAL_CPPFLAGS)
+
+# Make sure bionic is first so we can include system headers.
+LOCAL_C_INCLUDES := \
+ $(CLANG_ROOT_PATH)/include \
+ $(CLANG_ROOT_PATH)/lib/CodeGen \
+ $(LOCAL_C_INCLUDES)
+
+LLVM_ROOT_PATH := external/llvm
+include $(LLVM_ROOT_PATH)/llvm.mk
+
+include external/libcxx/libcxx.mk
+
+ifneq ($(LLVM_DEVICE_BUILD_MK),)
+include $(LLVM_DEVICE_BUILD_MK)
+endif
+
+###########################################################
+## Commands for running tblgen to compile a td file
+###########################################################
+define transform-device-clang-td-to-out
+@mkdir -p $(dir $@)
+@echo "Device Clang TableGen: $(TBLGEN_LOCAL_MODULE) (gen-$(1)) <= $<"
+$(hide) $(CLANG_TBLGEN) \
+ -I $(dir $<) \
+ -I $(LLVM_ROOT_PATH)/include \
+ -I $(LLVM_ROOT_PATH)/device/include \
+ -I $(LLVM_ROOT_PATH)/lib/Target \
+ $(if $(strip $(CLANG_ROOT_PATH)),-I $(CLANG_ROOT_PATH)/include,) \
+ -gen-$(strip $(1)) \
+ -o $@ $<
+endef
diff --git a/clang-tblgen-rules.mk b/clang-tblgen-rules.mk
index cdd9f72..9762bd1 100644
--- a/clang-tblgen-rules.mk
+++ b/clang-tblgen-rules.mk
@@ -7,104 +7,110 @@
ifneq ($(strip $(TBLGEN_TABLES)),)
+define transform-clang-td-to-out
+$(if $(LOCAL_IS_HOST_MODULE), \
+ $(call transform-host-clang-td-to-out,$(1)), \
+ $(call transform-device-clang-td-to-out,$(1)))
+endef
+
intermediates := $(call local-generated-sources-dir)
ifneq ($(findstring AttrDump.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrDump.inc
$(intermediates)/include/clang/AST/AttrDump.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/AttrDump.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-dump)
+ $(call transform-clang-td-to-out,clang-attr-dump)
endif
ifneq ($(findstring AttrImpl.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrImpl.inc
$(intermediates)/include/clang/AST/AttrImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/AttrImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-impl)
+ $(call transform-clang-td-to-out,clang-attr-impl)
endif
ifneq ($(findstring AttrHasAttributeImpl.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc
$(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-has-attribute-impl)
+ $(call transform-clang-td-to-out,clang-attr-has-attribute-impl)
endif
ifneq ($(findstring AttrList.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/AttrList.inc
$(intermediates)/include/clang/Basic/AttrList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Basic/AttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-list)
+ $(call transform-clang-td-to-out,clang-attr-list)
endif
ifneq ($(findstring AttrSpellingListIndex.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc
$(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-spelling-index)
+ $(call transform-clang-td-to-out,clang-attr-spelling-index)
endif
ifneq ($(findstring AttrPCHRead.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Serialization/AttrPCHRead.inc
$(intermediates)/include/clang/Serialization/AttrPCHRead.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Serialization/AttrPCHRead.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-pch-read)
+ $(call transform-clang-td-to-out,clang-attr-pch-read)
endif
ifneq ($(findstring AttrPCHWrite.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Serialization/AttrPCHWrite.inc
$(intermediates)/include/clang/Serialization/AttrPCHWrite.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Serialization/AttrPCHWrite.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-pch-write)
+ $(call transform-clang-td-to-out,clang-attr-pch-write)
endif
ifneq ($(findstring Attrs.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/Attrs.inc
$(intermediates)/include/clang/AST/Attrs.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/Attrs.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-classes)
+ $(call transform-clang-td-to-out,clang-attr-classes)
endif
ifneq ($(findstring AttrParserStringSwitches.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc
$(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-parser-string-switches)
+ $(call transform-clang-td-to-out,clang-attr-parser-string-switches)
endif
ifneq ($(findstring AttrVisitor.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrVisitor.inc
$(intermediates)/include/clang/AST/AttrVisitor.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/AttrVisitor.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-ast-visitor)
+ $(call transform-clang-td-to-out,clang-attr-ast-visitor)
endif
ifneq ($(findstring AttrParsedAttrKinds.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc
$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-kinds)
+ $(call transform-clang-td-to-out,clang-attr-parsed-attr-kinds)
endif
ifneq ($(findstring AttrParsedAttrImpl.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc
$(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-impl)
+ $(call transform-clang-td-to-out,clang-attr-parsed-attr-impl)
endif
ifneq ($(findstring AttrParsedAttrList.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrList.inc
$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-list)
+ $(call transform-clang-td-to-out,clang-attr-parsed-attr-list)
endif
ifneq ($(findstring AttrTemplateInstantiate.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc
$(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-attr-template-instantiate)
+ $(call transform-clang-td-to-out,clang-attr-template-instantiate)
endif
ifneq ($(findstring Checkers.inc,$(TBLGEN_TABLES)),)
@@ -114,7 +120,7 @@
$(CLANG_ROOT_PATH)/lib/StaticAnalyzer/Checkers/Checkers.td \
$(CLANG_ROOT_PATH)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-sa-checkers)
+ $(call transform-clang-td-to-out,clang-sa-checkers)
endif
ifneq ($(findstring CommentCommandInfo.inc,$(TBLGEN_TABLES)),)
@@ -123,7 +129,7 @@
$(intermediates)/include/clang/AST/CommentCommandInfo.inc: \
$(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-command-info)
+ $(call transform-clang-td-to-out,clang-comment-command-info)
endif
ifneq ($(findstring CommentCommandList.inc,$(TBLGEN_TABLES)),)
@@ -132,7 +138,7 @@
$(intermediates)/include/clang/AST/CommentCommandList.inc: \
$(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-command-list)
+ $(call transform-clang-td-to-out,clang-comment-command-list)
endif
ifneq ($(findstring CommentHTMLNamedCharacterReferences.inc,$(TBLGEN_TABLES)),)
@@ -141,7 +147,7 @@
$(intermediates)/include/clang/AST/CommentHTMLNamedCharacterReferences.inc: \
$(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLNamedCharacterReferences.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-html-named-character-references)
+ $(call transform-clang-td-to-out,clang-comment-html-named-character-references)
endif
ifneq ($(findstring CommentHTMLTagsProperties.inc,$(TBLGEN_TABLES)),)
@@ -150,7 +156,7 @@
$(intermediates)/include/clang/AST/CommentHTMLTagsProperties.inc: \
$(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-html-tags-properties)
+ $(call transform-clang-td-to-out,clang-comment-html-tags-properties)
endif
ifneq ($(findstring CommentHTMLTags.inc,$(TBLGEN_TABLES)),)
@@ -159,7 +165,7 @@
$(intermediates)/include/clang/AST/CommentHTMLTags.inc: \
$(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-html-tags)
+ $(call transform-clang-td-to-out,clang-comment-html-tags)
endif
ifneq ($(findstring CommentNodes.inc,$(TBLGEN_TABLES)),)
@@ -168,7 +174,7 @@
$(intermediates)/include/clang/AST/CommentNodes.inc: \
$(CLANG_ROOT_PATH)/include/clang/Basic/CommentNodes.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-comment-nodes)
+ $(call transform-clang-td-to-out,clang-comment-nodes)
endif
ifneq ($(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)),)
@@ -178,42 +184,42 @@
$(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td \
$(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic%Kinds.td \
| $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(@F)))
+ $(call transform-clang-td-to-out,clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(@F)))
endif
ifneq ($(findstring DiagnosticGroups.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/DiagnosticGroups.inc
$(intermediates)/include/clang/Basic/DiagnosticGroups.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Basic/DiagnosticGroups.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td $(CLANG_ROOT_PATH)/include/clang/Basic/DiagnosticGroups.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-diag-groups)
+ $(call transform-clang-td-to-out,clang-diag-groups)
endif
ifneq ($(findstring DiagnosticIndexName.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/DiagnosticIndexName.inc
$(intermediates)/include/clang/Basic/DiagnosticIndexName.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Basic/DiagnosticIndexName.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-diag-groups)
+ $(call transform-clang-td-to-out,clang-diag-groups)
endif
ifneq ($(findstring DeclNodes.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/DeclNodes.inc
$(intermediates)/include/clang/AST/DeclNodes.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/DeclNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/DeclNodes.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-decl-nodes)
+ $(call transform-clang-td-to-out,clang-decl-nodes)
endif
ifneq ($(findstring StmtNodes.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/StmtNodes.inc
$(intermediates)/include/clang/AST/StmtNodes.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/AST/StmtNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/StmtNodes.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,clang-stmt-nodes)
+ $(call transform-clang-td-to-out,clang-stmt-nodes)
endif
ifneq ($(findstring arm_neon.inc,$(TBLGEN_TABLES)),)
LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/arm_neon.inc
$(intermediates)/include/clang/Basic/arm_neon.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Basic/arm_neon.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td | $(CLANG_TBLGEN)
- $(call transform-host-clang-td-to-out,arm-neon-sema)
+ $(call transform-clang-td-to-out,arm-neon-sema)
endif
ifneq ($(findstring Options.inc,$(TBLGEN_TABLES)),)
@@ -221,7 +227,7 @@
$(intermediates)/include/clang/Driver/Options.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
$(intermediates)/include/clang/Driver/Options.inc: $(CLANG_ROOT_PATH)/include/clang/Driver/Options.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(CLANG_ROOT_PATH)/include/clang/Driver/CC1Options.td \
| $(CLANG_TBLGEN) $(LLVM_TBLGEN)
- $(call transform-host-td-to-out,opt-parser-defs)
+ $(call transform-td-to-out,opt-parser-defs)
endif
LOCAL_C_INCLUDES += $(intermediates)/include
diff --git a/clang.mk b/clang.mk
index 587a510..9165578 100644
--- a/clang.mk
+++ b/clang.mk
@@ -3,5 +3,6 @@
endif
CLANG_HOST_BUILD_MK := $(CLANG_ROOT_PATH)/clang-host-build.mk
+CLANG_DEVICE_BUILD_MK := $(CLANG_ROOT_PATH)/clang-device-build.mk
CLANG_TBLGEN_RULES_MK := $(CLANG_ROOT_PATH)/clang-tblgen-rules.mk
CLANG_VERSION_INC_MK := $(CLANG_ROOT_PATH)/clang-version-inc.mk
diff --git a/lib/ARCMigrate/Android.mk b/lib/ARCMigrate/Android.mk
index 834f573..2a4607a 100644
--- a/lib/ARCMigrate/Android.mk
+++ b/lib/ARCMigrate/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH := $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -40,8 +37,11 @@
TransUnusedInitDelegate.cpp \
TransZeroOutPropsInDealloc.cpp
-LOCAL_SRC_FILES := $(clang_arc_migrate_SRC_FILES)
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(clang_arc_migrate_SRC_FILES)
LOCAL_MODULE := libclangARCMigrate
LOCAL_MODULE_TAGS := optional
@@ -49,3 +49,16 @@
include $(CLANG_VERSION_INC_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# ============================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_arc_migrate_SRC_FILES)
+LOCAL_MODULE := libclangARCMigrate
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/AST/Android.mk b/lib/AST/Android.mk
index 9d0c005..8423e42 100644
--- a/lib/AST/Android.mk
+++ b/lib/AST/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -82,13 +79,26 @@
VTTBuilder.cpp \
VTableBuilder.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_ast_SRC_FILES)
-
LOCAL_MODULE:= libclangAST
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_ast_SRC_FILES)
+LOCAL_MODULE:= libclangAST
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
index 8ccbf3e..cde3e31 100644
--- a/lib/Analysis/Android.mk
+++ b/lib/Analysis/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -38,14 +35,26 @@
ThreadSafety.cpp \
UninitializedValues.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(clang_analysis_SRC_FILES)
-
LOCAL_MODULE:= libclangAnalysis
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_analysis_SRC_FILES)
+LOCAL_MODULE:= libclangAnalysis
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Basic/Android.mk b/lib/Basic/Android.mk
index 03b131c..9f094f1 100644
--- a/lib/Basic/Android.mk
+++ b/lib/Basic/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -45,14 +42,28 @@
VirtualFileSystem.cpp \
Warnings.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_basic_SRC_FILES)
-
LOCAL_MODULE:= libclangBasic
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_VERSION_INC_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_basic_SRC_FILES)
+LOCAL_MODULE:= libclangBasic
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
index 0a82640..c90cc52 100644
--- a/lib/CodeGen/Android.mk
+++ b/lib/CodeGen/Android.mk
@@ -1,5 +1,7 @@
LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_TBLGEN_VARS)
+
clang_codegen_TBLGEN_TABLES := \
AttrList.inc \
AttrParsedAttrList.inc \
@@ -61,10 +63,9 @@
SanitizerBlacklist.cpp \
TargetInfo.cpp
-# For the host only
+# For the host
# =====================================================
include $(CLEAR_VARS)
-include $(CLEAR_TBLGEN_VARS)
LOCAL_MODULE:= libclangCodeGen
LOCAL_MODULE_TAGS := optional
@@ -77,3 +78,19 @@
include $(CLANG_TBLGEN_RULES_MK)
include $(LLVM_GEN_INTRINSICS_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= libclangCodeGen
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := $(clang_codegen_SRC_FILES)
+TBLGEN_TABLES := $(clang_codegen_TBLGEN_TABLES)
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Driver/Android.mk b/lib/Driver/Android.mk
index a80df60..61323c0 100644
--- a/lib/Driver/Android.mk
+++ b/lib/Driver/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -29,14 +26,28 @@
Types.cpp \
WindowsToolChain.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_driver_SRC_FILES)
-
LOCAL_MODULE := libclangDriver
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(CLANG_VERSION_INC_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_driver_SRC_FILES)
+LOCAL_MODULE := libclangDriver
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Edit/Android.mk b/lib/Edit/Android.mk
index 87f4e25..ff6ecdc8 100644
--- a/lib/Edit/Android.mk
+++ b/lib/Edit/Android.mk
@@ -1,16 +1,12 @@
LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_TBLGEN_VARS)
+
clang_edit_SRC_FILES := \
Commit.cpp \
EditedSource.cpp \
RewriteObjCFoundationAPI.cpp
-
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
-include $(CLEAR_TBLGEN_VARS)
-
TBLGEN_TABLES := \
Attrs.inc \
AttrList.inc \
@@ -20,13 +16,28 @@
DiagnosticCommonKinds.inc \
StmtNodes.inc
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_edit_SRC_FILES)
-
LOCAL_MODULE:= libclangEdit
-
LOCAL_MODULE_TAGS := optional
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_VERSION_INC_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_edit_SRC_FILES)
+LOCAL_MODULE:= libclangEdit
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Frontend/Android.mk b/lib/Frontend/Android.mk
index e93ba21..255da76 100644
--- a/lib/Frontend/Android.mk
+++ b/lib/Frontend/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -53,14 +50,28 @@
TextDiagnosticPrinter.cpp \
VerifyDiagnosticConsumer.cpp
-LOCAL_SRC_FILES := $(clang_frontend_SRC_FILES)
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(clang_frontend_SRC_FILES)
LOCAL_MODULE:= libclangFrontend
LOCAL_MODULE_TAGS:= optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(CLANG_VERSION_INC_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_frontend_SRC_FILES)
+LOCAL_MODULE:= libclangFrontend
+LOCAL_MODULE_TAGS:= optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Lex/Android.mk b/lib/Lex/Android.mk
index a5e9661..239998d 100644
--- a/lib/Lex/Android.mk
+++ b/lib/Lex/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -33,13 +30,26 @@
TokenConcatenation.cpp \
TokenLexer.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_lex_SRC_FILES)
-
LOCAL_MODULE:= libclangLex
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_lex_SRC_FILES)
+LOCAL_MODULE:= libclangLex
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Parse/Android.mk b/lib/Parse/Android.mk
index ff63b60..cb248c4 100644
--- a/lib/Parse/Android.mk
+++ b/lib/Parse/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -36,13 +33,26 @@
ParseTentative.cpp \
Parser.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_parse_SRC_FILES)
-
LOCAL_MODULE:= libclangParse
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_parse_SRC_FILES)
+LOCAL_MODULE:= libclangParse
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Rewrite/Core/Android.mk b/lib/Rewrite/Core/Android.mk
index 546fc04..1dcd5cd 100644
--- a/lib/Rewrite/Core/Android.mk
+++ b/lib/Rewrite/Core/Android.mk
@@ -1,14 +1,7 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
-LOCAL_MODULE:= libclangRewriteCore
-
-LOCAL_MODULE_TAGS := optional
-
TBLGEN_TABLES := \
AttrList.inc \
Attrs.inc \
@@ -26,9 +19,26 @@
Rewriter.cpp \
TokenRewriter.cpp
-LOCAL_SRC_FILES := $(clang_rewrite_core_SRC_FILES)
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(clang_rewrite_core_SRC_FILES)
+LOCAL_MODULE:= libclangRewriteCore
+LOCAL_MODULE_TAGS := optional
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_rewrite_core_SRC_FILES)
+LOCAL_MODULE:= libclangRewriteCore
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Rewrite/Frontend/Android.mk b/lib/Rewrite/Frontend/Android.mk
index 2bbf311..f23e746 100644
--- a/lib/Rewrite/Frontend/Android.mk
+++ b/lib/Rewrite/Frontend/Android.mk
@@ -1,14 +1,7 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
-LOCAL_MODULE:= libclangRewriteFrontend
-
-LOCAL_MODULE_TAGS := optional
-
TBLGEN_TABLES := \
AttrList.inc \
Attrs.inc \
@@ -30,9 +23,26 @@
RewriteObjC.cpp \
RewriteTest.cpp
-LOCAL_SRC_FILES := $(clang_rewrite_frontend_SRC_FILES)
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(clang_rewrite_frontend_SRC_FILES)
+LOCAL_MODULE:= libclangRewriteFrontend
+LOCAL_MODULE_TAGS := optional
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_rewrite_frontend_SRC_FILES)
+LOCAL_MODULE:= libclangRewriteFrontend
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Sema/Android.mk b/lib/Sema/Android.mk
index 77a2e93..ec23640 100644
--- a/lib/Sema/Android.mk
+++ b/lib/Sema/Android.mk
@@ -1,8 +1,5 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
TBLGEN_TABLES := \
@@ -72,13 +69,26 @@
SemaType.cpp \
TypeLocBuilder.cpp
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
LOCAL_SRC_FILES := $(clang_sema_SRC_FILES)
-
LOCAL_MODULE:= libclangSema
LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_TAGS := optional
-
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_sema_SRC_FILES)
+LOCAL_MODULE:= libclangSema
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Serialization/Android.mk b/lib/Serialization/Android.mk
index 751e306..85cf2ef 100644
--- a/lib/Serialization/Android.mk
+++ b/lib/Serialization/Android.mk
@@ -1,14 +1,7 @@
LOCAL_PATH:= $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
include $(CLEAR_TBLGEN_VARS)
-LOCAL_MODULE:= libclangSerialization
-
-LOCAL_MODULE_TAGS := optional
-
TBLGEN_TABLES := \
AttrList.inc \
AttrParsedAttrList.inc \
@@ -37,10 +30,28 @@
Module.cpp \
ModuleManager.cpp
-LOCAL_SRC_FILES := $(clang_serialization_SRC_FILES)
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := $(clang_serialization_SRC_FILES)
+LOCAL_MODULE:= libclangSerialization
+LOCAL_MODULE_TAGS := optional
include $(CLANG_HOST_BUILD_MK)
include $(CLANG_TBLGEN_RULES_MK)
include $(CLANG_VERSION_INC_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(clang_serialization_SRC_FILES)
+LOCAL_MODULE:= libclangSerialization
+LOCAL_MODULE_TAGS := optional
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(CLANG_TBLGEN_RULES_MK)
+include $(CLANG_VERSION_INC_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/host_shared_clang.mk b/shared_clang.mk
similarity index 68%
rename from host_shared_clang.mk
rename to shared_clang.mk
index 8e7a2cd..604067b 100644
--- a/host_shared_clang.mk
+++ b/shared_clang.mk
@@ -5,13 +5,7 @@
LOCAL_PATH:= $(call my-dir)
-LOCAL_IS_HOST_MODULE := true
-
-LOCAL_MODULE:= libclang
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_WHOLE_STATIC_LIBRARIES := \
+clang_whole_static_libraries := \
libclangDriver \
libclangParse \
libclangSema \
@@ -26,6 +20,13 @@
libclangRewriteCore \
libclangSerialization
+# host
+include $(CLEAR_VARS)
+
+LOCAL_IS_HOST_MODULE := true
+LOCAL_MODULE:= libclang
+LOCAL_MODULE_TAGS := optional
+LOCAL_WHOLE_STATIC_LIBRARIES := $(clang_whole_static_libraries)
ifeq ($(HOST_OS),windows)
LOCAL_SHARED_LIBRARIES := libLLVM
@@ -38,5 +39,18 @@
include $(CLANG_HOST_BUILD_MK)
include $(BUILD_HOST_SHARED_LIBRARY)
+# device
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= libclang
+LOCAL_MODULE_TAGS := optional
+LOCAL_WHOLE_STATIC_LIBRARIES := $(clang_whole_static_libraries)
+
+LOCAL_SHARED_LIBRARIES := libLLVM libc++
+LOCAL_LDLIBS := -ldl
+
+include $(CLANG_DEVICE_BUILD_MK)
+include $(BUILD_SHARED_LIBRARY)
+
endif # don't build in unbundled branches
endif # don't build unless forced to