blob: 027a89b3800482deb45bb4025d57c54b46fb3b39 [file] [log] [blame]
Stephen Hines651f13c2014-04-23 16:59:28 -07001From be91378db0840d26ae20bd4d13a2aa96d3d02249 Mon Sep 17 00:00:00 2001
2From: Tim Murray <timmurray@google.com>
3Date: Thu, 3 Apr 2014 14:29:15 -0700
4Subject: [PATCH 4/4] Add Android build system.
5
6Change-Id: I9738582ea6bcede99a42fd3926ba22e81d5fff02
7---
8 Android.mk | 34 +++++
9 clang-host-build.mk | 38 ++++++
10 clang-tblgen-rules.mk | 237 +++++++++++++++++++++++++++++++++
11 clang-version-inc.mk | 36 +++++
12 clang.mk | 7 +
13 host_shared_clang.mk | 41 ++++++
14 include/clang/Config/config.h | 25 ++++
15 lib/ARCMigrate/Android.mk | 51 +++++++
16 lib/AST/Android.mk | 94 +++++++++++++
17 lib/Analysis/Android.mk | 51 +++++++
18 lib/Basic/Android.mk | 57 ++++++++
19 lib/CodeGen/Android.mk | 75 +++++++++++
20 lib/Driver/Android.mk | 44 ++++++
21 lib/Edit/Android.mk | 32 +++++
22 lib/Format/Android.mk | 43 ++++++
23 lib/Frontend/Android.mk | 66 +++++++++
24 lib/FrontendTool/Android.mk | 24 ++++
25 lib/Headers/Android.mk | 11 ++
26 lib/Lex/Android.mk | 45 +++++++
27 lib/Parse/Android.mk | 47 +++++++
28 lib/Rewrite/Core/Android.mk | 34 +++++
29 lib/Rewrite/Frontend/Android.mk | 38 ++++++
30 lib/Sema/Android.mk | 84 ++++++++++++
31 lib/Serialization/Android.mk | 46 +++++++
32 lib/StaticAnalyzer/Checkers/Android.mk | 100 ++++++++++++++
33 lib/StaticAnalyzer/Core/Android.mk | 68 ++++++++++
34 lib/StaticAnalyzer/Frontend/Android.mk | 40 ++++++
35 tools/driver/Android.mk | 119 +++++++++++++++++
36 utils/TableGen/Android.mk | 35 +++++
37 29 files changed, 1622 insertions(+)
38 create mode 100644 Android.mk
39 create mode 100644 clang-host-build.mk
40 create mode 100644 clang-tblgen-rules.mk
41 create mode 100644 clang-version-inc.mk
42 create mode 100644 clang.mk
43 create mode 100644 host_shared_clang.mk
44 create mode 100644 include/clang/Config/config.h
45 create mode 100644 lib/ARCMigrate/Android.mk
46 create mode 100644 lib/AST/Android.mk
47 create mode 100644 lib/Analysis/Android.mk
48 create mode 100644 lib/Basic/Android.mk
49 create mode 100644 lib/CodeGen/Android.mk
50 create mode 100644 lib/Driver/Android.mk
51 create mode 100644 lib/Edit/Android.mk
52 create mode 100644 lib/Format/Android.mk
53 create mode 100644 lib/Frontend/Android.mk
54 create mode 100644 lib/FrontendTool/Android.mk
55 create mode 100644 lib/Headers/Android.mk
56 create mode 100644 lib/Lex/Android.mk
57 create mode 100644 lib/Parse/Android.mk
58 create mode 100644 lib/Rewrite/Core/Android.mk
59 create mode 100644 lib/Rewrite/Frontend/Android.mk
60 create mode 100644 lib/Sema/Android.mk
61 create mode 100644 lib/Serialization/Android.mk
62 create mode 100644 lib/StaticAnalyzer/Checkers/Android.mk
63 create mode 100644 lib/StaticAnalyzer/Core/Android.mk
64 create mode 100644 lib/StaticAnalyzer/Frontend/Android.mk
65 create mode 100644 tools/driver/Android.mk
66 create mode 100644 utils/TableGen/Android.mk
67
68diff --git a/Android.mk b/Android.mk
69new file mode 100644
70index 0000000..5f62da3
71--- /dev/null
72+++ b/Android.mk
73@@ -0,0 +1,34 @@
74+LOCAL_PATH := $(call my-dir)
75+CLANG_ROOT_PATH := $(LOCAL_PATH)
76+
77+include $(CLEAR_VARS)
78+
79+subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
80+ lib/Analysis \
81+ lib/AST \
82+ lib/ARCMigrate \
83+ lib/Basic \
84+ lib/CodeGen \
85+ lib/Driver \
86+ lib/Edit \
87+ lib/Format \
88+ lib/Frontend \
89+ lib/FrontendTool \
90+ lib/Headers \
91+ lib/Lex \
92+ lib/Parse \
93+ lib/Rewrite/Core \
94+ lib/Rewrite/Frontend \
95+ lib/Sema \
96+ lib/Serialization \
97+ lib/StaticAnalyzer/Checkers \
98+ lib/StaticAnalyzer/Core \
99+ lib/StaticAnalyzer/Frontend \
100+ tools/driver \
101+ utils/TableGen \
102+ ))
103+
104+include $(LOCAL_PATH)/clang.mk
105+include $(LOCAL_PATH)/host_shared_clang.mk
106+
107+include $(subdirs)
108diff --git a/clang-host-build.mk b/clang-host-build.mk
109new file mode 100644
110index 0000000..e0ba2e6
111--- /dev/null
112+++ b/clang-host-build.mk
113@@ -0,0 +1,38 @@
114+LOCAL_CFLAGS := \
115+ -pedantic \
116+ -Wcast-qual \
117+ -Wno-long-long \
118+ $(LOCAL_CFLAGS)
119+
120+LOCAL_CPPFLAGS := \
121+ -Wno-sign-promo \
122+ $(LOCAL_CPPFLAGS)
123+
124+# Make sure bionic is first so we can include system headers.
125+LOCAL_C_INCLUDES := \
126+ $(CLANG_ROOT_PATH)/include \
127+ $(CLANG_ROOT_PATH)/lib/CodeGen \
128+ $(LOCAL_C_INCLUDES)
129+
130+LLVM_ROOT_PATH := external/llvm
131+include $(LLVM_ROOT_PATH)/llvm.mk
132+
133+ifneq ($(LLVM_HOST_BUILD_MK),)
134+include $(LLVM_HOST_BUILD_MK)
135+endif
136+
137+###########################################################
138+## Commands for running tblgen to compile a td file
139+###########################################################
140+define transform-host-clang-td-to-out
141+@mkdir -p $(dir $@)
142+@echo "Host Clang TableGen: $(TBLGEN_LOCAL_MODULE) (gen-$(1)) <= $<"
143+$(hide) $(CLANG_TBLGEN) \
144+ -I $(dir $<) \
145+ -I $(LLVM_ROOT_PATH)/include \
146+ -I $(LLVM_ROOT_PATH)/host/include \
147+ -I $(LLVM_ROOT_PATH)/lib/Target \
148+ $(if $(strip $(CLANG_ROOT_PATH)),-I $(CLANG_ROOT_PATH)/include,) \
149+ -gen-$(strip $(1)) \
150+ -o $@ $<
151+endef
152diff --git a/clang-tblgen-rules.mk b/clang-tblgen-rules.mk
153new file mode 100644
154index 0000000..a2ae405
155--- /dev/null
156+++ b/clang-tblgen-rules.mk
157@@ -0,0 +1,237 @@
158+###################################4########################
159+## TableGen: Compile .td files to .inc.
160+###########################################################
161+ifeq ($(LOCAL_MODULE_CLASS),)
162+ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
163+endif
164+
165+ifneq ($(strip $(TBLGEN_TABLES)),)
166+
167+intermediates := $(call local-intermediates-dir)
168+
169+ifneq ($(findstring AttrDump.inc,$(TBLGEN_TABLES)),)
170+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrDump.inc
171+$(intermediates)/include/clang/AST/AttrDump.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
172+$(intermediates)/include/clang/AST/AttrDump.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
173+ $(call transform-host-clang-td-to-out,clang-attr-dump)
174+endif
175+
176+ifneq ($(findstring AttrImpl.inc,$(TBLGEN_TABLES)),)
177+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrImpl.inc
178+$(intermediates)/include/clang/AST/AttrImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
179+$(intermediates)/include/clang/AST/AttrImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
180+ $(call transform-host-clang-td-to-out,clang-attr-impl)
181+endif
182+
183+ifneq ($(findstring AttrHasAttributeImpl.inc,$(TBLGEN_TABLES)),)
184+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc
185+$(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
186+$(intermediates)/include/clang/Basic/AttrHasAttributeImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
187+ $(call transform-host-clang-td-to-out,clang-attr-has-attribute-impl)
188+endif
189+
190+ifneq ($(findstring AttrList.inc,$(TBLGEN_TABLES)),)
191+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/AttrList.inc
192+$(intermediates)/include/clang/Basic/AttrList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
193+$(intermediates)/include/clang/Basic/AttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
194+ $(call transform-host-clang-td-to-out,clang-attr-list)
195+endif
196+
197+ifneq ($(findstring AttrSpellingListIndex.inc,$(TBLGEN_TABLES)),)
198+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc
199+$(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
200+$(intermediates)/include/clang/Sema/AttrSpellingListIndex.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
201+ $(call transform-host-clang-td-to-out,clang-attr-spelling-index)
202+endif
203+
204+ifneq ($(findstring AttrPCHRead.inc,$(TBLGEN_TABLES)),)
205+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Serialization/AttrPCHRead.inc
206+$(intermediates)/include/clang/Serialization/AttrPCHRead.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
207+$(intermediates)/include/clang/Serialization/AttrPCHRead.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
208+ $(call transform-host-clang-td-to-out,clang-attr-pch-read)
209+endif
210+
211+ifneq ($(findstring AttrPCHWrite.inc,$(TBLGEN_TABLES)),)
212+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Serialization/AttrPCHWrite.inc
213+$(intermediates)/include/clang/Serialization/AttrPCHWrite.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
214+$(intermediates)/include/clang/Serialization/AttrPCHWrite.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
215+ $(call transform-host-clang-td-to-out,clang-attr-pch-write)
216+endif
217+
218+ifneq ($(findstring Attrs.inc,$(TBLGEN_TABLES)),)
219+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/Attrs.inc
220+$(intermediates)/include/clang/AST/Attrs.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
221+$(intermediates)/include/clang/AST/Attrs.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
222+ $(call transform-host-clang-td-to-out,clang-attr-classes)
223+endif
224+
225+ifneq ($(findstring AttrParserStringSwitches.inc,$(TBLGEN_TABLES)),)
226+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc
227+$(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
228+$(intermediates)/include/clang/Parse/AttrParserStringSwitches.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
229+ $(call transform-host-clang-td-to-out,clang-attr-parser-string-switches)
230+endif
231+
232+ifneq ($(findstring AttrVisitor.inc,$(TBLGEN_TABLES)),)
233+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/AttrVisitor.inc
234+$(intermediates)/include/clang/AST/AttrVisitor.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
235+$(intermediates)/include/clang/AST/AttrVisitor.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
236+ $(call transform-host-clang-td-to-out,clang-attr-ast-visitor)
237+endif
238+
239+ifneq ($(findstring AttrParsedAttrKinds.inc,$(TBLGEN_TABLES)),)
240+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc
241+$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
242+$(intermediates)/include/clang/Sema/AttrParsedAttrKinds.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
243+ $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-kinds)
244+endif
245+
246+ifneq ($(findstring AttrParsedAttrImpl.inc,$(TBLGEN_TABLES)),)
247+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc
248+$(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
249+$(intermediates)/include/clang/Sema/AttrParsedAttrImpl.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
250+ $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-impl)
251+endif
252+
253+ifneq ($(findstring AttrParsedAttrList.inc,$(TBLGEN_TABLES)),)
254+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrParsedAttrList.inc
255+$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
256+$(intermediates)/include/clang/Sema/AttrParsedAttrList.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
257+ $(call transform-host-clang-td-to-out,clang-attr-parsed-attr-list)
258+endif
259+
260+ifneq ($(findstring AttrTemplateInstantiate.inc,$(TBLGEN_TABLES)),)
261+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc
262+$(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
263+$(intermediates)/include/clang/Sema/AttrTemplateInstantiate.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Attr.td | $(CLANG_TBLGEN)
264+ $(call transform-host-clang-td-to-out,clang-attr-template-instantiate)
265+endif
266+
267+ifneq ($(findstring Checkers.inc,$(TBLGEN_TABLES)),)
268+LOCAL_GENERATED_SOURCES += $(intermediates)/Checkers.inc
269+$(intermediates)/Checkers.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
270+$(intermediates)/Checkers.inc: \
271+ $(CLANG_ROOT_PATH)/lib/StaticAnalyzer/Checkers/Checkers.td \
272+ $(CLANG_ROOT_PATH)/include/clang/StaticAnalyzer/Checkers/CheckerBase.td \
273+ | $(CLANG_TBLGEN)
274+ $(call transform-host-clang-td-to-out,clang-sa-checkers)
275+endif
276+
277+ifneq ($(findstring CommentCommandInfo.inc,$(TBLGEN_TABLES)),)
278+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentCommandInfo.inc
279+$(intermediates)/include/clang/AST/CommentCommandInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
280+$(intermediates)/include/clang/AST/CommentCommandInfo.inc: \
281+ $(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td \
282+ | $(CLANG_TBLGEN)
283+ $(call transform-host-clang-td-to-out,clang-comment-command-info)
284+endif
285+
286+ifneq ($(findstring CommentCommandList.inc,$(TBLGEN_TABLES)),)
287+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentCommandList.inc
288+$(intermediates)/include/clang/AST/CommentCommandList.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
289+$(intermediates)/include/clang/AST/CommentCommandList.inc: \
290+ $(CLANG_ROOT_PATH)/include/clang/AST/CommentCommands.td \
291+ | $(CLANG_TBLGEN)
292+ $(call transform-host-clang-td-to-out,clang-comment-command-list)
293+endif
294+
295+ifneq ($(findstring CommentHTMLNamedCharacterReferences.inc,$(TBLGEN_TABLES)),)
296+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
297+$(intermediates)/include/clang/AST/CommentHTMLNamedCharacterReferences.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
298+$(intermediates)/include/clang/AST/CommentHTMLNamedCharacterReferences.inc: \
299+ $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLNamedCharacterReferences.td \
300+ | $(CLANG_TBLGEN)
301+ $(call transform-host-clang-td-to-out,clang-comment-html-named-character-references)
302+endif
303+
304+ifneq ($(findstring CommentHTMLTagsProperties.inc,$(TBLGEN_TABLES)),)
305+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentHTMLTagsProperties.inc
306+$(intermediates)/include/clang/AST/CommentHTMLTagsProperties.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
307+$(intermediates)/include/clang/AST/CommentHTMLTagsProperties.inc: \
308+ $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td \
309+ | $(CLANG_TBLGEN)
310+ $(call transform-host-clang-td-to-out,clang-comment-html-tags-properties)
311+endif
312+
313+ifneq ($(findstring CommentHTMLTags.inc,$(TBLGEN_TABLES)),)
314+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentHTMLTags.inc
315+$(intermediates)/include/clang/AST/CommentHTMLTags.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
316+$(intermediates)/include/clang/AST/CommentHTMLTags.inc: \
317+ $(CLANG_ROOT_PATH)/include/clang/AST/CommentHTMLTags.td \
318+ | $(CLANG_TBLGEN)
319+ $(call transform-host-clang-td-to-out,clang-comment-html-tags)
320+endif
321+
322+ifneq ($(findstring CommentNodes.inc,$(TBLGEN_TABLES)),)
323+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/CommentNodes.inc
324+$(intermediates)/include/clang/AST/CommentNodes.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
325+$(intermediates)/include/clang/AST/CommentNodes.inc: \
326+ $(CLANG_ROOT_PATH)/include/clang/Basic/CommentNodes.td \
327+ | $(CLANG_TBLGEN)
328+ $(call transform-host-clang-td-to-out,clang-comment-nodes)
329+endif
330+
331+ifneq ($(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)),)
332+LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/include/clang/Basic/,$(filter Diagnostic%Kinds.inc,$(TBLGEN_TABLES)))
333+$(intermediates)/include/clang/Basic/Diagnostic%Kinds.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
334+$(intermediates)/include/clang/Basic/Diagnostic%Kinds.inc: \
335+ $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td \
336+ $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic%Kinds.td \
337+ | $(CLANG_TBLGEN)
338+ $(call transform-host-clang-td-to-out,clang-diags-defs -clang-component=$(patsubst Diagnostic%Kinds.inc,%,$(@F)))
339+endif
340+
341+ifneq ($(findstring DiagnosticGroups.inc,$(TBLGEN_TABLES)),)
342+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/DiagnosticGroups.inc
343+$(intermediates)/include/clang/Basic/DiagnosticGroups.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
344+$(intermediates)/include/clang/Basic/DiagnosticGroups.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td $(CLANG_ROOT_PATH)/include/clang/Basic/DiagnosticGroups.td | $(CLANG_TBLGEN)
345+ $(call transform-host-clang-td-to-out,clang-diag-groups)
346+endif
347+
348+ifneq ($(findstring DiagnosticIndexName.inc,$(TBLGEN_TABLES)),)
349+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/DiagnosticIndexName.inc
350+$(intermediates)/include/clang/Basic/DiagnosticIndexName.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
351+$(intermediates)/include/clang/Basic/DiagnosticIndexName.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Diagnostic.td | $(CLANG_TBLGEN)
352+ $(call transform-host-clang-td-to-out,clang-diag-groups)
353+endif
354+
355+ifneq ($(findstring DeclNodes.inc,$(TBLGEN_TABLES)),)
356+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/DeclNodes.inc
357+$(intermediates)/include/clang/AST/DeclNodes.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
358+$(intermediates)/include/clang/AST/DeclNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/DeclNodes.td | $(CLANG_TBLGEN)
359+ $(call transform-host-clang-td-to-out,clang-decl-nodes)
360+endif
361+
362+ifneq ($(findstring StmtNodes.inc,$(TBLGEN_TABLES)),)
363+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/AST/StmtNodes.inc
364+$(intermediates)/include/clang/AST/StmtNodes.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
365+$(intermediates)/include/clang/AST/StmtNodes.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/StmtNodes.td | $(CLANG_TBLGEN)
366+ $(call transform-host-clang-td-to-out,clang-stmt-nodes)
367+endif
368+
369+ifneq ($(findstring arm_neon.inc,$(TBLGEN_TABLES)),)
370+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/arm_neon.inc
371+$(intermediates)/include/clang/Basic/arm_neon.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
372+$(intermediates)/include/clang/Basic/arm_neon.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td | $(CLANG_TBLGEN)
373+ $(call transform-host-clang-td-to-out,arm-neon-sema)
374+endif
375+
376+ifneq ($(findstring Options.inc,$(TBLGEN_TABLES)),)
377+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Driver/Options.inc
378+$(intermediates)/include/clang/Driver/Options.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
379+$(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 \
380+ | $(CLANG_TBLGEN) $(TBLGEN)
381+ $(call transform-host-td-to-out,opt-parser-defs)
382+endif
383+
384+ifneq ($(findstring CC1AsOptions.inc,$(TBLGEN_TABLES)),)
385+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Driver/CC1AsOptions.inc
386+$(intermediates)/include/clang/Driver/CC1AsOptions.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
387+$(intermediates)/include/clang/Driver/CC1AsOptions.inc: $(CLANG_ROOT_PATH)/include/clang/Driver/CC1AsOptions.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td \
388+ | $(CLANG_TBLGEN) $(TBLGEN)
389+ $(call transform-host-td-to-out,opt-parser-defs)
390+endif
391+
392+LOCAL_C_INCLUDES += $(intermediates)/include
393+
394+endif
395diff --git a/clang-version-inc.mk b/clang-version-inc.mk
396new file mode 100644
397index 0000000..5a26276
398--- /dev/null
399+++ b/clang-version-inc.mk
400@@ -0,0 +1,36 @@
401+###########################################################
402+## Generate clang/Basic/Version.inc
403+###########################################################
404+ifeq ($(LOCAL_MODULE_CLASS),)
405+ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
406+endif
407+
408+intermediates := $(call local-intermediates-dir)
409+
410+LLVMVersion := $(shell grep PACKAGE_VERSION $(LLVM_ROOT_PATH)/host/include/llvm/Config/config.h | sed -e 's/\#define PACKAGE_VERSION "\(.*\)"/\1/g')
411+
412+# Compute the Clang version from the LLVM version, unless specified explicitly.
413+# (Copy from include/clang/Basic/Makefile)
414+CLANG_VERSION := $(subst svn,,$(LLVMVersion))
415+CLANG_VERSION_COMPONENTS := $(subst ., ,$(CLANG_VERSION))
416+CLANG_VERSION_MAJOR := $(word 1,$(CLANG_VERSION_COMPONENTS))
417+CLANG_VERSION_MINOR := $(word 2,$(CLANG_VERSION_COMPONENTS))
418+CLANG_VERSION_PATCHLEVEL := $(word 3,$(CLANG_VERSION_COMPONENTS))
419+ifeq ($(CLANG_VERSION_PATCHLEVEL),)
420+ CLANG_HAS_VERSION_PATCHLEVEL := 0
421+else
422+ CLANG_HAS_VERSION_PATCHLEVEL := 1
423+endif
424+
425+LOCAL_GENERATED_SOURCES += $(intermediates)/include/clang/Basic/Version.inc
426+$(intermediates)/include/clang/Basic/Version.inc: $(CLANG_ROOT_PATH)/include/clang/Basic/Version.inc.in \
427+ $(LLVM_ROOT_PATH)/host/include/llvm/Config/config.h
428+ @echo "Updating Clang version info."
429+ @mkdir -p $(dir $@)
430+ $(hide) sed -e "s#@CLANG_VERSION@#$(CLANG_VERSION)#g" \
431+ -e "s#@CLANG_VERSION_MAJOR@#$(CLANG_VERSION_MAJOR)#g" \
432+ -e "s#@CLANG_VERSION_MINOR@#$(CLANG_VERSION_MINOR)#g" \
433+ -e "s#@CLANG_VERSION_PATCHLEVEL@#$(CLANG_VERSION_PATCHLEVEL)#g" \
434+ -e "s#@CLANG_HAS_VERSION_PATCHLEVEL@#$(CLANG_HAS_VERSION_PATCHLEVEL)#g" \
435+ $< > $@
436+
437diff --git a/clang.mk b/clang.mk
438new file mode 100644
439index 0000000..587a510
440--- /dev/null
441+++ b/clang.mk
442@@ -0,0 +1,7 @@
443+ifeq ($(CLANG_ROOT_PATH),)
444+$(error Must set variable CLANG_ROOT_PATH before including this! $(LOCAL_PATH))
445+endif
446+
447+CLANG_HOST_BUILD_MK := $(CLANG_ROOT_PATH)/clang-host-build.mk
448+CLANG_TBLGEN_RULES_MK := $(CLANG_ROOT_PATH)/clang-tblgen-rules.mk
449+CLANG_VERSION_INC_MK := $(CLANG_ROOT_PATH)/clang-version-inc.mk
450diff --git a/host_shared_clang.mk b/host_shared_clang.mk
451new file mode 100644
452index 0000000..f9e4181
453--- /dev/null
454+++ b/host_shared_clang.mk
455@@ -0,0 +1,41 @@
456+# Don't build the library unless forced to.
457+ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
458+# Don't build the library in unbundled branches.
459+ifeq (,$(TARGET_BUILD_APPS))
460+
461+LOCAL_PATH:= $(call my-dir)
462+
463+LOCAL_IS_HOST_MODULE := true
464+
465+LOCAL_MODULE:= libclang
466+
467+LOCAL_MODULE_TAGS := optional
468+
469+LOCAL_WHOLE_STATIC_LIBRARIES := \
470+ libclangDriver \
471+ libclangParse \
472+ libclangSema \
473+ libclangAnalysis \
474+ libclangCodeGen \
475+ libclangAST \
476+ libclangEdit \
477+ libclangLex \
478+ libclangFrontend \
479+ libclangBasic \
480+ libclangRewriteFrontend \
481+ libclangRewriteCore \
482+ libclangSerialization
483+
484+LOCAL_SHARED_LIBRARIES := libLLVM
485+
486+ifeq ($(HOST_OS),windows)
487+ LOCAL_LDLIBS := -limagehlp -lpsapi
488+else
489+ LOCAL_LDLIBS := -ldl -lpthread
490+endif
491+
492+include $(CLANG_HOST_BUILD_MK)
493+include $(BUILD_HOST_SHARED_LIBRARY)
494+
495+endif # don't build in unbundled branches
496+endif # don't build unless forced to
497diff --git a/include/clang/Config/config.h b/include/clang/Config/config.h
498new file mode 100644
499index 0000000..51ef9f9
500--- /dev/null
501+++ b/include/clang/Config/config.h
502@@ -0,0 +1,25 @@
503+/* tools/clang/include/clang/Config/config.h. Generated from config.h.in by configure. */
504+/* include/clang/Config/config.h.in. */
505+
506+#ifndef ANDROID_CONFIG_H
507+#define ANDROID_CONFIG_H
508+
509+/* Bug report URL. */
510+#define BUG_REPORT_URL "http://llvm.org/bugs/"
511+
512+/* Relative directory for resource files */
513+#define CLANG_RESOURCE_DIR ""
514+
515+/* Directories clang will search for headers */
516+#define C_INCLUDE_DIRS ""
517+
518+/* Linker version detected at compile time. */
519+#define HOST_LINK_VERSION "2.22"
520+
521+/* Default <path> to all compiler invocations for --sysroot=<path>. */
522+#define DEFAULT_SYSROOT ""
523+
524+/* Directory where gcc is installed. */
525+#define GCC_INSTALL_PREFIX ""
526+
527+#endif
528diff --git a/lib/ARCMigrate/Android.mk b/lib/ARCMigrate/Android.mk
529new file mode 100644
530index 0000000..834f573
531--- /dev/null
532+++ b/lib/ARCMigrate/Android.mk
533@@ -0,0 +1,51 @@
534+LOCAL_PATH := $(call my-dir)
535+
536+# For the host only
537+# =====================================================
538+include $(CLEAR_VARS)
539+include $(CLEAR_TBLGEN_VARS)
540+
541+TBLGEN_TABLES := \
542+ Attrs.inc \
543+ AttrList.inc \
544+ AttrParsedAttrList.inc \
545+ AttrVisitor.inc \
546+ CommentCommandList.inc \
547+ CommentNodes.inc \
548+ DeclNodes.inc \
549+ DiagnosticCommonKinds.inc \
550+ DiagnosticGroups.inc \
551+ DiagnosticSemaKinds.inc \
552+ StmtNodes.inc
553+
554+clang_arc_migrate_SRC_FILES := \
555+ ARCMT.cpp \
556+ ARCMTActions.cpp \
557+ FileRemapper.cpp \
558+ ObjCMT.cpp \
559+ PlistReporter.cpp \
560+ TransAPIUses.cpp \
561+ TransARCAssign.cpp \
562+ TransAutoreleasePool.cpp \
563+ TransBlockObjCVariable.cpp \
564+ TransEmptyStatementsAndDealloc.cpp \
565+ TransformActions.cpp \
566+ Transforms.cpp \
567+ TransGCAttrs.cpp \
568+ TransGCCalls.cpp \
569+ TransProperties.cpp \
570+ TransProtectedScope.cpp \
571+ TransRetainReleaseDealloc.cpp \
572+ TransUnbridgedCasts.cpp \
573+ TransUnusedInitDelegate.cpp \
574+ TransZeroOutPropsInDealloc.cpp
575+
576+LOCAL_SRC_FILES := $(clang_arc_migrate_SRC_FILES)
577+
578+LOCAL_MODULE := libclangARCMigrate
579+LOCAL_MODULE_TAGS := optional
580+
581+include $(CLANG_HOST_BUILD_MK)
582+include $(CLANG_VERSION_INC_MK)
583+include $(CLANG_TBLGEN_RULES_MK)
584+include $(BUILD_HOST_STATIC_LIBRARY)
585diff --git a/lib/AST/Android.mk b/lib/AST/Android.mk
586new file mode 100644
587index 0000000..9d0c005
588--- /dev/null
589+++ b/lib/AST/Android.mk
590@@ -0,0 +1,94 @@
591+LOCAL_PATH:= $(call my-dir)
592+
593+# For the host only
594+# =====================================================
595+include $(CLEAR_VARS)
596+include $(CLEAR_TBLGEN_VARS)
597+
598+TBLGEN_TABLES := \
599+ AttrDump.inc \
600+ AttrImpl.inc \
601+ AttrList.inc \
602+ Attrs.inc \
603+ AttrVisitor.inc \
604+ CommentCommandInfo.inc \
605+ CommentCommandList.inc \
606+ CommentHTMLNamedCharacterReferences.inc \
607+ CommentHTMLTags.inc \
608+ CommentHTMLTagsProperties.inc \
609+ CommentNodes.inc \
610+ DeclNodes.inc \
611+ DiagnosticASTKinds.inc \
612+ DiagnosticCommentKinds.inc \
613+ DiagnosticCommonKinds.inc \
614+ DiagnosticSemaKinds.inc \
615+ StmtNodes.inc
616+
617+clang_ast_SRC_FILES := \
618+ APValue.cpp \
619+ ASTConsumer.cpp \
620+ ASTContext.cpp \
621+ ASTDiagnostic.cpp \
622+ ASTDumper.cpp \
623+ ASTImporter.cpp \
624+ ASTTypeTraits.cpp \
625+ AttrImpl.cpp \
626+ Comment.cpp \
627+ CommentBriefParser.cpp \
628+ CommentCommandTraits.cpp \
629+ CommentLexer.cpp \
630+ CommentParser.cpp \
631+ CommentSema.cpp \
632+ CXXInheritance.cpp \
633+ Decl.cpp \
634+ DeclarationName.cpp \
635+ DeclBase.cpp \
636+ DeclCXX.cpp \
637+ DeclFriend.cpp \
638+ DeclGroup.cpp \
639+ DeclObjC.cpp \
640+ DeclOpenMP.cpp \
641+ DeclPrinter.cpp \
642+ DeclTemplate.cpp \
643+ Expr.cpp \
644+ ExprClassification.cpp \
645+ ExprConstant.cpp \
646+ ExprCXX.cpp \
647+ ExternalASTSource.cpp \
648+ InheritViz.cpp \
649+ ItaniumCXXABI.cpp \
650+ ItaniumMangle.cpp \
651+ Mangle.cpp \
652+ MangleNumberingContext.cpp \
653+ MicrosoftCXXABI.cpp \
654+ MicrosoftMangle.cpp \
655+ NestedNameSpecifier.cpp \
656+ NSAPI.cpp \
657+ ParentMap.cpp \
658+ RecordLayout.cpp \
659+ RecordLayoutBuilder.cpp \
660+ RawCommentList.cpp \
661+ SelectorLocationsKind.cpp \
662+ Stmt.cpp \
663+ StmtIterator.cpp \
664+ StmtPrinter.cpp \
665+ StmtProfile.cpp \
666+ StmtViz.cpp \
667+ TemplateBase.cpp \
668+ TemplateName.cpp \
669+ Type.cpp \
670+ TypeLoc.cpp \
671+ TypePrinter.cpp \
672+ VTTBuilder.cpp \
673+ VTableBuilder.cpp
674+
675+LOCAL_SRC_FILES := $(clang_ast_SRC_FILES)
676+
677+LOCAL_MODULE:= libclangAST
678+LOCAL_MODULE_TAGS := optional
679+
680+LOCAL_MODULE_TAGS := optional
681+
682+include $(CLANG_HOST_BUILD_MK)
683+include $(CLANG_TBLGEN_RULES_MK)
684+include $(BUILD_HOST_STATIC_LIBRARY)
685diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
686new file mode 100644
687index 0000000..8ccbf3e
688--- /dev/null
689+++ b/lib/Analysis/Android.mk
690@@ -0,0 +1,51 @@
691+LOCAL_PATH:= $(call my-dir)
692+
693+# For the host only
694+# =====================================================
695+include $(CLEAR_VARS)
696+include $(CLEAR_TBLGEN_VARS)
697+
698+TBLGEN_TABLES := \
699+ AttrList.inc \
700+ Attrs.inc \
701+ AttrVisitor.inc \
702+ CommentCommandList.inc \
703+ CommentNodes.inc \
704+ DeclNodes.inc \
705+ DiagnosticCommonKinds.inc \
706+ DiagnosticAnalysisKinds.inc \
707+ StmtNodes.inc
708+
709+clang_analysis_SRC_FILES := \
710+ AnalysisDeclContext.cpp \
711+ BodyFarm.cpp \
712+ CallGraph.cpp \
713+ CFG.cpp \
714+ CFGReachabilityAnalysis.cpp \
715+ CFGStmtMap.cpp \
716+ CocoaConventions.cpp \
717+ Consumed.cpp \
718+ Dominators.cpp \
719+ FormatString.cpp \
720+ LiveVariables.cpp \
721+ ObjCNoReturn.cpp \
722+ PostOrderCFGView.cpp \
723+ PrintfFormatString.cpp \
724+ ProgramPoint.cpp \
725+ PseudoConstantAnalysis.cpp \
726+ ReachableCode.cpp \
727+ ScanfFormatString.cpp \
728+ ThreadSafety.cpp \
729+ UninitializedValues.cpp
730+
731+
732+LOCAL_SRC_FILES := $(clang_analysis_SRC_FILES)
733+
734+LOCAL_MODULE:= libclangAnalysis
735+LOCAL_MODULE_TAGS := optional
736+
737+LOCAL_MODULE_TAGS := optional
738+
739+include $(CLANG_HOST_BUILD_MK)
740+include $(CLANG_TBLGEN_RULES_MK)
741+include $(BUILD_HOST_STATIC_LIBRARY)
742diff --git a/lib/Basic/Android.mk b/lib/Basic/Android.mk
743new file mode 100644
744index 0000000..54e61c2
745--- /dev/null
746+++ b/lib/Basic/Android.mk
747@@ -0,0 +1,57 @@
748+LOCAL_PATH:= $(call my-dir)
749+
750+# For the host only
751+# =====================================================
752+include $(CLEAR_VARS)
753+include $(CLEAR_TBLGEN_VARS)
754+
755+TBLGEN_TABLES := \
756+ AttrHasAttributeImpl.inc \
757+ DiagnosticASTKinds.inc \
758+ DiagnosticAnalysisKinds.inc \
759+ DiagnosticCommentKinds.inc \
760+ DiagnosticCommonKinds.inc \
761+ DiagnosticDriverKinds.inc \
762+ DiagnosticFrontendKinds.inc \
763+ DiagnosticGroups.inc \
764+ DiagnosticIndexName.inc \
765+ DiagnosticLexKinds.inc \
766+ DiagnosticParseKinds.inc \
767+ DiagnosticSemaKinds.inc \
768+ DiagnosticSerializationKinds.inc \
769+ arm_neon.inc
770+
771+clang_basic_SRC_FILES := \
772+ Attributes.cpp \
773+ Builtins.cpp \
774+ CharInfo.cpp \
775+ Diagnostic.cpp \
776+ DiagnosticIDs.cpp \
777+ FileManager.cpp \
778+ FileSystemStatCache.cpp \
779+ IdentifierTable.cpp \
780+ LangOptions.cpp \
781+ Module.cpp \
782+ ObjCRuntime.cpp \
783+ OpenMPKinds.cpp \
784+ OperatorPrecedence.cpp \
785+ SourceLocation.cpp \
786+ SourceManager.cpp \
787+ TargetInfo.cpp \
788+ Targets.cpp \
789+ TokenKinds.cpp \
790+ Version.cpp \
791+ VersionTuple.cpp \
792+ VirtualFileSystem.cpp
793+
794+LOCAL_SRC_FILES := $(clang_basic_SRC_FILES)
795+
796+LOCAL_MODULE:= libclangBasic
797+LOCAL_MODULE_TAGS := optional
798+
799+LOCAL_MODULE_TAGS := optional
800+
801+include $(CLANG_HOST_BUILD_MK)
802+include $(CLANG_VERSION_INC_MK)
803+include $(CLANG_TBLGEN_RULES_MK)
804+include $(BUILD_HOST_STATIC_LIBRARY)
805diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
806new file mode 100644
807index 0000000..1c4a0b7
808--- /dev/null
809+++ b/lib/CodeGen/Android.mk
810@@ -0,0 +1,75 @@
811+LOCAL_PATH:= $(call my-dir)
812+
813+clang_codegen_TBLGEN_TABLES := \
814+ AttrList.inc \
815+ Attrs.inc \
816+ AttrVisitor.inc \
817+ CommentCommandList.inc \
818+ CommentNodes.inc \
819+ DeclNodes.inc \
820+ DiagnosticCommonKinds.inc \
821+ DiagnosticFrontendKinds.inc \
822+ DiagnosticSemaKinds.inc \
823+ StmtNodes.inc \
824+ arm_neon.inc
825+
826+clang_codegen_SRC_FILES := \
827+ BackendUtil.cpp \
828+ CGAtomic.cpp \
829+ CGBlocks.cpp \
830+ CGBuiltin.cpp \
831+ CGCUDANV.cpp \
832+ CGCUDARuntime.cpp \
833+ CGCXX.cpp \
834+ CGCXXABI.cpp \
835+ CGCall.cpp \
836+ CGClass.cpp \
837+ CGCleanup.cpp \
838+ CGDebugInfo.cpp \
839+ CGDecl.cpp \
840+ CGDeclCXX.cpp \
841+ CGException.cpp \
842+ CGExpr.cpp \
843+ CGExprAgg.cpp \
844+ CGExprCXX.cpp \
845+ CGExprComplex.cpp \
846+ CGExprConstant.cpp \
847+ CGExprScalar.cpp \
848+ CGObjC.cpp \
849+ CGObjCGNU.cpp \
850+ CGObjCMac.cpp \
851+ CGObjCRuntime.cpp \
852+ CGOpenCLRuntime.cpp \
853+ CGRTTI.cpp \
854+ CGRecordLayoutBuilder.cpp \
855+ CGStmt.cpp \
856+ CGVTT.cpp \
857+ CGVTables.cpp \
858+ CodeGenABITypes.cpp \
859+ CodeGenAction.cpp \
860+ CodeGenFunction.cpp \
861+ CodeGenModule.cpp \
862+ CodeGenPGO.cpp \
863+ CodeGenTBAA.cpp \
864+ CodeGenTypes.cpp \
865+ ItaniumCXXABI.cpp \
866+ MicrosoftCXXABI.cpp \
867+ ModuleBuilder.cpp \
868+ TargetInfo.cpp
869+
870+# For the host only
871+# =====================================================
872+include $(CLEAR_VARS)
873+include $(CLEAR_TBLGEN_VARS)
874+
875+LOCAL_MODULE:= libclangCodeGen
876+LOCAL_MODULE_TAGS := optional
877+
878+LOCAL_SRC_FILES := $(clang_codegen_SRC_FILES)
879+TBLGEN_TABLES := $(clang_codegen_TBLGEN_TABLES)
880+
881+include $(CLANG_HOST_BUILD_MK)
882+include $(CLANG_VERSION_INC_MK)
883+include $(CLANG_TBLGEN_RULES_MK)
884+include $(LLVM_GEN_INTRINSICS_MK)
885+include $(BUILD_HOST_STATIC_LIBRARY)
886diff --git a/lib/Driver/Android.mk b/lib/Driver/Android.mk
887new file mode 100644
888index 0000000..559ca83
889--- /dev/null
890+++ b/lib/Driver/Android.mk
891@@ -0,0 +1,44 @@
892+LOCAL_PATH:= $(call my-dir)
893+
894+# For the host only
895+# =====================================================
896+include $(CLEAR_VARS)
897+include $(CLEAR_TBLGEN_VARS)
898+
899+TBLGEN_TABLES := \
900+ AttrVisitor.inc \
901+ DiagnosticCommonKinds.inc \
902+ DiagnosticDriverKinds.inc \
903+ DiagnosticSemaKinds.inc \
904+ Options.inc \
905+ CC1Options.inc \
906+ CC1AsOptions.inc
907+
908+clang_driver_SRC_FILES := \
909+ Action.cpp \
910+ CC1AsOptions.cpp \
911+ Compilation.cpp \
912+ Driver.cpp \
913+ DriverOptions.cpp \
914+ Job.cpp \
915+ Multilib.cpp \
916+ Phases.cpp \
917+ SanitizerArgs.cpp \
918+ Tool.cpp \
919+ ToolChain.cpp \
920+ ToolChains.cpp \
921+ Tools.cpp \
922+ Types.cpp \
923+ WindowsToolChain.cpp
924+
925+LOCAL_SRC_FILES := $(clang_driver_SRC_FILES)
926+
927+LOCAL_MODULE := libclangDriver
928+LOCAL_MODULE_TAGS := optional
929+
930+LOCAL_MODULE_TAGS := optional
931+
932+include $(CLANG_HOST_BUILD_MK)
933+include $(CLANG_TBLGEN_RULES_MK)
934+include $(CLANG_VERSION_INC_MK)
935+include $(BUILD_HOST_STATIC_LIBRARY)
936diff --git a/lib/Edit/Android.mk b/lib/Edit/Android.mk
937new file mode 100644
938index 0000000..87f4e25
939--- /dev/null
940+++ b/lib/Edit/Android.mk
941@@ -0,0 +1,32 @@
942+LOCAL_PATH:= $(call my-dir)
943+
944+clang_edit_SRC_FILES := \
945+ Commit.cpp \
946+ EditedSource.cpp \
947+ RewriteObjCFoundationAPI.cpp
948+
949+
950+# For the host only
951+# =====================================================
952+include $(CLEAR_VARS)
953+include $(CLEAR_TBLGEN_VARS)
954+
955+TBLGEN_TABLES := \
956+ Attrs.inc \
957+ AttrList.inc \
958+ CommentCommandList.inc \
959+ CommentNodes.inc \
960+ DeclNodes.inc \
961+ DiagnosticCommonKinds.inc \
962+ StmtNodes.inc
963+
964+LOCAL_SRC_FILES := $(clang_edit_SRC_FILES)
965+
966+LOCAL_MODULE:= libclangEdit
967+
968+LOCAL_MODULE_TAGS := optional
969+
970+include $(CLANG_HOST_BUILD_MK)
971+include $(CLANG_VERSION_INC_MK)
972+include $(CLANG_TBLGEN_RULES_MK)
973+include $(BUILD_HOST_STATIC_LIBRARY)
974diff --git a/lib/Format/Android.mk b/lib/Format/Android.mk
975new file mode 100644
976index 0000000..302f28f
977--- /dev/null
978+++ b/lib/Format/Android.mk
979@@ -0,0 +1,43 @@
980+LOCAL_PATH:= $(call my-dir)
981+
982+# For the host only
983+# =====================================================
984+include $(CLEAR_VARS)
985+include $(CLEAR_TBLGEN_VARS)
986+
987+TBLGEN_TABLES := \
988+ AttrHasAttributeImpl.inc \
989+ DiagnosticASTKinds.inc \
990+ DiagnosticAnalysisKinds.inc \
991+ DiagnosticCommentKinds.inc \
992+ DiagnosticCommonKinds.inc \
993+ DiagnosticDriverKinds.inc \
994+ DiagnosticFrontendKinds.inc \
995+ DiagnosticGroups.inc \
996+ DiagnosticIndexName.inc \
997+ DiagnosticLexKinds.inc \
998+ DiagnosticParseKinds.inc \
999+ DiagnosticSemaKinds.inc \
1000+ DiagnosticSerializationKinds.inc \
1001+ arm_neon.inc
1002+
1003+clang_format_SRC_FILES := \
1004+ BreakableToken.cpp \
1005+ ContinuationIndenter.cpp \
1006+ Format.cpp \
1007+ FormatToken.cpp \
1008+ TokenAnnotator.cpp \
1009+ UnwrappedLineParser.cpp \
1010+ WhitespaceManager.cpp
1011+
1012+LOCAL_SRC_FILES := $(clang_format_SRC_FILES)
1013+
1014+LOCAL_MODULE:= libclangFormat
1015+LOCAL_MODULE_TAGS := optional
1016+
1017+LOCAL_MODULE_TAGS := optional
1018+
1019+include $(CLANG_HOST_BUILD_MK)
1020+include $(CLANG_VERSION_INC_MK)
1021+include $(CLANG_TBLGEN_RULES_MK)
1022+include $(BUILD_HOST_STATIC_LIBRARY)
1023diff --git a/lib/Frontend/Android.mk b/lib/Frontend/Android.mk
1024new file mode 100644
1025index 0000000..c3c42c3
1026--- /dev/null
1027+++ b/lib/Frontend/Android.mk
1028@@ -0,0 +1,66 @@
1029+LOCAL_PATH:= $(call my-dir)
1030+
1031+# For the host only
1032+# =====================================================
1033+include $(CLEAR_VARS)
1034+include $(CLEAR_TBLGEN_VARS)
1035+
1036+TBLGEN_TABLES := \
1037+ AttrList.inc \
1038+ Attrs.inc \
1039+ AttrParsedAttrList.inc \
1040+ AttrVisitor.inc \
1041+ CC1Options.inc \
1042+ CommentCommandList.inc \
1043+ CommentNodes.inc \
1044+ DiagnosticASTKinds.inc \
1045+ DiagnosticCommonKinds.inc \
1046+ DiagnosticDriverKinds.inc \
1047+ DiagnosticFrontendKinds.inc \
1048+ DiagnosticLexKinds.inc \
1049+ DiagnosticSemaKinds.inc \
1050+ DeclNodes.inc \
1051+ StmtNodes.inc
1052+
1053+clang_frontend_SRC_FILES := \
1054+ ASTConsumers.cpp \
1055+ ASTMerge.cpp \
1056+ ASTUnit.cpp \
1057+ CacheTokens.cpp \
1058+ ChainedDiagnosticConsumer.cpp \
1059+ ChainedIncludesSource.cpp \
1060+ CompilerInstance.cpp \
1061+ CompilerInvocation.cpp \
1062+ CreateInvocationFromCommandLine.cpp \
1063+ DependencyFile.cpp \
1064+ DependencyGraph.cpp \
1065+ DiagnosticRenderer.cpp \
1066+ FrontendAction.cpp \
1067+ FrontendActions.cpp \
1068+ FrontendOptions.cpp \
1069+ HeaderIncludeGen.cpp \
1070+ InitHeaderSearch.cpp \
1071+ InitPreprocessor.cpp \
1072+ LangStandards.cpp \
1073+ LayoutOverrideSource.cpp \
1074+ LogDiagnosticPrinter.cpp \
1075+ MultiplexConsumer.cpp \
1076+ PrintPreprocessedOutput.cpp \
1077+ SerializedDiagnosticPrinter.cpp \
1078+ TextDiagnostic.cpp \
1079+ TextDiagnosticBuffer.cpp \
1080+ TextDiagnosticPrinter.cpp \
1081+ Warnings.cpp \
1082+ VerifyDiagnosticConsumer.cpp
1083+
1084+LOCAL_SRC_FILES := $(clang_frontend_SRC_FILES)
1085+
1086+LOCAL_MODULE:= libclangFrontend
1087+LOCAL_MODULE_TAGS:= optional
1088+
1089+LOCAL_MODULE_TAGS := optional
1090+
1091+include $(CLANG_HOST_BUILD_MK)
1092+include $(CLANG_TBLGEN_RULES_MK)
1093+include $(CLANG_VERSION_INC_MK)
1094+include $(BUILD_HOST_STATIC_LIBRARY)
1095diff --git a/lib/FrontendTool/Android.mk b/lib/FrontendTool/Android.mk
1096new file mode 100644
1097index 0000000..2496f6b
1098--- /dev/null
1099+++ b/lib/FrontendTool/Android.mk
1100@@ -0,0 +1,24 @@
1101+LOCAL_PATH:= $(call my-dir)
1102+
1103+# For the host only
1104+# =====================================================
1105+include $(CLEAR_VARS)
1106+include $(CLEAR_TBLGEN_VARS)
1107+
1108+LOCAL_MODULE:= libclangFrontendTool
1109+
1110+LOCAL_MODULE_TAGS := optional
1111+
1112+TBLGEN_TABLES := \
1113+ DiagnosticCommonKinds.inc \
1114+ DiagnosticFrontendKinds.inc \
1115+ CC1Options.inc
1116+
1117+clang_frontend_tool_SRC_FILES := \
1118+ ExecuteCompilerInvocation.cpp
1119+
1120+LOCAL_SRC_FILES := $(clang_frontend_tool_SRC_FILES)
1121+
1122+include $(CLANG_HOST_BUILD_MK)
1123+include $(CLANG_TBLGEN_RULES_MK)
1124+include $(BUILD_HOST_STATIC_LIBRARY)
1125diff --git a/lib/Headers/Android.mk b/lib/Headers/Android.mk
1126new file mode 100644
1127index 0000000..117129e
1128--- /dev/null
1129+++ b/lib/Headers/Android.mk
1130@@ -0,0 +1,11 @@
1131+LOCAL_PATH:= $(call my-dir)
1132+
1133+include $(CLEAR_VARS)
1134+
1135+$(TARGET_OUT_HEADERS)/clang/arm_neon.h: TBLGEN_LOCAL_MODULE := arm_neon.h
1136+$(TARGET_OUT_HEADERS)/clang/arm_neon.h: $(CLANG_ROOT_PATH)/include/clang/Basic/arm_neon.td \
1137+ | $(CLANG_TBLGEN)
1138+ $(call transform-host-clang-td-to-out,arm-neon)
1139+
1140+# Make sure when clang is used, arm_neon.h does exist.
1141+$(CLANG): | $(TARGET_OUT_HEADERS)/clang/arm_neon.h
1142diff --git a/lib/Lex/Android.mk b/lib/Lex/Android.mk
1143new file mode 100644
1144index 0000000..a5e9661
1145--- /dev/null
1146+++ b/lib/Lex/Android.mk
1147@@ -0,0 +1,45 @@
1148+LOCAL_PATH:= $(call my-dir)
1149+
1150+# For the host only
1151+# =====================================================
1152+include $(CLEAR_VARS)
1153+include $(CLEAR_TBLGEN_VARS)
1154+
1155+TBLGEN_TABLES := \
1156+ DiagnosticLexKinds.inc \
1157+ DiagnosticCommonKinds.inc
1158+
1159+clang_lex_SRC_FILES := \
1160+ HeaderMap.cpp \
1161+ HeaderSearch.cpp \
1162+ Lexer.cpp \
1163+ LiteralSupport.cpp \
1164+ MacroArgs.cpp \
1165+ MacroInfo.cpp \
1166+ ModuleMap.cpp \
1167+ PPCaching.cpp \
1168+ PPCallbacks.cpp \
1169+ PPConditionalDirectiveRecord.cpp \
1170+ PPDirectives.cpp \
1171+ PPExpressions.cpp \
1172+ PPLexerChange.cpp \
1173+ PPMacroExpansion.cpp \
1174+ PTHLexer.cpp \
1175+ Pragma.cpp \
1176+ PreprocessingRecord.cpp \
1177+ Preprocessor.cpp \
1178+ PreprocessorLexer.cpp \
1179+ ScratchBuffer.cpp \
1180+ TokenConcatenation.cpp \
1181+ TokenLexer.cpp
1182+
1183+LOCAL_SRC_FILES := $(clang_lex_SRC_FILES)
1184+
1185+LOCAL_MODULE:= libclangLex
1186+LOCAL_MODULE_TAGS := optional
1187+
1188+LOCAL_MODULE_TAGS := optional
1189+
1190+include $(CLANG_HOST_BUILD_MK)
1191+include $(CLANG_TBLGEN_RULES_MK)
1192+include $(BUILD_HOST_STATIC_LIBRARY)
1193diff --git a/lib/Parse/Android.mk b/lib/Parse/Android.mk
1194new file mode 100644
1195index 0000000..5bc2200
1196--- /dev/null
1197+++ b/lib/Parse/Android.mk
1198@@ -0,0 +1,47 @@
1199+LOCAL_PATH:= $(call my-dir)
1200+
1201+# For the host only
1202+# =====================================================
1203+include $(CLEAR_VARS)
1204+include $(CLEAR_TBLGEN_VARS)
1205+
1206+TBLGEN_TABLES := \
1207+ AttrList.inc \
1208+ AttrParsedAttrList.inc \
1209+ Attrs.inc \
1210+ AttrVisitor.inc \
1211+ AttrParserStringSwitches.inc \
1212+ CommentCommandList.inc \
1213+ CommentNodes.inc \
1214+ DeclNodes.inc \
1215+ DiagnosticParseKinds.inc \
1216+ DiagnosticCommonKinds.inc \
1217+ DiagnosticSemaKinds.inc \
1218+ StmtNodes.inc
1219+
1220+clang_parse_SRC_FILES := \
1221+ ParseAST.cpp \
1222+ ParseCXXInlineMethods.cpp \
1223+ ParseDecl.cpp \
1224+ ParseDeclCXX.cpp \
1225+ ParseExpr.cpp \
1226+ ParseExprCXX.cpp \
1227+ ParseInit.cpp \
1228+ ParseObjc.cpp \
1229+ ParseOpenMP.cpp \
1230+ ParsePragma.cpp \
1231+ ParseStmt.cpp \
1232+ ParseTemplate.cpp \
1233+ ParseTentative.cpp \
1234+ Parser.cpp
1235+
1236+LOCAL_SRC_FILES := $(clang_parse_SRC_FILES)
1237+
1238+LOCAL_MODULE:= libclangParse
1239+LOCAL_MODULE_TAGS := optional
1240+
1241+LOCAL_MODULE_TAGS := optional
1242+
1243+include $(CLANG_HOST_BUILD_MK)
1244+include $(CLANG_TBLGEN_RULES_MK)
1245+include $(BUILD_HOST_STATIC_LIBRARY)
1246diff --git a/lib/Rewrite/Core/Android.mk b/lib/Rewrite/Core/Android.mk
1247new file mode 100644
1248index 0000000..546fc04
1249--- /dev/null
1250+++ b/lib/Rewrite/Core/Android.mk
1251@@ -0,0 +1,34 @@
1252+LOCAL_PATH:= $(call my-dir)
1253+
1254+# For the host only
1255+# =====================================================
1256+include $(CLEAR_VARS)
1257+include $(CLEAR_TBLGEN_VARS)
1258+
1259+LOCAL_MODULE:= libclangRewriteCore
1260+
1261+LOCAL_MODULE_TAGS := optional
1262+
1263+TBLGEN_TABLES := \
1264+ AttrList.inc \
1265+ Attrs.inc \
1266+ AttrParsedAttrList.inc \
1267+ CommentNodes.inc \
1268+ DeclNodes.inc \
1269+ DiagnosticCommonKinds.inc \
1270+ DiagnosticFrontendKinds.inc \
1271+ StmtNodes.inc
1272+
1273+clang_rewrite_core_SRC_FILES := \
1274+ DeltaTree.cpp \
1275+ HTMLRewrite.cpp \
1276+ RewriteRope.cpp \
1277+ Rewriter.cpp \
1278+ TokenRewriter.cpp
1279+
1280+LOCAL_SRC_FILES := $(clang_rewrite_core_SRC_FILES)
1281+
1282+
1283+include $(CLANG_HOST_BUILD_MK)
1284+include $(CLANG_TBLGEN_RULES_MK)
1285+include $(BUILD_HOST_STATIC_LIBRARY)
1286diff --git a/lib/Rewrite/Frontend/Android.mk b/lib/Rewrite/Frontend/Android.mk
1287new file mode 100644
1288index 0000000..2bbf311
1289--- /dev/null
1290+++ b/lib/Rewrite/Frontend/Android.mk
1291@@ -0,0 +1,38 @@
1292+LOCAL_PATH:= $(call my-dir)
1293+
1294+# For the host only
1295+# =====================================================
1296+include $(CLEAR_VARS)
1297+include $(CLEAR_TBLGEN_VARS)
1298+
1299+LOCAL_MODULE:= libclangRewriteFrontend
1300+
1301+LOCAL_MODULE_TAGS := optional
1302+
1303+TBLGEN_TABLES := \
1304+ AttrList.inc \
1305+ Attrs.inc \
1306+ AttrParsedAttrList.inc \
1307+ CommentCommandList.inc \
1308+ CommentNodes.inc \
1309+ DeclNodes.inc \
1310+ DiagnosticCommonKinds.inc \
1311+ DiagnosticFrontendKinds.inc \
1312+ StmtNodes.inc
1313+
1314+clang_rewrite_frontend_SRC_FILES := \
1315+ FixItRewriter.cpp \
1316+ FrontendActions.cpp \
1317+ HTMLPrint.cpp \
1318+ InclusionRewriter.cpp \
1319+ RewriteMacros.cpp \
1320+ RewriteModernObjC.cpp \
1321+ RewriteObjC.cpp \
1322+ RewriteTest.cpp
1323+
1324+LOCAL_SRC_FILES := $(clang_rewrite_frontend_SRC_FILES)
1325+
1326+
1327+include $(CLANG_HOST_BUILD_MK)
1328+include $(CLANG_TBLGEN_RULES_MK)
1329+include $(BUILD_HOST_STATIC_LIBRARY)
1330diff --git a/lib/Sema/Android.mk b/lib/Sema/Android.mk
1331new file mode 100644
1332index 0000000..77a2e93
1333--- /dev/null
1334+++ b/lib/Sema/Android.mk
1335@@ -0,0 +1,84 @@
1336+LOCAL_PATH:= $(call my-dir)
1337+
1338+# For the host only
1339+# =====================================================
1340+include $(CLEAR_VARS)
1341+include $(CLEAR_TBLGEN_VARS)
1342+
1343+TBLGEN_TABLES := \
1344+ AttrList.inc \
1345+ Attrs.inc \
1346+ AttrParsedAttrKinds.inc \
1347+ AttrParsedAttrImpl.inc \
1348+ AttrParsedAttrList.inc \
1349+ AttrSpellingListIndex.inc \
1350+ AttrTemplateInstantiate.inc \
1351+ AttrVisitor.inc \
1352+ CommentCommandList.inc \
1353+ CommentNodes.inc \
1354+ DeclNodes.inc \
1355+ DiagnosticASTKinds.inc \
1356+ DiagnosticSemaKinds.inc \
1357+ DiagnosticParseKinds.inc \
1358+ DiagnosticCommentKinds.inc \
1359+ DiagnosticCommonKinds.inc \
1360+ StmtNodes.inc \
1361+ arm_neon.inc
1362+
1363+clang_sema_SRC_FILES := \
1364+ AnalysisBasedWarnings.cpp \
1365+ AttributeList.cpp \
1366+ CodeCompleteConsumer.cpp \
1367+ DeclSpec.cpp \
1368+ IdentifierResolver.cpp \
1369+ DelayedDiagnostic.cpp \
1370+ JumpDiagnostics.cpp \
1371+ MultiplexExternalSemaSource.cpp \
1372+ Scope.cpp \
1373+ ScopeInfo.cpp \
1374+ Sema.cpp \
1375+ SemaAccess.cpp \
1376+ SemaAttr.cpp \
1377+ SemaCXXScopeSpec.cpp \
1378+ SemaCast.cpp \
1379+ SemaChecking.cpp \
1380+ SemaCodeComplete.cpp \
1381+ SemaConsumer.cpp \
1382+ SemaDecl.cpp \
1383+ SemaDeclAttr.cpp \
1384+ SemaDeclCXX.cpp \
1385+ SemaDeclObjC.cpp \
1386+ SemaExceptionSpec.cpp \
1387+ SemaExpr.cpp \
1388+ SemaExprCXX.cpp \
1389+ SemaExprMember.cpp \
1390+ SemaExprObjC.cpp \
1391+ SemaFixItUtils.cpp \
1392+ SemaInit.cpp \
1393+ SemaLambda.cpp \
1394+ SemaLookup.cpp \
1395+ SemaObjCProperty.cpp \
1396+ SemaOpenMP.cpp \
1397+ SemaOverload.cpp \
1398+ SemaPseudoObject.cpp \
1399+ SemaStmt.cpp \
1400+ SemaStmtAsm.cpp \
1401+ SemaStmtAttr.cpp \
1402+ SemaTemplate.cpp \
1403+ SemaTemplateDeduction.cpp \
1404+ SemaTemplateInstantiate.cpp \
1405+ SemaTemplateInstantiateDecl.cpp \
1406+ SemaTemplateVariadic.cpp \
1407+ SemaType.cpp \
1408+ TypeLocBuilder.cpp
1409+
1410+LOCAL_SRC_FILES := $(clang_sema_SRC_FILES)
1411+
1412+LOCAL_MODULE:= libclangSema
1413+LOCAL_MODULE_TAGS := optional
1414+
1415+LOCAL_MODULE_TAGS := optional
1416+
1417+include $(CLANG_HOST_BUILD_MK)
1418+include $(CLANG_TBLGEN_RULES_MK)
1419+include $(BUILD_HOST_STATIC_LIBRARY)
1420diff --git a/lib/Serialization/Android.mk b/lib/Serialization/Android.mk
1421new file mode 100644
1422index 0000000..751e306
1423--- /dev/null
1424+++ b/lib/Serialization/Android.mk
1425@@ -0,0 +1,46 @@
1426+LOCAL_PATH:= $(call my-dir)
1427+
1428+# For the host only
1429+# =====================================================
1430+include $(CLEAR_VARS)
1431+include $(CLEAR_TBLGEN_VARS)
1432+
1433+LOCAL_MODULE:= libclangSerialization
1434+
1435+LOCAL_MODULE_TAGS := optional
1436+
1437+TBLGEN_TABLES := \
1438+ AttrList.inc \
1439+ AttrParsedAttrList.inc \
1440+ AttrPCHRead.inc \
1441+ AttrPCHWrite.inc \
1442+ Attrs.inc \
1443+ CommentCommandList.inc \
1444+ CommentNodes.inc \
1445+ DeclNodes.inc \
1446+ DiagnosticCommonKinds.inc \
1447+ DiagnosticFrontendKinds.inc \
1448+ DiagnosticSemaKinds.inc \
1449+ DiagnosticSerializationKinds.inc \
1450+ StmtNodes.inc
1451+
1452+clang_serialization_SRC_FILES :=\
1453+ ASTCommon.cpp \
1454+ ASTReader.cpp \
1455+ ASTReaderDecl.cpp \
1456+ ASTReaderStmt.cpp \
1457+ ASTWriter.cpp \
1458+ ASTWriterDecl.cpp \
1459+ ASTWriterStmt.cpp \
1460+ GeneratePCH.cpp \
1461+ GlobalModuleIndex.cpp \
1462+ Module.cpp \
1463+ ModuleManager.cpp
1464+
1465+LOCAL_SRC_FILES := $(clang_serialization_SRC_FILES)
1466+
1467+
1468+include $(CLANG_HOST_BUILD_MK)
1469+include $(CLANG_TBLGEN_RULES_MK)
1470+include $(CLANG_VERSION_INC_MK)
1471+include $(BUILD_HOST_STATIC_LIBRARY)
1472diff --git a/lib/StaticAnalyzer/Checkers/Android.mk b/lib/StaticAnalyzer/Checkers/Android.mk
1473new file mode 100644
1474index 0000000..bb2a539
1475--- /dev/null
1476+++ b/lib/StaticAnalyzer/Checkers/Android.mk
1477@@ -0,0 +1,100 @@
1478+LOCAL_PATH:= $(call my-dir)
1479+
1480+clang_static_analyzer_checkers_TBLGEN_TABLES := \
1481+ AttrKinds.inc \
1482+ AttrList.inc \
1483+ AttrParsedAttrList.inc \
1484+ Attrs.inc \
1485+ AttrVisitor.inc \
1486+ Checkers.inc \
1487+ CommentCommandList.inc \
1488+ CommentNodes.inc \
1489+ DeclNodes.inc \
1490+ DiagnosticCommonKinds.inc \
1491+ StmtNodes.inc
1492+
1493+clang_static_analyzer_checkers_SRC_FILES := \
1494+ AllocationDiagnostics.cpp \
1495+ AnalyzerStatsChecker.cpp \
1496+ ArrayBoundChecker.cpp \
1497+ ArrayBoundCheckerV2.cpp \
1498+ BasicObjCFoundationChecks.cpp \
1499+ BoolAssignmentChecker.cpp \
1500+ BuiltinFunctionChecker.cpp \
1501+ CStringChecker.cpp \
1502+ CStringSyntaxChecker.cpp \
1503+ CallAndMessageChecker.cpp \
1504+ CastSizeChecker.cpp \
1505+ CastToStructChecker.cpp \
1506+ CheckObjCDealloc.cpp \
1507+ CheckObjCInstMethSignature.cpp \
1508+ CheckSecuritySyntaxOnly.cpp \
1509+ CheckSizeofPointer.cpp \
1510+ CheckerDocumentation.cpp \
1511+ ChrootChecker.cpp \
1512+ ClangCheckers.cpp \
1513+ DeadStoresChecker.cpp \
1514+ DebugCheckers.cpp \
1515+ DereferenceChecker.cpp \
1516+ DirectIvarAssignment.cpp \
1517+ DivZeroChecker.cpp \
1518+ DynamicTypePropagation.cpp \
1519+ ExprInspectionChecker.cpp \
1520+ FixedAddressChecker.cpp \
1521+ GenericTaintChecker.cpp \
1522+ IdenticalExprChecker.cpp \
1523+ IvarInvalidationChecker.cpp \
1524+ LLVMConventionsChecker.cpp \
1525+ MacOSKeychainAPIChecker.cpp \
1526+ MacOSXAPIChecker.cpp \
1527+ MallocChecker.cpp \
1528+ MallocOverflowSecurityChecker.cpp \
1529+ MallocSizeofChecker.cpp \
1530+ NSAutoreleasePoolChecker.cpp \
1531+ NSErrorChecker.cpp \
1532+ NoReturnFunctionChecker.cpp \
1533+ NonNullParamChecker.cpp \
1534+ ObjCAtSyncChecker.cpp \
1535+ ObjCContainersASTChecker.cpp \
1536+ ObjCContainersChecker.cpp \
1537+ ObjCMissingSuperCallChecker.cpp \
1538+ ObjCSelfInitChecker.cpp \
1539+ ObjCUnusedIVarsChecker.cpp \
1540+ PointerArithChecker.cpp \
1541+ PointerSubChecker.cpp \
1542+ PthreadLockChecker.cpp \
1543+ RetainCountChecker.cpp \
1544+ ReturnPointerRangeChecker.cpp \
1545+ ReturnUndefChecker.cpp \
1546+ SimpleStreamChecker.cpp \
1547+ StackAddrEscapeChecker.cpp \
1548+ StreamChecker.cpp \
1549+ TaintTesterChecker.cpp \
1550+ TraversalChecker.cpp \
1551+ UndefBranchChecker.cpp \
1552+ UndefCapturedBlockVarChecker.cpp \
1553+ UndefResultChecker.cpp \
1554+ UndefinedArraySubscriptChecker.cpp \
1555+ UndefinedAssignmentChecker.cpp \
1556+ UnixAPIChecker.cpp \
1557+ UnreachableCodeChecker.cpp \
1558+ VirtualCallChecker.cpp \
1559+ VLASizeChecker.cpp
1560+
1561+# For the host only
1562+# =====================================================
1563+include $(CLEAR_VARS)
1564+include $(CLEAR_TBLGEN_VARS)
1565+
1566+TBLGEN_TABLES := $(clang_static_analyzer_checkers_TBLGEN_TABLES)
1567+
1568+LOCAL_SRC_FILES := $(clang_static_analyzer_checkers_SRC_FILES)
1569+
1570+LOCAL_MODULE:= libclangStaticAnalyzerCheckers
1571+
1572+LOCAL_MODULE_TAGS := optional
1573+
1574+include $(CLANG_HOST_BUILD_MK)
1575+include $(CLANG_TBLGEN_RULES_MK)
1576+include $(CLANG_VERSION_INC_MK)
1577+include $(BUILD_HOST_STATIC_LIBRARY)
1578diff --git a/lib/StaticAnalyzer/Core/Android.mk b/lib/StaticAnalyzer/Core/Android.mk
1579new file mode 100644
1580index 0000000..68d2c36
1581--- /dev/null
1582+++ b/lib/StaticAnalyzer/Core/Android.mk
1583@@ -0,0 +1,68 @@
1584+LOCAL_PATH:= $(call my-dir)
1585+
1586+clang_static_analyzer_core_TBLGEN_TABLES := \
1587+ AttrList.inc \
1588+ Attrs.inc \
1589+ CommentCommandList.inc \
1590+ CommentNodes.inc \
1591+ DeclNodes.inc \
1592+ DiagnosticCommonKinds.inc \
1593+ StmtNodes.inc
1594+
1595+clang_static_analyzer_core_SRC_FILES := \
1596+ AnalysisManager.cpp \
1597+ AnalyzerOptions.cpp \
1598+ APSIntType.cpp \
1599+ BasicValueFactory.cpp \
1600+ BlockCounter.cpp \
1601+ BugReporter.cpp \
1602+ BugReporterVisitors.cpp \
1603+ CallEvent.cpp \
1604+ Checker.cpp \
1605+ CheckerContext.cpp \
1606+ CheckerHelpers.cpp \
1607+ CheckerManager.cpp \
1608+ CheckerRegistry.cpp \
1609+ CommonBugCategories.cpp \
1610+ ConstraintManager.cpp \
1611+ CoreEngine.cpp \
1612+ Environment.cpp \
1613+ ExplodedGraph.cpp \
1614+ ExprEngine.cpp \
1615+ ExprEngineC.cpp \
1616+ ExprEngineCXX.cpp \
1617+ ExprEngineCallAndReturn.cpp \
1618+ ExprEngineObjC.cpp \
1619+ FunctionSummary.cpp \
1620+ HTMLDiagnostics.cpp \
1621+ MemRegion.cpp \
1622+ PathDiagnostic.cpp \
1623+ PlistDiagnostics.cpp \
1624+ ProgramState.cpp \
1625+ RangeConstraintManager.cpp \
1626+ RegionStore.cpp \
1627+ SValBuilder.cpp \
1628+ SVals.cpp \
1629+ SimpleConstraintManager.cpp \
1630+ SimpleSValBuilder.cpp \
1631+ Store.cpp \
1632+ SubEngine.cpp \
1633+ SymbolManager.cpp
1634+
1635+# For the host only
1636+# =====================================================
1637+include $(CLEAR_VARS)
1638+include $(CLEAR_TBLGEN_VARS)
1639+
1640+TBLGEN_TABLES := $(clang_static_analyzer_core_TBLGEN_TABLES)
1641+
1642+LOCAL_SRC_FILES := $(clang_static_analyzer_core_SRC_FILES)
1643+
1644+LOCAL_MODULE:= libclangStaticAnalyzerCore
1645+
1646+LOCAL_MODULE_TAGS := optional
1647+
1648+include $(CLANG_HOST_BUILD_MK)
1649+include $(CLANG_TBLGEN_RULES_MK)
1650+include $(CLANG_VERSION_INC_MK)
1651+include $(BUILD_HOST_STATIC_LIBRARY)
1652diff --git a/lib/StaticAnalyzer/Frontend/Android.mk b/lib/StaticAnalyzer/Frontend/Android.mk
1653new file mode 100644
1654index 0000000..ccffdad
1655--- /dev/null
1656+++ b/lib/StaticAnalyzer/Frontend/Android.mk
1657@@ -0,0 +1,40 @@
1658+LOCAL_PATH:= $(call my-dir)
1659+
1660+clang_static_analyzer_frontend_C_INCLUDES := \
1661+ $(CLANG_ROOT_PATH)/lib/StaticAnalyzer/Checkers
1662+
1663+clang_static_analyzer_frontend_TBLGEN_TABLES := \
1664+ AttrList.inc \
1665+ Attrs.inc \
1666+ AttrVisitor.inc \
1667+ CommentCommandList.inc \
1668+ CommentNodes.inc \
1669+ DeclNodes.inc \
1670+ DiagnosticCommonKinds.inc \
1671+ DiagnosticFrontendKinds.inc \
1672+ StmtNodes.inc
1673+
1674+clang_static_analyzer_frontend_SRC_FILES := \
1675+ AnalysisConsumer.cpp \
1676+ CheckerRegistration.cpp \
1677+ FrontendActions.cpp
1678+
1679+# For the host only
1680+# =====================================================
1681+include $(CLEAR_VARS)
1682+include $(CLEAR_TBLGEN_VARS)
1683+
1684+TBLGEN_TABLES := $(clang_static_analyzer_frontend_TBLGEN_TABLES)
1685+
1686+LOCAL_SRC_FILES := $(clang_static_analyzer_frontend_SRC_FILES)
1687+
1688+LOCAL_C_INCLUDES := $(clang_static_analyzer_frontend_C_INCLUDES)
1689+
1690+LOCAL_MODULE:= libclangStaticAnalyzerFrontend
1691+
1692+LOCAL_MODULE_TAGS := optional
1693+
1694+include $(CLANG_HOST_BUILD_MK)
1695+include $(CLANG_TBLGEN_RULES_MK)
1696+include $(CLANG_VERSION_INC_MK)
1697+include $(BUILD_HOST_STATIC_LIBRARY)
1698diff --git a/tools/driver/Android.mk b/tools/driver/Android.mk
1699new file mode 100644
1700index 0000000..e7af560
1701--- /dev/null
1702+++ b/tools/driver/Android.mk
1703@@ -0,0 +1,119 @@
1704+LOCAL_PATH:= $(call my-dir)
1705+
1706+# For the host only
1707+# =====================================================
1708+include $(CLEAR_VARS)
1709+include $(CLEAR_TBLGEN_VARS)
1710+
1711+LOCAL_MODULE := clang
1712+
1713+LOCAL_MODULE_CLASS := EXECUTABLES
1714+
1715+TBLGEN_TABLES := \
1716+ DiagnosticCommonKinds.inc \
1717+ DiagnosticDriverKinds.inc \
1718+ DiagnosticFrontendKinds.inc \
1719+ CC1Options.inc \
1720+ CC1AsOptions.inc
1721+
1722+clang_SRC_FILES := \
1723+ cc1_main.cpp \
1724+ cc1as_main.cpp \
1725+ driver.cpp
1726+
1727+LOCAL_SRC_FILES := $(clang_SRC_FILES)
1728+
1729+LOCAL_STATIC_LIBRARIES := \
1730+ libclangFrontendTool \
1731+ libclangFrontend \
1732+ libclangARCMigrate \
1733+ libclangDriver \
1734+ libclangSerialization \
1735+ libclangCodeGen \
1736+ libclangRewriteFrontend \
1737+ libclangRewriteCore \
1738+ libclangParse \
1739+ libclangSema \
1740+ libclangStaticAnalyzerFrontend \
1741+ libclangStaticAnalyzerCheckers \
1742+ libclangStaticAnalyzerCore \
1743+ libclangAnalysis \
1744+ libclangEdit \
1745+ libclangAST \
1746+ libclangLex \
1747+ libclangBasic \
1748+ libLLVMARMAsmParser \
1749+ libLLVMARMCodeGen \
1750+ libLLVMARMAsmPrinter \
1751+ libLLVMARMDisassembler \
1752+ libLLVMARMDesc \
1753+ libLLVMARMInfo \
1754+ libLLVMMipsAsmParser \
1755+ libLLVMMipsCodeGen \
1756+ libLLVMMipsDisassembler \
1757+ libLLVMMipsAsmPrinter \
1758+ libLLVMMipsDesc \
1759+ libLLVMMipsInfo \
1760+ libLLVMX86Info \
1761+ libLLVMX86AsmParser \
1762+ libLLVMX86CodeGen \
1763+ libLLVMX86Disassembler \
1764+ libLLVMX86Desc \
1765+ libLLVMX86AsmPrinter \
1766+ libLLVMX86Utils \
1767+ libLLVMARM64Info \
1768+ libLLVMARM64AsmParser \
1769+ libLLVMARM64CodeGen \
1770+ libLLVMARM64Disassembler \
1771+ libLLVMARM64Desc \
1772+ libLLVMARM64AsmPrinter \
1773+ libLLVMARM64Utils \
1774+ libLLVMIRReader \
1775+ libLLVMAsmParser \
1776+ libLLVMAsmPrinter \
1777+ libLLVMBitReader \
1778+ libLLVMBitWriter \
1779+ libLLVMSelectionDAG \
1780+ libLLVMipo \
1781+ libLLVMipa \
1782+ libLLVMInstCombine \
1783+ libLLVMInstrumentation \
1784+ libLLVMCodeGen \
1785+ libLLVMObject \
1786+ libLLVMLinker \
1787+ libLLVMMC \
1788+ libLLVMMCParser \
1789+ libLLVMScalarOpts \
1790+ libLLVMTransformObjCARC \
1791+ libLLVMTransformUtils \
1792+ libLLVMVectorize \
1793+ libLLVMAnalysis \
1794+ libLLVMCore \
1795+ libLLVMOption \
1796+ libLLVMSupport \
1797+ libLLVMTarget
1798+
1799+LOCAL_LDLIBS += -lm
1800+ifdef USE_MINGW
1801+LOCAL_LDLIBS += -limagehlp
1802+else
1803+LOCAL_LDLIBS += -lpthread -ldl
1804+endif
1805+
1806+include $(CLANG_HOST_BUILD_MK)
1807+include $(CLANG_TBLGEN_RULES_MK)
1808+include $(BUILD_HOST_EXECUTABLE)
1809+
1810+ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
1811+# Make sure if clang (i.e. $(LOCAL_MODULE)) get installed,
1812+# clang++ will get installed as well.
1813+ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
1814+ $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(CLANG_CXX)
1815+# the additional dependency is needed when you run mm/mmm.
1816+$(LOCAL_MODULE) : $(CLANG_CXX)
1817+
1818+# Symlink for clang++
1819+$(CLANG_CXX) : $(LOCAL_INSTALLED_MODULE)
1820+ @echo "Symlink $@ -> $<"
1821+ $(hide) ln -sf $(notdir $<) $@
1822+endif
1823diff --git a/utils/TableGen/Android.mk b/utils/TableGen/Android.mk
1824new file mode 100644
1825index 0000000..4a40dc8
1826--- /dev/null
1827+++ b/utils/TableGen/Android.mk
1828@@ -0,0 +1,35 @@
1829+LOCAL_PATH:= $(call my-dir)
1830+
1831+clang_tablegen_SRC_FILES := \
1832+ ClangASTNodesEmitter.cpp \
1833+ ClangAttrEmitter.cpp \
1834+ ClangCommentCommandInfoEmitter.cpp \
1835+ ClangCommentHTMLNamedCharacterReferenceEmitter.cpp \
1836+ ClangCommentHTMLTagsEmitter.cpp \
1837+ ClangDiagnosticsEmitter.cpp \
1838+ ClangSACheckersEmitter.cpp \
1839+ NeonEmitter.cpp \
1840+ TableGen.cpp
1841+
1842+include $(CLEAR_VARS)
1843+
1844+LOCAL_MODULE := clang-tblgen
1845+LOCAL_MODULE_TAGS := optional
1846+LOCAL_SRC_FILES := $(clang_tablegen_SRC_FILES)
1847+
1848+REQUIRES_EH := 1
1849+REQUIRES_RTTI := 1
1850+
1851+LOCAL_STATIC_LIBRARIES := \
1852+ libLLVMTableGen \
1853+ libLLVMSupport
1854+
1855+LOCAL_LDLIBS += -lm
1856+ifeq ($(HOST_OS),windows)
1857+ LOCAL_LDLIBS += -limagehlp -lpsapi
1858+else
1859+ LOCAL_LDLIBS += -lpthread -ldl
1860+endif
1861+
1862+include $(LLVM_HOST_BUILD_MK)
1863+include $(BUILD_HOST_EXECUTABLE)
1864--
18651.9.1.423.g4596e3a
1866