aboutsummaryrefslogtreecommitdiffstats
path: root/patches/0004-Add-Android-makefiles-for-LLVM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/0004-Add-Android-makefiles-for-LLVM.patch')
-rw-r--r--patches/0004-Add-Android-makefiles-for-LLVM.patch4628
1 files changed, 4628 insertions, 0 deletions
diff --git a/patches/0004-Add-Android-makefiles-for-LLVM.patch b/patches/0004-Add-Android-makefiles-for-LLVM.patch
new file mode 100644
index 0000000..863909a
--- /dev/null
+++ b/patches/0004-Add-Android-makefiles-for-LLVM.patch
@@ -0,0 +1,4628 @@
+From ca95c159402c89aff7dab5a29f3ea3b54c5a77a4 Mon Sep 17 00:00:00 2001
+From: Tim Murray <timmurray@google.com>
+Date: Thu, 27 Mar 2014 15:10:30 -0700
+Subject: [PATCH 4/5] Add Android makefiles for LLVM.
+
+Change-Id: I4f561d517605569e11af40bb191d056d7e7196de
+---
+ Android.mk | 90 +++++++++++++
+ CleanSpec.mk | 54 ++++++++
+ clear_tblgen_vars.mk | 2 +
+ lib/Analysis/Android.mk | 80 +++++++++++
+ lib/Analysis/IPA/Android.mk | 40 ++++++
+ lib/AsmParser/Android.mk | 34 +++++
+ lib/Bitcode/Reader/Android.mk | 36 +++++
+ lib/Bitcode/Writer/Android.mk | 37 +++++
+ lib/CodeGen/Android.mk | 143 ++++++++++++++++++++
+ lib/CodeGen/AsmPrinter/Android.mk | 62 +++++++++
+ lib/CodeGen/SelectionDAG/Android.mk | 56 ++++++++
+ lib/ExecutionEngine/Android.mk | 18 +++
+ lib/ExecutionEngine/JIT/Android.mk | 17 +++
+ lib/ExecutionEngine/MCJIT/Android.mk | 16 +++
+ lib/ExecutionEngine/RuntimeDyld/Android.mk | 18 +++
+ lib/IR/Android.mk | 79 +++++++++++
+ lib/IRReader/Android.mk | 38 ++++++
+ lib/Linker/Android.mk | 32 +++++
+ lib/MC/Android.mk | 78 +++++++++++
+ lib/MC/MCDisassembler/Android.mk | 15 +++
+ lib/MC/MCParser/Android.mk | 40 ++++++
+ lib/Object/Android.mk | 45 +++++++
+ lib/Option/Android.mk | 42 ++++++
+ lib/Support/Android.mk | 120 +++++++++++++++++
+ lib/TableGen/Android.mk | 39 ++++++
+ lib/Target/AArch64/Android.mk | 67 ++++++++++
+ lib/Target/AArch64/AsmParser/Android.mk | 63 +++++++++
+ lib/Target/AArch64/Disassembler/Android.mk | 55 ++++++++
+ lib/Target/AArch64/InstPrinter/Android.mk | 57 ++++++++
+ lib/Target/AArch64/MCTargetDesc/Android.mk | 57 ++++++++
+ lib/Target/AArch64/TargetInfo/Android.mk | 55 ++++++++
+ lib/Target/AArch64/Utils/Android.mk | 36 +++++
+ lib/Target/ARM/Android.mk | 87 ++++++++++++
+ lib/Target/ARM/AsmParser/Android.mk | 63 +++++++++
+ lib/Target/ARM/Disassembler/Android.mk | 55 ++++++++
+ lib/Target/ARM/InstPrinter/Android.mk | 57 ++++++++
+ lib/Target/ARM/MCTargetDesc/Android.mk | 61 +++++++++
+ lib/Target/ARM/TargetInfo/Android.mk | 55 ++++++++
+ lib/Target/Android.mk | 39 ++++++
+ lib/Target/Mips/Android.mk | 85 ++++++++++++
+ lib/Target/Mips/AsmParser/Android.mk | 56 ++++++++
+ lib/Target/Mips/Disassembler/Android.mk | 48 +++++++
+ lib/Target/Mips/InstPrinter/Android.mk | 48 +++++++
+ lib/Target/Mips/MCTargetDesc/Android.mk | 58 ++++++++
+ lib/Target/Mips/TargetInfo/Android.mk | 47 +++++++
+ lib/Target/X86/Android.mk | 72 ++++++++++
+ lib/Target/X86/AsmParser/Android.mk | 59 ++++++++
+ lib/Target/X86/Disassembler/Android.mk | 56 ++++++++
+ lib/Target/X86/InstPrinter/Android.mk | 57 ++++++++
+ lib/Target/X86/MCTargetDesc/Android.mk | 56 ++++++++
+ lib/Target/X86/TargetInfo/Android.mk | 55 ++++++++
+ lib/Target/X86/Utils/Android.mk | 36 +++++
+ lib/Transforms/IPO/Android.mk | 52 ++++++++
+ lib/Transforms/InstCombine/Android.mk | 44 ++++++
+ lib/Transforms/Instrumentation/Android.mk | 37 +++++
+ lib/Transforms/ObjCARC/Android.mk | 40 ++++++
+ lib/Transforms/Scalar/Android.mk | 73 ++++++++++
+ lib/Transforms/Utils/Android.mk | 66 +++++++++
+ lib/Transforms/Vectorize/Android.mk | 35 +++++
+ llvm-device-build.mk | 79 +++++++++++
+ llvm-gen-intrinsics.mk | 19 +++
+ llvm-host-build.mk | 64 +++++++++
+ llvm-tblgen-rules.mk | 208 +++++++++++++++++++++++++++++
+ llvm.mk | 11 ++
+ shared_llvm.mk | 137 +++++++++++++++++++
+ tools/llc/Android.mk | 136 +++++++++++++++++++
+ tools/llvm-as/Android.mk | 28 ++++
+ tools/llvm-dis/Android.mk | 25 ++++
+ tools/llvm-link/Android.mk | 50 +++++++
+ tools/opt/Android.mk | 81 +++++++++++
+ utils/FileCheck/Android.mk | 23 ++++
+ utils/TableGen/Android.mk | 58 ++++++++
+ 72 files changed, 4037 insertions(+)
+ create mode 100644 Android.mk
+ create mode 100644 CleanSpec.mk
+ create mode 100644 clear_tblgen_vars.mk
+ create mode 100644 lib/Analysis/Android.mk
+ create mode 100644 lib/Analysis/IPA/Android.mk
+ create mode 100644 lib/AsmParser/Android.mk
+ create mode 100644 lib/Bitcode/Reader/Android.mk
+ create mode 100644 lib/Bitcode/Writer/Android.mk
+ create mode 100644 lib/CodeGen/Android.mk
+ create mode 100644 lib/CodeGen/AsmPrinter/Android.mk
+ create mode 100644 lib/CodeGen/SelectionDAG/Android.mk
+ create mode 100644 lib/ExecutionEngine/Android.mk
+ create mode 100644 lib/ExecutionEngine/JIT/Android.mk
+ create mode 100644 lib/ExecutionEngine/MCJIT/Android.mk
+ create mode 100644 lib/ExecutionEngine/RuntimeDyld/Android.mk
+ create mode 100644 lib/IR/Android.mk
+ create mode 100644 lib/IRReader/Android.mk
+ create mode 100644 lib/Linker/Android.mk
+ create mode 100644 lib/MC/Android.mk
+ create mode 100644 lib/MC/MCDisassembler/Android.mk
+ create mode 100644 lib/MC/MCParser/Android.mk
+ create mode 100644 lib/Object/Android.mk
+ create mode 100644 lib/Option/Android.mk
+ create mode 100644 lib/Support/Android.mk
+ create mode 100644 lib/TableGen/Android.mk
+ create mode 100644 lib/Target/AArch64/Android.mk
+ create mode 100644 lib/Target/AArch64/AsmParser/Android.mk
+ create mode 100644 lib/Target/AArch64/Disassembler/Android.mk
+ create mode 100644 lib/Target/AArch64/InstPrinter/Android.mk
+ create mode 100644 lib/Target/AArch64/MCTargetDesc/Android.mk
+ create mode 100644 lib/Target/AArch64/TargetInfo/Android.mk
+ create mode 100644 lib/Target/AArch64/Utils/Android.mk
+ create mode 100644 lib/Target/ARM/Android.mk
+ create mode 100644 lib/Target/ARM/AsmParser/Android.mk
+ create mode 100644 lib/Target/ARM/Disassembler/Android.mk
+ create mode 100644 lib/Target/ARM/InstPrinter/Android.mk
+ create mode 100644 lib/Target/ARM/MCTargetDesc/Android.mk
+ create mode 100644 lib/Target/ARM/TargetInfo/Android.mk
+ create mode 100644 lib/Target/Android.mk
+ create mode 100644 lib/Target/Mips/Android.mk
+ create mode 100644 lib/Target/Mips/AsmParser/Android.mk
+ create mode 100644 lib/Target/Mips/Disassembler/Android.mk
+ create mode 100644 lib/Target/Mips/InstPrinter/Android.mk
+ create mode 100644 lib/Target/Mips/MCTargetDesc/Android.mk
+ create mode 100644 lib/Target/Mips/TargetInfo/Android.mk
+ create mode 100644 lib/Target/X86/Android.mk
+ create mode 100644 lib/Target/X86/AsmParser/Android.mk
+ create mode 100644 lib/Target/X86/Disassembler/Android.mk
+ create mode 100644 lib/Target/X86/InstPrinter/Android.mk
+ create mode 100644 lib/Target/X86/MCTargetDesc/Android.mk
+ create mode 100644 lib/Target/X86/TargetInfo/Android.mk
+ create mode 100644 lib/Target/X86/Utils/Android.mk
+ create mode 100644 lib/Transforms/IPO/Android.mk
+ create mode 100644 lib/Transforms/InstCombine/Android.mk
+ create mode 100644 lib/Transforms/Instrumentation/Android.mk
+ create mode 100644 lib/Transforms/ObjCARC/Android.mk
+ create mode 100644 lib/Transforms/Scalar/Android.mk
+ create mode 100644 lib/Transforms/Utils/Android.mk
+ create mode 100644 lib/Transforms/Vectorize/Android.mk
+ create mode 100644 llvm-device-build.mk
+ create mode 100644 llvm-gen-intrinsics.mk
+ create mode 100644 llvm-host-build.mk
+ create mode 100644 llvm-tblgen-rules.mk
+ create mode 100644 llvm.mk
+ create mode 100644 shared_llvm.mk
+ create mode 100644 tools/llc/Android.mk
+ create mode 100644 tools/llvm-as/Android.mk
+ create mode 100644 tools/llvm-dis/Android.mk
+ create mode 100644 tools/llvm-link/Android.mk
+ create mode 100644 tools/opt/Android.mk
+ create mode 100644 utils/FileCheck/Android.mk
+ create mode 100644 utils/TableGen/Android.mk
+
+diff --git a/Android.mk b/Android.mk
+new file mode 100644
+index 0000000..9f6e8a5
+--- /dev/null
++++ b/Android.mk
+@@ -0,0 +1,90 @@
++LOCAL_PATH := $(call my-dir)
++LLVM_ROOT_PATH := $(LOCAL_PATH)
++LLVM_ENABLE_ASSERTION := false
++
++include $(CLEAR_VARS)
++
++# LLVM Libraries
++subdirs := \
++ lib/Analysis \
++ lib/Analysis/IPA \
++ lib/AsmParser \
++ lib/Bitcode/Reader \
++ lib/Bitcode/Writer \
++ lib/ExecutionEngine \
++ lib/ExecutionEngine/RuntimeDyld \
++ lib/ExecutionEngine/JIT \
++ lib/ExecutionEngine/MCJIT \
++ lib/CodeGen \
++ lib/CodeGen/AsmPrinter \
++ lib/CodeGen/SelectionDAG \
++ lib/IR \
++ lib/IRReader \
++ lib/Linker \
++ lib/MC \
++ lib/MC/MCDisassembler \
++ lib/MC/MCParser \
++ lib/Object \
++ lib/Option \
++ lib/Support \
++ lib/TableGen \
++ lib/Target \
++ lib/Transforms/IPO \
++ lib/Transforms/InstCombine \
++ lib/Transforms/Instrumentation \
++ lib/Transforms/ObjCARC \
++ lib/Transforms/Scalar \
++ lib/Transforms/Utils \
++ lib/Transforms/Vectorize \
++ utils/FileCheck \
++ utils/TableGen
++
++# ARM Code Generation Libraries
++subdirs += \
++ lib/Target/ARM \
++ lib/Target/ARM/AsmParser \
++ lib/Target/ARM/InstPrinter \
++ lib/Target/ARM/Disassembler \
++ lib/Target/ARM/MCTargetDesc \
++ lib/Target/ARM/TargetInfo
++
++# ARM64 Code Generation Libraries
++subdirs += \
++ lib/Target/AArch64 \
++ lib/Target/AArch64/AsmParser \
++ lib/Target/AArch64/InstPrinter \
++ lib/Target/AArch64/Disassembler \
++ lib/Target/AArch64/MCTargetDesc \
++ lib/Target/AArch64/TargetInfo \
++ lib/Target/AArch64/Utils
++
++# MIPS Code Generation Libraries
++subdirs += \
++ lib/Target/Mips \
++ lib/Target/Mips/AsmParser \
++ lib/Target/Mips/InstPrinter \
++ lib/Target/Mips/Disassembler \
++ lib/Target/Mips/MCTargetDesc \
++ lib/Target/Mips/TargetInfo
++
++# X86 Code Generation Libraries
++subdirs += \
++ lib/Target/X86 \
++ lib/Target/X86/AsmParser \
++ lib/Target/X86/InstPrinter \
++ lib/Target/X86/Disassembler \
++ lib/Target/X86/MCTargetDesc \
++ lib/Target/X86/TargetInfo \
++ lib/Target/X86/Utils
++
++# LLVM Command Line Tools
++subdirs += tools/llc
++subdirs += tools/llvm-as
++subdirs += tools/llvm-dis
++subdirs += tools/llvm-link
++#subdirs += tools/opt
++
++include $(LOCAL_PATH)/llvm.mk
++include $(LOCAL_PATH)/shared_llvm.mk
++
++include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, $(subdirs)))
+diff --git a/CleanSpec.mk b/CleanSpec.mk
+new file mode 100644
+index 0000000..f756f04
+--- /dev/null
++++ b/CleanSpec.mk
+@@ -0,0 +1,54 @@
++# Copyright (C) 2007 The Android Open Source Project
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++#
++
++# If you don't need to do a full clean build but would like to touch
++# a file or delete some intermediate files, add a clean step to the end
++# of the list. These steps will only be run once, if they haven't been
++# run before.
++#
++# E.g.:
++# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
++# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
++#
++# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
++# files that are missing or have been moved.
++#
++# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
++# Use $(OUT_DIR) to refer to the "out" directory.
++#
++# If you need to re-do something that's already mentioned, just copy
++# the command and add it to the bottom of the list. E.g., if a change
++# that you made last week required touching a file and a change you
++# made today requires touching the same file, just copy the old
++# touch step and add it to the end of the list.
++#
++# ************************************************
++# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
++# ************************************************
++
++# For example:
++#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
++#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
++#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
++#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
++
++# ************************************************
++# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
++# ************************************************
++$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/stingray/obj/STATIC_LIBRARIES/libLLVM*)
++$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/stingray/obj/STATIC_LIBRARIES/libLLVMARMCodeGen_intermediates*)
++$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_PREBUILT_TAG)/obj/STATIC_LIBRARIES/libLLVMARM*)
++$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libLLVMARM*)
++$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES/app_process__asan_intermediates*)
+diff --git a/clear_tblgen_vars.mk b/clear_tblgen_vars.mk
+new file mode 100644
+index 0000000..6c9623e
+--- /dev/null
++++ b/clear_tblgen_vars.mk
+@@ -0,0 +1,2 @@
++TBLGEN_TABLES :=
++TBLGEN_TD_DIR :=
+diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
+new file mode 100644
+index 0000000..76eee74
+--- /dev/null
++++ b/lib/Analysis/Android.mk
+@@ -0,0 +1,80 @@
++LOCAL_PATH:= $(call my-dir)
++
++analysis_SRC_FILES := \
++ AliasAnalysis.cpp \
++ AliasAnalysisCounter.cpp \
++ AliasAnalysisEvaluator.cpp \
++ AliasDebugger.cpp \
++ AliasSetTracker.cpp \
++ Analysis.cpp \
++ BasicAliasAnalysis.cpp \
++ BlockFrequencyInfo.cpp \
++ BranchProbabilityInfo.cpp \
++ CFG.cpp \
++ CFGPrinter.cpp \
++ CaptureTracking.cpp \
++ CodeMetrics.cpp \
++ ConstantFolding.cpp \
++ CostModel.cpp \
++ Delinearization.cpp \
++ DependenceAnalysis.cpp \
++ DomPrinter.cpp \
++ DominanceFrontier.cpp \
++ IVUsers.cpp \
++ InstCount.cpp \
++ InstructionSimplify.cpp \
++ Interval.cpp \
++ IntervalPartition.cpp \
++ LazyValueInfo.cpp \
++ LibCallAliasAnalysis.cpp \
++ LibCallSemantics.cpp \
++ Lint.cpp \
++ Loads.cpp \
++ LoopInfo.cpp \
++ LoopPass.cpp \
++ MemDepPrinter.cpp \
++ MemoryBuiltins.cpp \
++ MemoryDependenceAnalysis.cpp \
++ ModuleDebugInfoPrinter.cpp \
++ NoAliasAnalysis.cpp \
++ PHITransAddr.cpp \
++ PostDominators.cpp \
++ PtrUseVisitor.cpp \
++ RegionInfo.cpp \
++ RegionPass.cpp \
++ RegionPrinter.cpp \
++ ScalarEvolution.cpp \
++ ScalarEvolutionAliasAnalysis.cpp \
++ ScalarEvolutionExpander.cpp \
++ ScalarEvolutionNormalization.cpp \
++ SparsePropagation.cpp \
++ TargetTransformInfo.cpp \
++ Trace.cpp \
++ TypeBasedAliasAnalysis.cpp \
++ ValueTracking.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVMAnalysis
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(analysis_SRC_FILES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVMAnalysis
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(analysis_SRC_FILES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Analysis/IPA/Android.mk b/lib/Analysis/IPA/Android.mk
+new file mode 100644
+index 0000000..d56d931
+--- /dev/null
++++ b/lib/Analysis/IPA/Android.mk
+@@ -0,0 +1,40 @@
++LOCAL_PATH:= $(call my-dir)
++
++analysis_ipa_SRC_FILES := \
++ CallGraph.cpp \
++ CallGraphSCCPass.cpp \
++ CallPrinter.cpp \
++ FindUsedTypes.cpp \
++ GlobalsModRef.cpp \
++ IPA.cpp \
++ InlineCost.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(analysis_ipa_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMipa
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(analysis_ipa_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMipa
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/AsmParser/Android.mk b/lib/AsmParser/Android.mk
+new file mode 100644
+index 0000000..7bd29a7
+--- /dev/null
++++ b/lib/AsmParser/Android.mk
+@@ -0,0 +1,34 @@
++LOCAL_PATH:= $(call my-dir)
++
++asm_parser_SRC_FILES := \
++ LLLexer.cpp \
++ LLParser.cpp \
++ Parser.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(asm_parser_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMAsmParser
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LOCAL_PATH)/../../llvm-host-build.mk
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(asm_parser_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMAsmParser
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LOCAL_PATH)/../../llvm-device-build.mk
++include $(BUILD_STATIC_LIBRARY)
++endif
+\ No newline at end of file
+diff --git a/lib/Bitcode/Reader/Android.mk b/lib/Bitcode/Reader/Android.mk
+new file mode 100644
+index 0000000..3bdcdda
+--- /dev/null
++++ b/lib/Bitcode/Reader/Android.mk
+@@ -0,0 +1,36 @@
++LOCAL_PATH:= $(call my-dir)
++
++bitcode_reader_SRC_FILES := \
++ BitReader.cpp \
++ BitcodeReader.cpp \
++ BitstreamReader.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(bitcode_reader_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMBitReader
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++LOCAL_SRC_FILES := $(bitcode_reader_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMBitReader
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Bitcode/Writer/Android.mk b/lib/Bitcode/Writer/Android.mk
+new file mode 100644
+index 0000000..6aa208c
+--- /dev/null
++++ b/lib/Bitcode/Writer/Android.mk
+@@ -0,0 +1,37 @@
++LOCAL_PATH:= $(call my-dir)
++
++bitcode_writer_SRC_FILES := \
++ BitWriter.cpp \
++ BitcodeWriter.cpp \
++ BitcodeWriterPass.cpp \
++ ValueEnumerator.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(bitcode_writer_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMBitWriter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++LOCAL_SRC_FILES := $(bitcode_writer_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMBitWriter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
+new file mode 100644
+index 0000000..26f04d0
+--- /dev/null
++++ b/lib/CodeGen/Android.mk
+@@ -0,0 +1,143 @@
++LOCAL_PATH:= $(call my-dir)
++
++codegen_SRC_FILES := \
++ AggressiveAntiDepBreaker.cpp \
++ AllocationOrder.cpp \
++ Analysis.cpp \
++ BasicTargetTransformInfo.cpp \
++ BranchFolding.cpp \
++ CalcSpillWeights.cpp \
++ CallingConvLower.cpp \
++ CodeGen.cpp \
++ CodeGenPrepare.cpp \
++ CriticalAntiDepBreaker.cpp \
++ DeadMachineInstructionElim.cpp \
++ DFAPacketizer.cpp \
++ DwarfEHPrepare.cpp \
++ EarlyIfConversion.cpp \
++ EdgeBundles.cpp \
++ ErlangGC.cpp \
++ ExecutionDepsFix.cpp \
++ ExpandISelPseudos.cpp \
++ ExpandPostRAPseudos.cpp \
++ GCMetadata.cpp \
++ GCMetadataPrinter.cpp \
++ GCStrategy.cpp \
++ IfConversion.cpp \
++ InlineSpiller.cpp \
++ InterferenceCache.cpp \
++ IntrinsicLowering.cpp \
++ JITCodeEmitter.cpp \
++ LatencyPriorityQueue.cpp \
++ LexicalScopes.cpp \
++ LiveDebugVariables.cpp \
++ LiveIntervalAnalysis.cpp \
++ LiveInterval.cpp \
++ LiveIntervalUnion.cpp \
++ LivePhysRegs.cpp \
++ LiveRangeCalc.cpp \
++ LiveRangeEdit.cpp \
++ LiveRegMatrix.cpp \
++ LiveStackAnalysis.cpp \
++ LiveVariables.cpp \
++ LLVMTargetMachine.cpp \
++ LocalStackSlotAllocation.cpp \
++ MachineBasicBlock.cpp \
++ MachineBlockFrequencyInfo.cpp \
++ MachineBlockPlacement.cpp \
++ MachineBranchProbabilityInfo.cpp \
++ MachineCodeEmitter.cpp \
++ MachineCopyPropagation.cpp \
++ MachineCSE.cpp \
++ MachineDominators.cpp \
++ MachineFunctionAnalysis.cpp \
++ MachineFunction.cpp \
++ MachineFunctionPass.cpp \
++ MachineFunctionPrinterPass.cpp \
++ MachineInstrBundle.cpp \
++ MachineInstr.cpp \
++ MachineLICM.cpp \
++ MachineLoopInfo.cpp \
++ MachineModuleInfo.cpp \
++ MachineModuleInfoImpls.cpp \
++ MachinePassRegistry.cpp \
++ MachinePostDominators.cpp \
++ MachineRegisterInfo.cpp \
++ MachineScheduler.cpp \
++ MachineSink.cpp \
++ MachineSSAUpdater.cpp \
++ MachineTraceMetrics.cpp \
++ MachineVerifier.cpp \
++ OcamlGC.cpp \
++ OptimizePHIs.cpp \
++ Passes.cpp \
++ PeepholeOptimizer.cpp \
++ PHIElimination.cpp \
++ PHIEliminationUtils.cpp \
++ PostRASchedulerList.cpp \
++ ProcessImplicitDefs.cpp \
++ PrologEpilogInserter.cpp \
++ PseudoSourceValue.cpp \
++ RegAllocBase.cpp \
++ RegAllocBasic.cpp \
++ RegAllocFast.cpp \
++ RegAllocGreedy.cpp \
++ RegAllocPBQP.cpp \
++ RegisterClassInfo.cpp \
++ RegisterCoalescer.cpp \
++ RegisterPressure.cpp \
++ RegisterScavenging.cpp \
++ ScheduleDAG.cpp \
++ ScheduleDAGInstrs.cpp \
++ ScheduleDAGPrinter.cpp \
++ ScoreboardHazardRecognizer.cpp \
++ ShadowStackGC.cpp \
++ SjLjEHPrepare.cpp \
++ SlotIndexes.cpp \
++ Spiller.cpp \
++ SpillPlacement.cpp \
++ SplitKit.cpp \
++ StackColoring.cpp \
++ StackMapLivenessAnalysis.cpp \
++ StackMaps.cpp \
++ StackProtector.cpp \
++ StackSlotColoring.cpp \
++ TailDuplication.cpp \
++ TargetFrameLoweringImpl.cpp \
++ TargetInstrInfo.cpp \
++ TargetLoweringBase.cpp \
++ TargetLoweringObjectFileImpl.cpp \
++ TargetOptionsImpl.cpp \
++ TargetRegisterInfo.cpp \
++ TargetSchedule.cpp \
++ TwoAddressInstructionPass.cpp \
++ UnreachableBlockElim.cpp \
++ VirtRegMap.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(codegen_SRC_FILES)
++LOCAL_MODULE:= libLLVMCodeGen
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(codegen_SRC_FILES)
++LOCAL_MODULE:= libLLVMCodeGen
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/CodeGen/AsmPrinter/Android.mk b/lib/CodeGen/AsmPrinter/Android.mk
+new file mode 100644
+index 0000000..1e403ee
+--- /dev/null
++++ b/lib/CodeGen/AsmPrinter/Android.mk
+@@ -0,0 +1,62 @@
++LOCAL_PATH := $(call my-dir)
++
++codegen_asmprinter_SRC_FILES := \
++ AsmPrinter.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ AsmPrinter.cpp \
++ AsmPrinterDwarf.cpp \
++ AsmPrinterInlineAsm.cpp \
++ ARMException.cpp \
++ DIE.cpp \
++ DIEHash.cpp \
++ DwarfAccelTable.cpp \
++ DwarfCFIException.cpp \
++ DwarfDebug.cpp \
++ DwarfException.cpp \
++ DwarfUnit.cpp \
++ ErlangGCPrinter.cpp \
++ OcamlGCPrinter.cpp \
++ Win64Exception.cpp \
++ WinCodeViewLineTables.cpp
++
++LOCAL_MODULE:= libLLVMAsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ AsmPrinter.cpp \
++ AsmPrinterDwarf.cpp \
++ AsmPrinterInlineAsm.cpp \
++ ARMException.cpp \
++ DIE.cpp \
++ DIEHash.cpp \
++ DwarfAccelTable.cpp \
++ DwarfCFIException.cpp \
++ DwarfDebug.cpp \
++ DwarfException.cpp \
++ ErlangGCPrinter.cpp \
++ Win64Exception.cpp \
++ $(LOCAL_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMAsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/CodeGen/SelectionDAG/Android.mk b/lib/CodeGen/SelectionDAG/Android.mk
+new file mode 100644
+index 0000000..0e52ee3
+--- /dev/null
++++ b/lib/CodeGen/SelectionDAG/Android.mk
+@@ -0,0 +1,56 @@
++LOCAL_PATH:= $(call my-dir)
++
++codegen_selectiondag_SRC_FILES := \
++ DAGCombiner.cpp \
++ FastISel.cpp \
++ FunctionLoweringInfo.cpp \
++ InstrEmitter.cpp \
++ LegalizeDAG.cpp \
++ LegalizeFloatTypes.cpp \
++ LegalizeIntegerTypes.cpp \
++ LegalizeTypes.cpp \
++ LegalizeTypesGeneric.cpp \
++ LegalizeVectorOps.cpp \
++ LegalizeVectorTypes.cpp \
++ ResourcePriorityQueue.cpp \
++ ScheduleDAGFast.cpp \
++ ScheduleDAGRRList.cpp \
++ ScheduleDAGSDNodes.cpp \
++ ScheduleDAGVLIW.cpp \
++ SelectionDAG.cpp \
++ SelectionDAGBuilder.cpp \
++ SelectionDAGDumper.cpp \
++ SelectionDAGISel.cpp \
++ SelectionDAGPrinter.cpp \
++ TargetLowering.cpp \
++ TargetSelectionDAGInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(codegen_selectiondag_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMSelectionDAG
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(codegen_selectiondag_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMSelectionDAG
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/ExecutionEngine/Android.mk b/lib/ExecutionEngine/Android.mk
+new file mode 100644
+index 0000000..9f1befd
+--- /dev/null
++++ b/lib/ExecutionEngine/Android.mk
+@@ -0,0 +1,18 @@
++LOCAL_PATH:= $(call my-dir)
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ ExecutionEngineBindings.cpp \
++ ExecutionEngine.cpp \
++ RTDyldMemoryManager.cpp \
++ TargetSelect.cpp
++
++LOCAL_MODULE:= libLLVMExecutionEngine
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/ExecutionEngine/JIT/Android.mk b/lib/ExecutionEngine/JIT/Android.mk
+new file mode 100644
+index 0000000..0466ba0
+--- /dev/null
++++ b/lib/ExecutionEngine/JIT/Android.mk
+@@ -0,0 +1,17 @@
++LOCAL_PATH:= $(call my-dir)
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ JIT.cpp \
++ JITEmitter.cpp \
++ JITMemoryManager.cpp
++
++LOCAL_MODULE:= libLLVMJIT
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/ExecutionEngine/MCJIT/Android.mk b/lib/ExecutionEngine/MCJIT/Android.mk
+new file mode 100644
+index 0000000..0314958
+--- /dev/null
++++ b/lib/ExecutionEngine/MCJIT/Android.mk
+@@ -0,0 +1,16 @@
++LOCAL_PATH:= $(call my-dir)
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ MCJIT.cpp \
++ SectionMemoryManager.cpp
++
++LOCAL_MODULE:= libLLVMMCJIT
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/ExecutionEngine/RuntimeDyld/Android.mk b/lib/ExecutionEngine/RuntimeDyld/Android.mk
+new file mode 100644
+index 0000000..e98e80a
+--- /dev/null
++++ b/lib/ExecutionEngine/RuntimeDyld/Android.mk
+@@ -0,0 +1,18 @@
++LOCAL_PATH:= $(call my-dir)
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ GDBRegistrar.cpp \
++ RuntimeDyld.cpp \
++ RuntimeDyldELF.cpp \
++ RuntimeDyldMachO.cpp
++
++LOCAL_MODULE:= libLLVMRuntimeDyld
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/IR/Android.mk b/lib/IR/Android.mk
+new file mode 100644
+index 0000000..071bb04
+--- /dev/null
++++ b/lib/IR/Android.mk
+@@ -0,0 +1,79 @@
++LOCAL_PATH:= $(call my-dir)
++
++vmcore_SRC_FILES := \
++ AsmWriter.cpp \
++ Attributes.cpp \
++ AutoUpgrade.cpp \
++ BasicBlock.cpp \
++ ConstantFold.cpp \
++ ConstantRange.cpp \
++ Constants.cpp \
++ Core.cpp \
++ DataLayout.cpp \
++ DebugInfo.cpp \
++ DebugLoc.cpp \
++ DiagnosticInfo.cpp \
++ DiagnosticPrinter.cpp \
++ DIBuilder.cpp \
++ Dominators.cpp \
++ Function.cpp \
++ GVMaterializer.cpp \
++ Globals.cpp \
++ IRBuilder.cpp \
++ IRPrintingPasses.cpp \
++ InlineAsm.cpp \
++ Instruction.cpp \
++ Instructions.cpp \
++ IntrinsicInst.cpp \
++ LLVMContext.cpp \
++ LLVMContextImpl.cpp \
++ LeakDetector.cpp \
++ LegacyPassManager.cpp \
++ Mangler.cpp \
++ Metadata.cpp \
++ Module.cpp \
++ Pass.cpp \
++ PassManager.cpp \
++ PassRegistry.cpp \
++ Type.cpp \
++ TypeFinder.cpp \
++ Use.cpp \
++ User.cpp \
++ Value.cpp \
++ ValueSymbolTable.cpp \
++ ValueTypes.cpp \
++ Verifier.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(vmcore_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMCore
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(vmcore_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMCore
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/IRReader/Android.mk b/lib/IRReader/Android.mk
+new file mode 100644
+index 0000000..d620521
+--- /dev/null
++++ b/lib/IRReader/Android.mk
+@@ -0,0 +1,38 @@
++LOCAL_PATH:= $(call my-dir)
++
++irreader_SRC_FILES := \
++ IRReader.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(irreader_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMIRReader
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(irreader_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMIRReader
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+\ No newline at end of file
+diff --git a/lib/Linker/Android.mk b/lib/Linker/Android.mk
+new file mode 100644
+index 0000000..161b2ae
+--- /dev/null
++++ b/lib/Linker/Android.mk
+@@ -0,0 +1,32 @@
++LOCAL_PATH:= $(call my-dir)
++
++linker_SRC_FILES := \
++ LinkModules.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_SRC_FILES := $(linker_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMLinker
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(linker_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMLinker
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/MC/Android.mk b/lib/MC/Android.mk
+new file mode 100644
+index 0000000..abf346b
+--- /dev/null
++++ b/lib/MC/Android.mk
+@@ -0,0 +1,78 @@
++LOCAL_PATH:= $(call my-dir)
++
++mc_SRC_FILES := \
++ ELFObjectWriter.cpp \
++ MachObjectWriter.cpp \
++ MCAsmBackend.cpp \
++ MCAsmInfo.cpp \
++ MCAsmInfoCOFF.cpp \
++ MCAsmInfoDarwin.cpp \
++ MCAsmInfoELF.cpp \
++ MCAsmStreamer.cpp \
++ MCAssembler.cpp \
++ MCCodeEmitter.cpp \
++ MCCodeGenInfo.cpp \
++ MCContext.cpp \
++ MCDisassembler.cpp \
++ MCDwarf.cpp \
++ MCELF.cpp \
++ MCELFObjectTargetWriter.cpp \
++ MCELFStreamer.cpp \
++ MCExpr.cpp \
++ MCExternalSymbolizer.cpp \
++ MCFixup.cpp \
++ MCInst.cpp \
++ MCInstPrinter.cpp \
++ MCInstrAnalysis.cpp \
++ MCLabel.cpp \
++ MCLinkerOptimizationHint.cpp \
++ MCMachObjectTargetWriter.cpp \
++ MCMachOStreamer.cpp \
++ MCNullStreamer.cpp \
++ MCObjectFileInfo.cpp \
++ MCObjectStreamer.cpp \
++ MCObjectWriter.cpp \
++ MCRegisterInfo.cpp \
++ MCRelocationInfo.cpp \
++ MCSection.cpp \
++ MCSectionCOFF.cpp \
++ MCSectionELF.cpp \
++ MCSectionMachO.cpp \
++ MCStreamer.cpp \
++ MCSubtargetInfo.cpp \
++ MCSymbol.cpp \
++ MCSymbolizer.cpp \
++ MCValue.cpp \
++ MCWin64EH.cpp \
++ WinCOFFObjectWriter.cpp \
++ WinCOFFStreamer.cpp \
++ SubtargetFeature.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(mc_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMMC
++
++LOCAL_MODULE_TAGS := optional
++
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++LOCAL_SRC_FILES := $(mc_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMMC
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/MC/MCDisassembler/Android.mk b/lib/MC/MCDisassembler/Android.mk
+new file mode 100644
+index 0000000..7f73df3
+--- /dev/null
++++ b/lib/MC/MCDisassembler/Android.mk
+@@ -0,0 +1,15 @@
++LOCAL_PATH:= $(call my-dir)
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ Disassembler.cpp
++
++LOCAL_MODULE:= libLLVMMCDisassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/MC/MCParser/Android.mk b/lib/MC/MCParser/Android.mk
+new file mode 100644
+index 0000000..505a12b
+--- /dev/null
++++ b/lib/MC/MCParser/Android.mk
+@@ -0,0 +1,40 @@
++LOCAL_PATH:= $(call my-dir)
++
++mc_parser_SRC_FILES := \
++ AsmLexer.cpp \
++ AsmParser.cpp \
++ COFFAsmParser.cpp \
++ DarwinAsmParser.cpp \
++ ELFAsmParser.cpp \
++ MCAsmLexer.cpp \
++ MCAsmParser.cpp \
++ MCAsmParserExtension.cpp \
++ MCTargetAsmParser.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(mc_parser_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMMCParser
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++LOCAL_SRC_FILES := $(mc_parser_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMMCParser
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Object/Android.mk b/lib/Object/Android.mk
+new file mode 100644
+index 0000000..7dfa44f
+--- /dev/null
++++ b/lib/Object/Android.mk
+@@ -0,0 +1,45 @@
++LOCAL_PATH := $(call my-dir)
++
++object_SRC_FILES := \
++ Archive.cpp \
++ Binary.cpp \
++ COFFObjectFile.cpp \
++ ELF.cpp \
++ ELFObjectFile.cpp \
++ Error.cpp \
++ IRObjectFile.cpp \
++ MachOObjectFile.cpp \
++ MachOUniversal.cpp \
++ Object.cpp \
++ ObjectFile.cpp \
++ SymbolicFile.cpp
++
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMObject
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(object_SRC_FILES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVMObject
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(object_SRC_FILES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Option/Android.mk b/lib/Option/Android.mk
+new file mode 100644
+index 0000000..8680ce4
+--- /dev/null
++++ b/lib/Option/Android.mk
+@@ -0,0 +1,42 @@
++LOCAL_PATH:= $(call my-dir)
++
++option_SRC_FILES := \
++ Arg.cpp \
++ ArgList.cpp \
++ Option.cpp \
++ OptTable.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++# FIXME: This only requires RTTI because tblgen uses it. Fix that.
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(option_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMOption
++
++LOCAL_CFLAGS := -D__android__
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++include $(CLEAR_VARS)
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++
++LOCAL_SRC_FILES := $(option_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMOption
++
++LOCAL_CFLAGS := -D__android__
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Support/Android.mk b/lib/Support/Android.mk
+new file mode 100644
+index 0000000..165305e
+--- /dev/null
++++ b/lib/Support/Android.mk
+@@ -0,0 +1,120 @@
++LOCAL_PATH:= $(call my-dir)
++
++support_SRC_FILES := \
++ Allocator.cpp \
++ APFloat.cpp \
++ APInt.cpp \
++ APSInt.cpp \
++ ARMBuildAttrs.cpp \
++ Atomic.cpp \
++ BlockFrequency.cpp \
++ BranchProbability.cpp \
++ CommandLine.cpp \
++ Compression.cpp \
++ ConvertUTF.c \
++ ConvertUTFWrapper.cpp \
++ CrashRecoveryContext.cpp \
++ DAGDeltaAlgorithm.cpp \
++ DataStream.cpp \
++ DataExtractor.cpp \
++ Debug.cpp \
++ DeltaAlgorithm.cpp \
++ Dwarf.cpp \
++ DynamicLibrary.cpp \
++ Errno.cpp \
++ ErrorHandling.cpp \
++ FileUtilities.cpp \
++ FoldingSet.cpp \
++ FormattedStream.cpp \
++ GraphWriter.cpp \
++ Hashing.cpp \
++ Host.cpp \
++ IntervalMap.cpp \
++ IntEqClasses.cpp \
++ IntrusiveRefCntPtr.cpp \
++ IsInf.cpp \
++ IsNAN.cpp \
++ LEB128.cpp \
++ LineIterator.cpp \
++ Locale.cpp \
++ LockFileManager.cpp \
++ MD5.cpp \
++ ManagedStatic.cpp \
++ Memory.cpp \
++ MemoryBuffer.cpp \
++ MemoryObject.cpp \
++ Mutex.cpp \
++ Path.cpp \
++ PluginLoader.cpp \
++ PrettyStackTrace.cpp \
++ Process.cpp \
++ Program.cpp \
++ Regex.cpp \
++ RWMutex.cpp \
++ SearchForAddressOfSpecialSymbol.cpp \
++ Signals.cpp \
++ SmallPtrSet.cpp \
++ SmallVector.cpp \
++ SourceMgr.cpp \
++ Statistic.cpp \
++ StreamableMemoryObject.cpp \
++ StringExtras.cpp \
++ StringMap.cpp \
++ StringPool.cpp \
++ StringRef.cpp \
++ SystemUtils.cpp \
++ TargetRegistry.cpp \
++ Threading.cpp \
++ ThreadLocal.cpp \
++ Timer.cpp \
++ TimeValue.cpp \
++ ToolOutputFile.cpp \
++ Triple.cpp \
++ Twine.cpp \
++ Unicode.cpp \
++ Valgrind.cpp \
++ Watchdog.cpp \
++ circular_raw_ostream.cpp \
++ raw_os_ostream.cpp \
++ raw_ostream.cpp \
++ regcomp.c \
++ regerror.c \
++ regexec.c \
++ regfree.c \
++ regstrlcpy.c \
++ system_error.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++# FIXME: This only requires RTTI because tblgen uses it. Fix that.
++REQUIRES_RTTI := 1
++
++LOCAL_SRC_FILES := $(support_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMSupport
++
++LOCAL_CFLAGS := -D__android__
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(support_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMSupport
++
++LOCAL_CFLAGS := -D__android__
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/TableGen/Android.mk b/lib/TableGen/Android.mk
+new file mode 100644
+index 0000000..1f01ef7
+--- /dev/null
++++ b/lib/TableGen/Android.mk
+@@ -0,0 +1,39 @@
++LOCAL_PATH:= $(call my-dir)
++
++libtablegen_SRC_FILES := \
++ Error.cpp \
++ Main.cpp \
++ Record.cpp \
++ StringMatcher.cpp \
++ TableGenBackend.cpp \
++ TGLexer.cpp \
++ TGParser.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(libtablegen_SRC_FILES)
++LOCAL_MODULE:= libLLVMTableGen
++
++LOCAL_MODULE_TAGS := optional
++
++REQUIRES_EH := 1
++REQUIRES_RTTI := 1
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++## For the device
++## =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++#include $(CLEAR_VARS)
++#
++#LOCAL_SRC_FILES := $(libtablegen_SRC_FILES)
++#LOCAL_MODULE:= libLLVMTableGen
++#
++#LOCAL_MODULE_TAGS := optional
++#
++#include $(LLVM_DEVICE_BUILD_MK)
++#include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/AArch64/Android.mk b/lib/Target/AArch64/Android.mk
+new file mode 100644
+index 0000000..144c2d3
+--- /dev/null
++++ b/lib/Target/AArch64/Android.mk
+@@ -0,0 +1,67 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_codegen_TBLGEN_TABLES := \
++ AArch64GenRegisterInfo.inc \
++ AArch64GenInstrInfo.inc \
++ AArch64GenCodeEmitter.inc \
++ AArch64GenMCCodeEmitter.inc \
++ AArch64GenMCPseudoLowering.inc \
++ AArch64GenAsmWriter.inc \
++ AArch64GenAsmMatcher.inc \
++ AArch64GenDAGISel.inc \
++ AArch64GenFastISel.inc \
++ AArch64GenCallingConv.inc \
++ AArch64GenSubtargetInfo.inc \
++ AArch64GenDisassemblerTables.inc
++
++arm64_codegen_SRC_FILES := \
++ AArch64AsmPrinter.cpp \
++ AArch64FrameLowering.cpp \
++ AArch64ISelDAGToDAG.cpp \
++ AArch64MachineFunctionInfo.cpp \
++ AArch64RegisterInfo.cpp \
++ AArch64Subtarget.cpp \
++ AArch64TargetObjectFile.cpp \
++ AArch64BranchFixupPass.cpp \
++ AArch64InstrInfo.cpp \
++ AArch64ISelLowering.cpp \
++ AArch64MCInstLower.cpp \
++ AArch64SelectionDAGInfo.cpp \
++ AArch64TargetMachine.cpp \
++ AArch64TargetTransformInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARM64CodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm64_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++TBLGEN_TABLES := $(arm64_codegen_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARM64CodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm64_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++TBLGEN_TABLES := $(arm64_codegen_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/AArch64/AsmParser/Android.mk b/lib/Target/AArch64/AsmParser/Android.mk
+new file mode 100644
+index 0000000..0588511
+--- /dev/null
++++ b/lib/Target/AArch64/AsmParser/Android.mk
+@@ -0,0 +1,63 @@
++LOCAL_PATH := $(call my-dir)
++
++#===---------------------------------------------------------------===
++# libARMAsmParser (common)
++#===---------------------------------------------------------------===
++
++arm64_asm_parser_SRC_FILES := \
++ AArch64AsmParser.cpp
++
++arm64_asm_parser_TBLGEN_TABLES := \
++ AArch64GenInstrInfo.inc \
++ AArch64GenRegisterInfo.inc \
++ AArch64GenAsmMatcher.inc \
++ AArch64GenSubtargetInfo.inc
++
++arm64_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++arm64_asm_parser_C_INCLUDES := $(LOCAL_PATH)/..
++
++
++#===---------------------------------------------------------------===
++# libARM64AsmParser (host)
++#===---------------------------------------------------------------===
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARM64AsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(arm64_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(arm64_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(arm64_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(arm64_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++ifneq (,$(filter windows darwin,$(HOST_OS)))
++# Override the default optimization level to work around taking forever (~50m)
++# to compile ARM64AsmParser.cpp on Mac with gcc 4.2,
++# or on Linux with mingw32msvc-gcc 4.2, which is used to cross-compile
++# the win_sdk.
++LOCAL_CFLAGS += -O0
++endif
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++
++#===---------------------------------------------------------------===
++# libARM64AsmParser (target)
++#===---------------------------------------------------------------===
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARM64AsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(arm64_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(arm64_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(arm64_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(arm64_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/AArch64/Disassembler/Android.mk b/lib/Target/AArch64/Disassembler/Android.mk
+new file mode 100644
+index 0000000..fcc53ad
+--- /dev/null
++++ b/lib/Target/AArch64/Disassembler/Android.mk
+@@ -0,0 +1,55 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_disassembler_TBLGEN_TABLES := \
++ AArch64GenDisassemblerTables.inc \
++ AArch64GenInstrInfo.inc \
++ AArch64GenSubtargetInfo.inc \
++ AArch64GenRegisterInfo.inc
++
++arm64_disassembler_SRC_FILES := \
++ AArch64Disassembler.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Disassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Disassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
+diff --git a/lib/Target/AArch64/InstPrinter/Android.mk b/lib/Target/AArch64/InstPrinter/Android.mk
+new file mode 100644
+index 0000000..ac9b0df
+--- /dev/null
++++ b/lib/Target/AArch64/InstPrinter/Android.mk
+@@ -0,0 +1,57 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_asm_printer_TBLGEN_TABLES := \
++ AArch64GenAsmWriter.inc \
++ AArch64GenRegisterInfo.inc \
++ AArch64GenSubtargetInfo.inc \
++ AArch64GenInstrInfo.inc
++
++arm64_asm_printer_SRC_FILES := \
++ AArch64InstPrinter.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_asm_printer_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_asm_printer_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMARM64AsmPrinter
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_asm_printer_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_asm_printer_SRC_FILES)
++
++LOCAL_C_INCLUDES+= \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64AsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
+diff --git a/lib/Target/AArch64/MCTargetDesc/Android.mk b/lib/Target/AArch64/MCTargetDesc/Android.mk
+new file mode 100644
+index 0000000..edcf1f2
+--- /dev/null
++++ b/lib/Target/AArch64/MCTargetDesc/Android.mk
+@@ -0,0 +1,57 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_mc_desc_TBLGEN_TABLES := \
++ AArch64GenRegisterInfo.inc \
++ AArch64GenInstrInfo.inc \
++ AArch64GenMCCodeEmitter.inc \
++ AArch64GenSubtargetInfo.inc
++
++arm64_mc_desc_SRC_FILES := \
++ AArch64AsmBackend.cpp \
++ AArch64ELFObjectWriter.cpp \
++ AArch64ELFStreamer.cpp \
++ AArch64MCAsmInfo.cpp \
++ AArch64MCCodeEmitter.cpp \
++ AArch64MCExpr.cpp \
++ AArch64MCTargetDesc.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++
++LOCAL_MODULE:= libLLVMARM64Desc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm64_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(arm64_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARM64Desc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm64_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(arm64_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/AArch64/TargetInfo/Android.mk b/lib/Target/AArch64/TargetInfo/Android.mk
+new file mode 100644
+index 0000000..cc650f6
+--- /dev/null
++++ b/lib/Target/AArch64/TargetInfo/Android.mk
+@@ -0,0 +1,55 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_target_info_TBLGEN_TABLES := \
++ AArch64GenSubtargetInfo.inc \
++ AArch64GenRegisterInfo.inc \
++ AArch64GenInstrInfo.inc
++
++arm64_target_info_SRC_FILES := \
++ AArch64TargetInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Info
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm64_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm64_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Info
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/AArch64/Utils/Android.mk b/lib/Target/AArch64/Utils/Android.mk
+new file mode 100644
+index 0000000..b8bf795
+--- /dev/null
++++ b/lib/Target/AArch64/Utils/Android.mk
+@@ -0,0 +1,36 @@
++LOCAL_PATH := $(call my-dir)
++
++arm64_utils_SRC_FILES := \
++ AArch64BaseInfo.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(arm64_utils_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Utils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(arm64_utils_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARM64Utils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/Target/ARM/Android.mk b/lib/Target/ARM/Android.mk
+new file mode 100644
+index 0000000..4be95aa
+--- /dev/null
++++ b/lib/Target/ARM/Android.mk
+@@ -0,0 +1,87 @@
++LOCAL_PATH := $(call my-dir)
++
++arm_codegen_TBLGEN_TABLES := \
++ ARMGenRegisterInfo.inc \
++ ARMGenInstrInfo.inc \
++ ARMGenCodeEmitter.inc \
++ ARMGenMCCodeEmitter.inc \
++ ARMGenMCPseudoLowering.inc \
++ ARMGenAsmWriter.inc \
++ ARMGenAsmMatcher.inc \
++ ARMGenDAGISel.inc \
++ ARMGenFastISel.inc \
++ ARMGenCallingConv.inc \
++ ARMGenSubtargetInfo.inc \
++ ARMGenDisassemblerTables.inc
++
++arm_codegen_SRC_FILES := \
++ A15SDOptimizer.cpp \
++ ARMAsmPrinter.cpp \
++ ARMAtomicExpandPass.cpp \
++ ARMBaseInstrInfo.cpp \
++ ARMBaseRegisterInfo.cpp \
++ ARMCodeEmitter.cpp \
++ ARMConstantIslandPass.cpp \
++ ARMConstantPoolValue.cpp \
++ ARMExpandPseudoInsts.cpp \
++ ARMFastISel.cpp \
++ ARMFrameLowering.cpp \
++ ARMHazardRecognizer.cpp \
++ ARMISelDAGToDAG.cpp \
++ ARMISelLowering.cpp \
++ ARMInstrInfo.cpp \
++ ARMJITInfo.cpp \
++ ARMLoadStoreOptimizer.cpp \
++ ARMMCInstLower.cpp \
++ ARMMachineFunctionInfo.cpp \
++ ARMOptimizeBarriersPass.cpp \
++ ARMRegisterInfo.cpp \
++ ARMSelectionDAGInfo.cpp \
++ ARMSubtarget.cpp \
++ ARMTargetMachine.cpp \
++ ARMTargetObjectFile.cpp \
++ ARMTargetTransformInfo.cpp \
++ MLxExpansionPass.cpp \
++ Thumb1FrameLowering.cpp \
++ Thumb1InstrInfo.cpp \
++ Thumb1RegisterInfo.cpp \
++ Thumb2ITBlockPass.cpp \
++ Thumb2InstrInfo.cpp \
++ Thumb2RegisterInfo.cpp \
++ Thumb2SizeReduction.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARMCodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARMCodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/ARM/AsmParser/Android.mk b/lib/Target/ARM/AsmParser/Android.mk
+new file mode 100644
+index 0000000..5f88cc3
+--- /dev/null
++++ b/lib/Target/ARM/AsmParser/Android.mk
+@@ -0,0 +1,63 @@
++LOCAL_PATH := $(call my-dir)
++
++#===---------------------------------------------------------------===
++# libARMAsmParser (common)
++#===---------------------------------------------------------------===
++
++arm_asm_parser_SRC_FILES := \
++ ARMAsmParser.cpp
++
++arm_asm_parser_TBLGEN_TABLES := \
++ ARMGenInstrInfo.inc \
++ ARMGenRegisterInfo.inc \
++ ARMGenAsmMatcher.inc \
++ ARMGenSubtargetInfo.inc
++
++arm_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++arm_asm_parser_C_INCLUDES := $(LOCAL_PATH)/..
++
++
++#===---------------------------------------------------------------===
++# libARMAsmParser (host)
++#===---------------------------------------------------------------===
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARMAsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(arm_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(arm_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++ifneq (,$(filter windows darwin,$(HOST_OS)))
++# Override the default optimization level to work around taking forever (~50m)
++# to compile ARMAsmParser.cpp on Mac with gcc 4.2,
++# or on Linux with mingw32msvc-gcc 4.2, which is used to cross-compile
++# the win_sdk.
++LOCAL_CFLAGS += -O0
++endif
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++
++#===---------------------------------------------------------------===
++# libARMAsmParser (target)
++#===---------------------------------------------------------------===
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARMAsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(arm_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(arm_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/ARM/Disassembler/Android.mk b/lib/Target/ARM/Disassembler/Android.mk
+new file mode 100644
+index 0000000..3db61a5
+--- /dev/null
++++ b/lib/Target/ARM/Disassembler/Android.mk
+@@ -0,0 +1,55 @@
++LOCAL_PATH := $(call my-dir)
++
++arm_disassembler_TBLGEN_TABLES := \
++ ARMGenDisassemblerTables.inc \
++ ARMGenInstrInfo.inc \
++ ARMGenSubtargetInfo.inc \
++ ARMGenRegisterInfo.inc
++
++arm_disassembler_SRC_FILES := \
++ ARMDisassembler.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARMDisassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARMDisassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
+diff --git a/lib/Target/ARM/InstPrinter/Android.mk b/lib/Target/ARM/InstPrinter/Android.mk
+new file mode 100644
+index 0000000..cefed76
+--- /dev/null
++++ b/lib/Target/ARM/InstPrinter/Android.mk
+@@ -0,0 +1,57 @@
++LOCAL_PATH := $(call my-dir)
++
++arm_asm_printer_TBLGEN_TABLES := \
++ ARMGenAsmWriter.inc \
++ ARMGenRegisterInfo.inc \
++ ARMGenSubtargetInfo.inc \
++ ARMGenInstrInfo.inc
++
++arm_asm_printer_SRC_FILES := \
++ ARMInstPrinter.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_asm_printer_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_asm_printer_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMARMAsmPrinter
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_asm_printer_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_asm_printer_SRC_FILES)
++
++LOCAL_C_INCLUDES+= \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARMAsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
+diff --git a/lib/Target/ARM/MCTargetDesc/Android.mk b/lib/Target/ARM/MCTargetDesc/Android.mk
+new file mode 100644
+index 0000000..074d29e
+--- /dev/null
++++ b/lib/Target/ARM/MCTargetDesc/Android.mk
+@@ -0,0 +1,61 @@
++LOCAL_PATH := $(call my-dir)
++
++arm_mc_desc_TBLGEN_TABLES := \
++ ARMGenRegisterInfo.inc \
++ ARMGenInstrInfo.inc \
++ ARMGenMCCodeEmitter.inc \
++ ARMGenSubtargetInfo.inc
++
++arm_mc_desc_SRC_FILES := \
++ ARMAsmBackend.cpp \
++ ARMELFObjectWriter.cpp \
++ ARMELFStreamer.cpp \
++ ARMMCAsmInfo.cpp \
++ ARMMCCodeEmitter.cpp \
++ ARMMCExpr.cpp \
++ ARMMCTargetDesc.cpp \
++ ARMMachObjectWriter.cpp \
++ ARMMachORelocationInfo.cpp \
++ ARMTargetStreamer.cpp \
++ ARMUnwindOpAsm.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++
++LOCAL_MODULE:= libLLVMARMDesc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMARMDesc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/ARM/TargetInfo/Android.mk b/lib/Target/ARM/TargetInfo/Android.mk
+new file mode 100644
+index 0000000..e31c2b8
+--- /dev/null
++++ b/lib/Target/ARM/TargetInfo/Android.mk
+@@ -0,0 +1,55 @@
++LOCAL_PATH := $(call my-dir)
++
++arm_target_info_TBLGEN_TABLES := \
++ ARMGenSubtargetInfo.inc \
++ ARMGenRegisterInfo.inc \
++ ARMGenInstrInfo.inc
++
++arm_target_info_SRC_FILES := \
++ ARMTargetInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARMInfo
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(arm_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(arm_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMARMInfo
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Android.mk b/lib/Target/Android.mk
+new file mode 100644
+index 0000000..1b43ce4
+--- /dev/null
++++ b/lib/Target/Android.mk
+@@ -0,0 +1,39 @@
++LOCAL_PATH:= $(call my-dir)
++
++target_SRC_FILES := \
++ Target.cpp \
++ TargetIntrinsicInfo.cpp \
++ TargetJITInfo.cpp \
++ TargetLibraryInfo.cpp \
++ TargetLoweringObjectFile.cpp \
++ TargetMachineC.cpp \
++ TargetMachine.cpp \
++ TargetSubtargetInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(target_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMTarget
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(target_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMTarget
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Mips/Android.mk b/lib/Target/Mips/Android.mk
+new file mode 100644
+index 0000000..74b8a3b
+--- /dev/null
++++ b/lib/Target/Mips/Android.mk
+@@ -0,0 +1,85 @@
++LOCAL_PATH := $(call my-dir)
++
++mips_codegen_TBLGEN_TABLES := \
++ MipsGenRegisterInfo.inc \
++ MipsGenInstrInfo.inc \
++ MipsGenCodeEmitter.inc \
++ MipsGenMCCodeEmitter.inc \
++ MipsGenMCPseudoLowering.inc \
++ MipsGenAsmWriter.inc \
++ MipsGenDAGISel.inc \
++ MipsGenCallingConv.inc \
++ MipsGenSubtargetInfo.inc
++
++mips_codegen_SRC_FILES := \
++ Mips16FrameLowering.cpp \
++ Mips16HardFloat.cpp \
++ Mips16HardFloatInfo.cpp \
++ Mips16ISelDAGToDAG.cpp \
++ Mips16ISelLowering.cpp \
++ Mips16InstrInfo.cpp \
++ Mips16RegisterInfo.cpp \
++ MipsAnalyzeImmediate.cpp \
++ MipsAsmPrinter.cpp \
++ MipsCodeEmitter.cpp \
++ MipsConstantIslandPass.cpp \
++ MipsDelaySlotFiller.cpp \
++ MipsFrameLowering.cpp \
++ MipsInstrInfo.cpp \
++ MipsISelDAGToDAG.cpp \
++ MipsISelLowering.cpp \
++ MipsJITInfo.cpp \
++ MipsLongBranch.cpp \
++ MipsMachineFunction.cpp \
++ MipsMCInstLower.cpp \
++ MipsModuleISelDAGToDAG.cpp \
++ MipsOs16.cpp \
++ MipsOptimizePICCall.cpp \
++ MipsRegisterInfo.cpp \
++ MipsSEFrameLowering.cpp \
++ MipsSEISelDAGToDAG.cpp \
++ MipsSEISelLowering.cpp \
++ MipsSEInstrInfo.cpp \
++ MipsSERegisterInfo.cpp \
++ MipsSelectionDAGInfo.cpp \
++ MipsSubtarget.cpp \
++ MipsTargetMachine.cpp \
++ MipsTargetObjectFile.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsCodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++
++TBLGEN_TABLES := $(mips_codegen_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsCodeGen
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_codegen_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
++
++TBLGEN_TABLES := $(mips_codegen_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Mips/AsmParser/Android.mk b/lib/Target/Mips/AsmParser/Android.mk
+new file mode 100644
+index 0000000..7d8eec1
+--- /dev/null
++++ b/lib/Target/Mips/AsmParser/Android.mk
+@@ -0,0 +1,56 @@
++LOCAL_PATH := $(call my-dir)
++
++#===---------------------------------------------------------------===
++# libLLVMMipsAsmParser (common)
++#===---------------------------------------------------------------===
++
++mips_asm_parser_SRC_FILES := \
++ MipsAsmParser.cpp
++
++mips_asm_parser_C_INCLUDES := $(LOCAL_PATH)/..
++
++mips_asm_parser_TBLGEN_TABLES := \
++ MipsGenAsmMatcher.inc \
++ MipsGenInstrInfo.inc \
++ MipsGenRegisterInfo.inc \
++ MipsGenSubtargetInfo.inc
++
++mips_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++
++#===---------------------------------------------------------------===
++# libLLVMMipsAsmParser (host)
++#===---------------------------------------------------------------===
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsAsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(mips_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(mips_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(mips_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++
++#===---------------------------------------------------------------===
++# libLLVMMipsAsmParser (target)
++#===---------------------------------------------------------------===
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsAsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(mips_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(mips_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(mips_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Mips/Disassembler/Android.mk b/lib/Target/Mips/Disassembler/Android.mk
+new file mode 100644
+index 0000000..20fd87a
+--- /dev/null
++++ b/lib/Target/Mips/Disassembler/Android.mk
+@@ -0,0 +1,48 @@
++LOCAL_PATH := $(call my-dir)
++
++mips_disassembler_TBLGEN_TABLES := \
++ MipsGenDisassemblerTables.inc \
++ MipsGenInstrInfo.inc \
++ MipsGenRegisterInfo.inc \
++ MipsGenSubtargetInfo.inc
++
++mips_disassembler_SRC_FILES := \
++ MipsDisassembler.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsDisassembler
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_disassembler_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++TBLGEN_TABLES := $(mips_disassembler_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsDisassembler
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_disassembler_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++TBLGEN_TABLES := $(mips_disassembler_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/Target/Mips/InstPrinter/Android.mk b/lib/Target/Mips/InstPrinter/Android.mk
+new file mode 100644
+index 0000000..f4f3a4f
+--- /dev/null
++++ b/lib/Target/Mips/InstPrinter/Android.mk
+@@ -0,0 +1,48 @@
++LOCAL_PATH := $(call my-dir)
++
++mips_asm_printer_TBLGEN_TABLES := \
++ MipsGenAsmWriter.inc \
++ MipsGenRegisterInfo.inc \
++ MipsGenSubtargetInfo.inc \
++ MipsGenInstrInfo.inc
++
++mips_asm_printer_SRC_FILES := \
++ MipsInstPrinter.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsAsmPrinter
++LOCAL_MODULE_TAGS := optional
++
++TBLGEN_TABLES := $(mips_asm_printer_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(mips_asm_printer_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsAsmPrinter
++LOCAL_MODULE_TAGS := optional
++
++TBLGEN_TABLES := $(mips_asm_printer_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(mips_asm_printer_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Mips/MCTargetDesc/Android.mk b/lib/Target/Mips/MCTargetDesc/Android.mk
+new file mode 100644
+index 0000000..7ee11a1
+--- /dev/null
++++ b/lib/Target/Mips/MCTargetDesc/Android.mk
+@@ -0,0 +1,58 @@
++LOCAL_PATH := $(call my-dir)
++
++mips_mc_desc_TBLGEN_TABLES := \
++ MipsGenRegisterInfo.inc \
++ MipsGenInstrInfo.inc \
++ MipsGenMCCodeEmitter.inc \
++ MipsGenSubtargetInfo.inc
++
++mips_mc_desc_SRC_FILES := \
++ MipsAsmBackend.cpp \
++ MipsELFObjectWriter.cpp \
++ MipsELFStreamer.cpp \
++ MipsMCAsmInfo.cpp \
++ MipsMCCodeEmitter.cpp \
++ MipsMCExpr.cpp \
++ MipsMCTargetDesc.cpp \
++ MipsNaClELFStreamer.cpp \
++ MipsTargetStreamer.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsDesc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(mips_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsDesc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(mips_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(mips_mc_desc_TBLGEN_TABLES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/Mips/TargetInfo/Android.mk b/lib/Target/Mips/TargetInfo/Android.mk
+new file mode 100644
+index 0000000..173d05b
+--- /dev/null
++++ b/lib/Target/Mips/TargetInfo/Android.mk
+@@ -0,0 +1,47 @@
++LOCAL_PATH := $(call my-dir)
++
++mips_target_info_TBLGEN_TABLES := \
++ MipsGenInstrInfo.inc \
++ MipsGenRegisterInfo.inc \
++ MipsGenSubtargetInfo.inc
++
++mips_target_info_SRC_FILES := \
++ MipsTargetInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsInfo
++LOCAL_MODULE_TAGS := optional
++
++TBLGEN_TABLES := $(mips_target_info_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(mips_target_info_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMMipsInfo
++LOCAL_MODULE_TAGS := optional
++
++TBLGEN_TABLES := $(mips_target_info_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(mips_target_info_SRC_FILES)
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+\ No newline at end of file
+diff --git a/lib/Target/X86/Android.mk b/lib/Target/X86/Android.mk
+new file mode 100644
+index 0000000..73031de
+--- /dev/null
++++ b/lib/Target/X86/Android.mk
+@@ -0,0 +1,72 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_codegen_TBLGEN_TABLES := \
++ X86GenAsmWriter.inc \
++ X86GenAsmWriter1.inc \
++ X86GenRegisterInfo.inc \
++ X86GenInstrInfo.inc \
++ X86GenDAGISel.inc \
++ X86GenFastISel.inc \
++ X86GenSubtargetInfo.inc \
++ X86GenCallingConv.inc
++
++x86_codegen_SRC_FILES := \
++ X86AsmPrinter.cpp \
++ X86COFFMachineModuleInfo.cpp \
++ X86CodeEmitter.cpp \
++ X86FastISel.cpp \
++ X86FixupLEAs.cpp \
++ X86FloatingPoint.cpp \
++ X86FrameLowering.cpp \
++ X86ISelDAGToDAG.cpp \
++ X86ISelLowering.cpp \
++ X86InstrInfo.cpp \
++ X86JITInfo.cpp \
++ X86MachineFunctionInfo.cpp \
++ X86MCInstLower.cpp \
++ X86PadShortFunction.cpp \
++ X86RegisterInfo.cpp \
++ X86SelectionDAGInfo.cpp \
++ X86Subtarget.cpp \
++ X86TargetMachine.cpp \
++ X86TargetObjectFile.cpp \
++ X86TargetTransformInfo.cpp \
++ X86VZeroUpper.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_codegen_TBLGEN_TABLES)
++
++LOCAL_SRC_FILES := $(x86_codegen_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMX86CodeGen
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_codegen_TBLGEN_TABLES)
++
++LOCAL_SRC_FILES := $(x86_codegen_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMX86CodeGen
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/X86/AsmParser/Android.mk b/lib/Target/X86/AsmParser/Android.mk
+new file mode 100644
+index 0000000..4235cb1
+--- /dev/null
++++ b/lib/Target/X86/AsmParser/Android.mk
+@@ -0,0 +1,59 @@
++LOCAL_PATH := $(call my-dir)
++
++# For the device only
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++x86_asm_parser_SRC_FILES := \
++ X86AsmInstrumentation.cpp \
++ X86AsmParser.cpp
++
++x86_asm_parser_TBLGEN_TABLES := \
++ X86GenAsmMatcher.inc \
++ X86GenInstrInfo.inc \
++ X86GenRegisterInfo.inc \
++ X86GenSubtargetInfo.inc
++
++x86_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++x86_asm_parser_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++
++#===---------------------------------------------------------------===
++# libX86AsmParser (host)
++#===---------------------------------------------------------------===
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMX86AsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(x86_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(x86_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(x86_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(x86_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++
++#===---------------------------------------------------------------===
++# libX86AsmParser (target)
++#===---------------------------------------------------------------===
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMX86AsmParser
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(x86_asm_parser_SRC_FILES)
++LOCAL_C_INCLUDES += $(x86_asm_parser_C_INCLUDES)
++TBLGEN_TABLES := $(x86_asm_parser_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(x86_asm_parser_TBLGEN_TD_DIR)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/X86/Disassembler/Android.mk b/lib/Target/X86/Disassembler/Android.mk
+new file mode 100644
+index 0000000..3984266
+--- /dev/null
++++ b/lib/Target/X86/Disassembler/Android.mk
+@@ -0,0 +1,56 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_disassembler_TBLGEN_TABLES := \
++ X86GenDisassemblerTables.inc \
++ X86GenInstrInfo.inc \
++ X86GenRegisterInfo.inc \
++ X86GenSubtargetInfo.inc
++
++x86_disassembler_SRC_FILES := \
++ X86Disassembler.cpp \
++ X86DisassemblerDecoder.c
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Disassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_disassembler_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_disassembler_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Disassembler
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/Target/X86/InstPrinter/Android.mk b/lib/Target/X86/InstPrinter/Android.mk
+new file mode 100644
+index 0000000..9881beb
+--- /dev/null
++++ b/lib/Target/X86/InstPrinter/Android.mk
+@@ -0,0 +1,57 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_instprinter_TBLGEN_TABLES := \
++ X86GenAsmWriter.inc \
++ X86GenAsmWriter1.inc \
++ X86GenInstrInfo.inc \
++ X86GenRegisterInfo.inc \
++ X86GenSubtargetInfo.inc
++
++x86_instprinter_SRC_FILES := \
++ X86ATTInstPrinter.cpp \
++ X86IntelInstPrinter.cpp \
++ X86InstComments.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_instprinter_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_instprinter_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86AsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_instprinter_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_instprinter_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE := libLLVMX86AsmPrinter
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/Target/X86/MCTargetDesc/Android.mk b/lib/Target/X86/MCTargetDesc/Android.mk
+new file mode 100644
+index 0000000..ee37c27
+--- /dev/null
++++ b/lib/Target/X86/MCTargetDesc/Android.mk
+@@ -0,0 +1,56 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_mc_desc_TBLGEN_TABLES := \
++ X86GenRegisterInfo.inc \
++ X86GenInstrInfo.inc \
++ X86GenSubtargetInfo.inc
++
++x86_mc_desc_SRC_FILES := \
++ X86AsmBackend.cpp \
++ X86ELFObjectWriter.cpp \
++ X86ELFRelocationInfo.cpp \
++ X86MCTargetDesc.cpp \
++ X86MCAsmInfo.cpp \
++ X86MCCodeEmitter.cpp \
++ X86MachORelocationInfo.cpp \
++ X86MachObjectWriter.cpp \
++ X86WinCOFFObjectWriter.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++LOCAL_MODULE:= libLLVMX86Desc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device only
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++
++LOCAL_MODULE:= libLLVMX86Desc
++LOCAL_MODULE_TAGS := optional
++
++LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES)
++LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
++TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/X86/TargetInfo/Android.mk b/lib/Target/X86/TargetInfo/Android.mk
+new file mode 100644
+index 0000000..1a6c902
+--- /dev/null
++++ b/lib/Target/X86/TargetInfo/Android.mk
+@@ -0,0 +1,55 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_target_info_TBLGEN_TABLES := \
++ X86GenRegisterInfo.inc \
++ X86GenSubtargetInfo.inc \
++ X86GenInstrInfo.inc
++
++x86_target_info_SRC_FILES := \
++ X86TargetInfo.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Info
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++include $(CLEAR_TBLGEN_VARS)
++
++TBLGEN_TABLES := $(x86_target_info_TBLGEN_TABLES)
++
++TBLGEN_TD_DIR := $(LOCAL_PATH)/..
++
++LOCAL_SRC_FILES := $(x86_target_info_SRC_FILES)
++
++LOCAL_C_INCLUDES += \
++ $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Info
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_TBLGEN_RULES_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Target/X86/Utils/Android.mk b/lib/Target/X86/Utils/Android.mk
+new file mode 100644
+index 0000000..e0c4797
+--- /dev/null
++++ b/lib/Target/X86/Utils/Android.mk
+@@ -0,0 +1,36 @@
++LOCAL_PATH := $(call my-dir)
++
++x86_utils_SRC_FILES := \
++ X86ShuffleDecode.cpp
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(x86_utils_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Utils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(x86_utils_SRC_FILES)
++
++LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
++
++LOCAL_MODULE:= libLLVMX86Utils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
+diff --git a/lib/Transforms/IPO/Android.mk b/lib/Transforms/IPO/Android.mk
+new file mode 100644
+index 0000000..1fe7d63
+--- /dev/null
++++ b/lib/Transforms/IPO/Android.mk
+@@ -0,0 +1,52 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_ipo_SRC_FILES := \
++ ArgumentPromotion.cpp \
++ BarrierNoopPass.cpp \
++ ConstantMerge.cpp \
++ DeadArgumentElimination.cpp \
++ ExtractGV.cpp \
++ FunctionAttrs.cpp \
++ GlobalDCE.cpp \
++ GlobalOpt.cpp \
++ IPConstantPropagation.cpp \
++ IPO.cpp \
++ InlineAlways.cpp \
++ InlineSimple.cpp \
++ Inliner.cpp \
++ Internalize.cpp \
++ LoopExtractor.cpp \
++ MergeFunctions.cpp \
++ PartialInlining.cpp \
++ PassManagerBuilder.cpp \
++ PruneEH.cpp \
++ StripDeadPrototypes.cpp \
++ StripSymbols.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_ipo_SRC_FILES)
++LOCAL_MODULE:= libLLVMipo
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_ipo_SRC_FILES)
++LOCAL_MODULE:= libLLVMipo
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/InstCombine/Android.mk b/lib/Transforms/InstCombine/Android.mk
+new file mode 100644
+index 0000000..62dc7d9
+--- /dev/null
++++ b/lib/Transforms/InstCombine/Android.mk
+@@ -0,0 +1,44 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_inst_combine_SRC_FILES := \
++ InstCombineAddSub.cpp \
++ InstCombineAndOrXor.cpp \
++ InstCombineCalls.cpp \
++ InstCombineCasts.cpp \
++ InstCombineCompares.cpp \
++ InstCombineLoadStoreAlloca.cpp \
++ InstCombineMulDivRem.cpp \
++ InstCombinePHI.cpp \
++ InstCombineSelect.cpp \
++ InstCombineShifts.cpp \
++ InstCombineSimplifyDemanded.cpp \
++ InstCombineVectorOps.cpp \
++ InstructionCombining.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_inst_combine_SRC_FILES)
++LOCAL_MODULE:= libLLVMInstCombine
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_inst_combine_SRC_FILES)
++LOCAL_MODULE:= libLLVMInstCombine
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/Instrumentation/Android.mk b/lib/Transforms/Instrumentation/Android.mk
+new file mode 100644
+index 0000000..f9a55c7
+--- /dev/null
++++ b/lib/Transforms/Instrumentation/Android.mk
+@@ -0,0 +1,37 @@
++LOCAL_PATH:= $(call my-dir)
++
++instrumentation_SRC_FILES := \
++ AddressSanitizer.cpp \
++ BoundsChecking.cpp \
++ DataFlowSanitizer.cpp \
++ DebugIR.cpp \
++ GCOVProfiling.cpp \
++ Instrumentation.cpp \
++ MemorySanitizer.cpp \
++ ThreadSanitizer.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVMInstrumentation
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the target
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVMInstrumentation
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/ObjCARC/Android.mk b/lib/Transforms/ObjCARC/Android.mk
+new file mode 100644
+index 0000000..226e9e1
+--- /dev/null
++++ b/lib/Transforms/ObjCARC/Android.mk
+@@ -0,0 +1,40 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_objcarc_SRC_FILES := \
++ DependencyAnalysis.cpp \
++ ObjCARCAliasAnalysis.cpp \
++ ObjCARCAPElim.cpp \
++ ObjCARCContract.cpp \
++ ObjCARC.cpp \
++ ObjCARCExpand.cpp \
++ ObjCARCOpts.cpp \
++ ObjCARCUtil.cpp \
++ ProvenanceAnalysis.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_objcarc_SRC_FILES)
++LOCAL_MODULE:= libLLVMTransformObjCARC
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_objcarc_SRC_FILES)
++LOCAL_MODULE:= libLLVMTransformObjCARC
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/Scalar/Android.mk b/lib/Transforms/Scalar/Android.mk
+new file mode 100644
+index 0000000..3894f93
+--- /dev/null
++++ b/lib/Transforms/Scalar/Android.mk
+@@ -0,0 +1,73 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_scalar_SRC_FILES := \
++ ADCE.cpp \
++ ConstantProp.cpp \
++ ConstantHoisting.cpp \
++ CorrelatedValuePropagation.cpp \
++ DCE.cpp \
++ DeadStoreElimination.cpp \
++ EarlyCSE.cpp \
++ GlobalMerge.cpp \
++ GVN.cpp \
++ IndVarSimplify.cpp \
++ JumpThreading.cpp \
++ LICM.cpp \
++ LoopDeletion.cpp \
++ LoopIdiomRecognize.cpp \
++ LoopInstSimplify.cpp \
++ LoopRerollPass.cpp \
++ LoopRotation.cpp \
++ LoopStrengthReduce.cpp \
++ LoopUnrollPass.cpp \
++ LoopUnswitch.cpp \
++ LowerAtomic.cpp \
++ MemCpyOptimizer.cpp \
++ PartiallyInlineLibCalls.cpp \
++ Reassociate.cpp \
++ Reg2Mem.cpp \
++ SCCP.cpp \
++ SROA.cpp \
++ SampleProfile.cpp \
++ Scalar.cpp \
++ Scalarizer.cpp \
++ ScalarReplAggregates.cpp \
++ SimplifyCFGPass.cpp \
++ Sink.cpp \
++ StructurizeCFG.cpp \
++ TailRecursionElimination.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := \
++ $(transforms_scalar_SRC_FILES)
++
++LOCAL_MODULE:= libLLVMScalarOpts
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_scalar_SRC_FILES)
++LOCAL_MODULE:= libLLVMScalarOpts
++
++# Override the default optimization level to work around a SIGSEGV
++# on x86 target builds for SROA.cpp.
++# Bug: 8047767
++LOCAL_CFLAGS_x86 += -O1
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/Utils/Android.mk b/lib/Transforms/Utils/Android.mk
+new file mode 100644
+index 0000000..ab4d8a8
+--- /dev/null
++++ b/lib/Transforms/Utils/Android.mk
+@@ -0,0 +1,66 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_utils_SRC_FILES := \
++ AddDiscriminators.cpp \
++ ASanStackFrameLayout.cpp \
++ BasicBlockUtils.cpp \
++ BreakCriticalEdges.cpp \
++ BuildLibCalls.cpp \
++ BypassSlowDivision.cpp \
++ CloneFunction.cpp \
++ CloneModule.cpp \
++ CmpInstAnalysis.cpp \
++ CodeExtractor.cpp \
++ DemoteRegToStack.cpp \
++ GlobalStatus.cpp \
++ InlineFunction.cpp \
++ InstructionNamer.cpp \
++ LCSSA.cpp \
++ Local.cpp \
++ LoopSimplify.cpp \
++ LoopUnroll.cpp \
++ LoopUnrollRuntime.cpp \
++ LowerExpectIntrinsic.cpp \
++ LowerInvoke.cpp \
++ LowerSwitch.cpp \
++ Mem2Reg.cpp \
++ MetaRenamer.cpp \
++ ModuleUtils.cpp \
++ PromoteMemoryToRegister.cpp \
++ SSAUpdater.cpp \
++ SimplifyCFG.cpp \
++ SimplifyIndVar.cpp \
++ SimplifyInstructions.cpp \
++ SimplifyLibCalls.cpp \
++ SpecialCaseList.cpp \
++ UnifyFunctionExitNodes.cpp \
++ Utils.cpp \
++ ValueMapper.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_utils_SRC_FILES)
++LOCAL_MODULE:= libLLVMTransformUtils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_utils_SRC_FILES)
++LOCAL_MODULE:= libLLVMTransformUtils
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/lib/Transforms/Vectorize/Android.mk b/lib/Transforms/Vectorize/Android.mk
+new file mode 100644
+index 0000000..ea090c0
+--- /dev/null
++++ b/lib/Transforms/Vectorize/Android.mk
+@@ -0,0 +1,35 @@
++LOCAL_PATH:= $(call my-dir)
++
++transforms_vectorize_SRC_FILES := \
++ BBVectorize.cpp \
++ LoopVectorize.cpp \
++ SLPVectorizer.cpp \
++ Vectorize.cpp
++
++# For the host
++# =====================================================
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_vectorize_SRC_FILES)
++LOCAL_MODULE:= libLLVMVectorize
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_STATIC_LIBRARY)
++
++# For the device
++# =====================================================
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_SRC_FILES := $(transforms_vectorize_SRC_FILES)
++LOCAL_MODULE:= libLLVMVectorize
++
++LOCAL_MODULE_TAGS := optional
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_STATIC_LIBRARY)
++endif
+diff --git a/llvm-device-build.mk b/llvm-device-build.mk
+new file mode 100644
+index 0000000..7464c98
+--- /dev/null
++++ b/llvm-device-build.mk
+@@ -0,0 +1,79 @@
++LOCAL_MODULE_TARGET_ARCH := $(LLVM_SUPPORTED_ARCH)
++
++LOCAL_CLANG := true
++
++LOCAL_CFLAGS := \
++ -D_GNU_SOURCE \
++ -D__STDC_LIMIT_MACROS \
++ -D__STDC_CONSTANT_MACROS \
++ -D__STDC_FORMAT_MACROS \
++ -O2 \
++ -fomit-frame-pointer \
++ -Wall \
++ -W \
++ -Wno-unused-parameter \
++ -Wwrite-strings \
++ -Dsprintf=sprintf \
++ $(LOCAL_CFLAGS)
++
++# The three inline options together reduce libbcc.so almost 1MB.
++# We move them from global build/core/combo/TARGET_linux-arm.mk
++# to here.
++LOCAL_CFLAGS := -DANDROID_TARGET_BUILD \
++ -finline-functions \
++ $(LOCAL_CFLAGS)
++
++ifeq ($(TARGET_BUILD_VARIANT),eng)
++LOCAL_CFLAGS := -DANDROID_ENGINEERING_BUILD \
++ $(LOCAL_CFLAGS)
++endif
++
++ifeq ($(LLVM_ENABLE_ASSERTION),true)
++LOCAL_CFLAGS := \
++ $(LOCAL_CFLAGS) \
++ -D_DEBUG \
++ -UNDEBUG
++endif
++
++ifneq ($(REQUIRES_EH),1)
++LOCAL_CFLAGS += -fno-exceptions
++else
++# No action. The device target should not have exception enabled since bionic
++# doesn't support it
++REQUIRES_EH := 0
++endif
++
++ifneq ($(REQUIRES_RTTI),1)
++LOCAL_CPPFLAGS += -fno-rtti
++else
++REQUIRES_RTTI := 0
++endif
++
++LOCAL_CPPFLAGS := \
++ $(LOCAL_CPPFLAGS) \
++ -Woverloaded-virtual \
++ -Wno-sign-promo
++
++# Make sure bionic is first so we can include system headers.
++LOCAL_C_INCLUDES := \
++ bionic \
++ external/stlport/stlport \
++ $(LLVM_ROOT_PATH) \
++ $(LLVM_ROOT_PATH)/include \
++ $(LLVM_ROOT_PATH)/device/include \
++ $(LOCAL_C_INCLUDES)
++
++###########################################################
++## Commands for running tblgen to compile a td file
++###########################################################
++define transform-device-td-to-out
++@mkdir -p $(dir $@)
++@echo "Device TableGen (gen-$(1)): $(TBLGEN_LOCAL_MODULE) <= $<"
++$(hide) $(TBLGEN) \
++ -I $(dir $<) \
++ -I $(LLVM_ROOT_PATH)/include \
++ -I $(LLVM_ROOT_PATH)/device/include \
++ -I $(LLVM_ROOT_PATH)/lib/Target \
++ -gen-$(strip $(1)) \
++ -o $@ $<
++endef
+diff --git a/llvm-gen-intrinsics.mk b/llvm-gen-intrinsics.mk
+new file mode 100644
+index 0000000..358027b
+--- /dev/null
++++ b/llvm-gen-intrinsics.mk
+@@ -0,0 +1,19 @@
++# We treat Intrinsics.td as a very special target just like what lib/VMCore/Makefile does
++INTRINSICTD := $(LLVM_ROOT_PATH)/include/llvm/IR/Intrinsics.td
++INTRINSICTDS := $(wildcard $(dir $(INTRINSICTD))/Intrinsics*.td)
++
++LOCAL_SRC_FILES := $(INTRINSICTD) $(LOCAL_SRC_FILES)
++
++ifeq ($(LOCAL_MODULE_CLASS),)
++ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
++endif
++
++GENFILE := $(addprefix $(call local-generated-sources-dir)/llvm/IR/,Intrinsics.gen)
++LOCAL_GENERATED_SOURCES += $(GENFILE)
++$(GENFILE): TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(GENFILE): $(INTRINSICTD) $(INTRINSICTDS) | $(TBLGEN)
++ifeq ($(LOCAL_IS_HOST_MODULE),true)
++ $(call transform-host-td-to-out,intrinsic)
++else
++ $(call transform-device-td-to-out,intrinsic)
++endif
+diff --git a/llvm-host-build.mk b/llvm-host-build.mk
+new file mode 100644
+index 0000000..7e96615
+--- /dev/null
++++ b/llvm-host-build.mk
+@@ -0,0 +1,64 @@
++LOCAL_CLANG := true
++
++LOCAL_CFLAGS += \
++ -D_GNU_SOURCE \
++ -D__STDC_LIMIT_MACROS \
++ -O2 \
++ -fomit-frame-pointer \
++ -Wall \
++ -W \
++ -Wno-unused-parameter \
++ -Wwrite-strings \
++ -Dsprintf=sprintf \
++ $(LOCAL_CFLAGS)
++
++ifeq ($(LLVM_ENABLE_ASSERTION),true)
++LOCAL_CFLAGS := \
++ $(LOCAL_CFLAGS) \
++ -D_DEBUG \
++ -UNDEBUG
++endif
++
++ifneq ($(REQUIRES_EH),1)
++LOCAL_CFLAGS += -fno-exceptions
++else
++REQUIRES_EH := 0
++LOCAL_CFLAGS += -fexceptions
++endif
++
++ifneq ($(REQUIRES_RTTI),1)
++LOCAL_CPPFLAGS += -fno-rtti
++else
++REQUIRES_RTTI := 0
++endif
++
++LOCAL_CPPFLAGS := \
++ $(LOCAL_CPPFLAGS) \
++ -Woverloaded-virtual \
++ -Wno-sign-promo \
++ -std=c++11
++
++# Make sure bionic is first so we can include system headers.
++LOCAL_C_INCLUDES := \
++ $(LLVM_ROOT_PATH) \
++ $(LLVM_ROOT_PATH)/include \
++ $(LLVM_ROOT_PATH)/host/include \
++ $(LOCAL_C_INCLUDES)
++
++LOCAL_IS_HOST_MODULE := true
++
++###########################################################
++## Commands for running tblgen to compile a td file
++###########################################################
++define transform-host-td-to-out
++@mkdir -p $(dir $@)
++@echo "Host TableGen: $(TBLGEN_LOCAL_MODULE) (gen-$(1)) <= $<"
++$(hide) $(TBLGEN) \
++ -I $(dir $<) \
++ -I $(LLVM_ROOT_PATH)/include \
++ -I $(LLVM_ROOT_PATH)/host/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/llvm-tblgen-rules.mk b/llvm-tblgen-rules.mk
+new file mode 100644
+index 0000000..0746e8b
+--- /dev/null
++++ b/llvm-tblgen-rules.mk
+@@ -0,0 +1,208 @@
++###########################################################
++## Commands for running tblgen to compile a td file
++##########################################################
++define transform-td-to-out
++$(if $(LOCAL_IS_HOST_MODULE), \
++ $(call transform-host-td-to-out,$(1)), \
++ $(call transform-device-td-to-out,$(1)))
++endef
++
++###########################################################
++## TableGen: Compile .td files to .inc.
++###########################################################
++
++# Set LOCAL_MODULE_CLASS to STATIC_LIBRARIES default (require
++# for macro local-generated-sources-dir)
++ifeq ($(LOCAL_MODULE_CLASS),)
++ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
++endif
++
++ifneq ($(strip $(TBLGEN_TABLES)),)
++
++generated_sources := $(call local-generated-sources-dir)
++tblgen_gen_tables := $(addprefix $(generated_sources)/,$(TBLGEN_TABLES))
++LOCAL_GENERATED_SOURCES += $(tblgen_gen_tables)
++
++tblgen_source_dir := $(LOCAL_PATH)
++ifneq ($(TBLGEN_TD_DIR),)
++tblgen_source_dir := $(TBLGEN_TD_DIR)
++endif
++
++ifneq (,$(filter $(tblgen_source_dir),MCTargetDesc))
++tblgen_td_deps := $(tblgen_source_dir)/../*.td
++else
++tblgen_td_deps := $(tblgen_source_dir)/*.td
++endif
++tblgen_td_deps := $(wildcard $(tblgen_td_deps))
++
++#
++# The directory and the .td directory is not the same.
++#
++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/ARM/MCTargetDesc)
++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out, register-info)
++
++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,instr-info)
++
++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,subtarget)
++endif
++
++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/X86/MCTargetDesc)
++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out, register-info)
++
++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,instr-info)
++
++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,subtarget)
++endif
++
++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/Mips/MCTargetDesc)
++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out, register-info)
++
++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,instr-info)
++
++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,subtarget)
++endif
++
++
++ifneq ($(filter %GenRegisterInfo.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,register-info)
++endif
++
++ifneq ($(filter %GenInstrInfo.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,instr-info)
++endif
++
++ifneq ($(filter %GenAsmWriter.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenAsmWriter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenAsmWriter.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,asm-writer)
++endif
++
++ifneq ($(filter %GenAsmWriter1.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenAsmWriter1.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenAsmWriter1.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,asm-writer -asmwriternum=1)
++endif
++
++ifneq ($(filter %GenAsmMatcher.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenAsmMatcher.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenAsmMatcher.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,asm-matcher)
++endif
++
++ifneq ($(filter %GenCodeEmitter.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenCodeEmitter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenCodeEmitter.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,emitter)
++endif
++
++ifneq ($(filter %GenMCCodeEmitter.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenMCCodeEmitter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenMCCodeEmitter.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,emitter -mc-emitter)
++endif
++
++ifneq ($(filter %GenMCPseudoLowering.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenMCPseudoLowering.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenMCPseudoLowering.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,pseudo-lowering)
++endif
++
++ifneq ($(filter %GenDAGISel.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenDAGISel.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenDAGISel.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,dag-isel)
++endif
++
++ifneq ($(filter %GenDisassemblerTables.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenDisassemblerTables.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenDisassemblerTables.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,disassembler)
++endif
++
++ifneq ($(filter %GenEDInfo.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenEDInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenEDInfo.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,enhanced-disassembly-info)
++endif
++
++ifneq ($(filter %GenFastISel.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenFastISel.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenFastISel.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,fast-isel)
++endif
++
++ifneq ($(filter %GenSubtargetInfo.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,subtarget)
++endif
++
++ifneq ($(filter %GenCallingConv.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenCallingConv.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenCallingConv.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,callingconv)
++endif
++
++ifneq ($(filter %GenIntrinsics.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/%GenIntrinsics.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/%GenIntrinsics.inc: $(tblgen_source_dir)/%.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,tgt_intrinsics)
++endif
++
++ifneq ($(findstring ARMGenDecoderTables.inc,$(tblgen_gen_tables)),)
++$(generated_sources)/ARMGenDecoderTables.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
++$(generated_sources)/ARMGenDecoderTables.inc: $(tblgen_source_dir)/ARM.td \
++ $(tblgen_td_deps) | $(TBLGEN)
++ $(call transform-td-to-out,arm-decoder)
++endif
++
++# Reset local variables
++tblgen_td_deps :=
++
++endif
+diff --git a/llvm.mk b/llvm.mk
+new file mode 100644
+index 0000000..073ceb7
+--- /dev/null
++++ b/llvm.mk
+@@ -0,0 +1,11 @@
++ifeq ($(LLVM_ROOT_PATH),)
++$(error Must set variable LLVM_ROOT_PATH before including this! $(LOCAL_PATH))
++endif
++
++CLEAR_TBLGEN_VARS := $(LLVM_ROOT_PATH)/clear_tblgen_vars.mk
++LLVM_HOST_BUILD_MK := $(LLVM_ROOT_PATH)/llvm-host-build.mk
++LLVM_DEVICE_BUILD_MK := $(LLVM_ROOT_PATH)/llvm-device-build.mk
++LLVM_GEN_INTRINSICS_MK := $(LLVM_ROOT_PATH)/llvm-gen-intrinsics.mk
++LLVM_TBLGEN_RULES_MK := $(LLVM_ROOT_PATH)/llvm-tblgen-rules.mk
++
++LLVM_SUPPORTED_ARCH := arm arm64 mips x86 x86_64
+diff --git a/shared_llvm.mk b/shared_llvm.mk
+new file mode 100644
+index 0000000..f4be822
+--- /dev/null
++++ b/shared_llvm.mk
+@@ -0,0 +1,137 @@
++# Don't build the library in unbundled branches.
++ifeq (,$(TARGET_BUILD_APPS))
++
++LOCAL_PATH:= $(call my-dir)
++
++llvm_pre_static_libraries := \
++ libLLVMLinker \
++ libLLVMipo \
++ libLLVMIRReader \
++ libLLVMBitWriter \
++ libLLVMBitReader
++
++llvm_arm_static_libraries := \
++ libLLVMARMCodeGen \
++ libLLVMARMAsmParser \
++ libLLVMARMAsmPrinter \
++ libLLVMARMInfo \
++ libLLVMARMDesc \
++ libLLVMARMDisassembler
++
++llvm_x86_static_libraries := \
++ libLLVMX86CodeGen \
++ libLLVMX86Info \
++ libLLVMX86Desc \
++ libLLVMX86AsmParser \
++ libLLVMX86AsmPrinter \
++ libLLVMX86Utils \
++ libLLVMX86Disassembler
++
++llvm_mips_static_libraries := \
++ libLLVMMipsCodeGen \
++ libLLVMMipsInfo \
++ libLLVMMipsDesc \
++ libLLVMMipsAsmParser \
++ libLLVMMipsAsmPrinter \
++ libLLVMMipsDisassembler
++
++llvm_arm64_static_libraries := \
++ libLLVMARM64CodeGen \
++ libLLVMARM64Info \
++ libLLVMARM64Desc \
++ libLLVMARM64AsmParser \
++ libLLVMARM64AsmPrinter \
++ libLLVMARM64Utils \
++ libLLVMARM64Disassembler
++
++llvm_post_static_libraries := \
++ libLLVMAsmPrinter \
++ libLLVMSelectionDAG \
++ libLLVMCodeGen \
++ libLLVMObject \
++ libLLVMScalarOpts \
++ libLLVMInstCombine \
++ libLLVMInstrumentation \
++ libLLVMTransformObjCARC \
++ libLLVMTransformUtils \
++ libLLVMipa \
++ libLLVMAnalysis \
++ libLLVMTarget \
++ libLLVMMC \
++ libLLVMMCParser \
++ libLLVMCore \
++ libLLVMAsmParser \
++ libLLVMOption \
++ libLLVMSupport \
++ libLLVMVectorize
++
++llvm_host_static_libraries := \
++ libLLVMExecutionEngine \
++ libLLVMMCDisassembler \
++ libLLVMRuntimeDyld \
++ libLLVMJIT \
++ libLLVMMCJIT
++
++ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
++# HOST LLVM shared library build
++include $(CLEAR_VARS)
++LOCAL_IS_HOST_MODULE := true
++
++LOCAL_MODULE:= libLLVM
++
++LOCAL_MODULE_TAGS := optional
++
++# Host build pulls in all ARM, Mips, X86 components.
++LOCAL_WHOLE_STATIC_LIBRARIES := \
++ $(llvm_pre_static_libraries) \
++ $(llvm_arm_static_libraries) \
++ $(llvm_x86_static_libraries) \
++ $(llvm_mips_static_libraries) \
++ $(llvm_arm64_static_libraries) \
++ $(llvm_host_static_libraries) \
++ $(llvm_post_static_libraries)
++
++ifeq ($(HOST_OS),windows)
++ LOCAL_LDLIBS := -limagehlp -lpsapi
++else
++ LOCAL_LDLIBS := -ldl -lpthread
++endif
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_SHARED_LIBRARY)
++endif
++
++ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH)))
++$(warning TODO $(TARGET_ARCH): Enable llvm build)
++endif
++
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++# DEVICE LLVM shared library build
++include $(CLEAR_VARS)
++
++LOCAL_MODULE:= libLLVM
++
++LOCAL_MODULE_TAGS := optional
++
++# Device build selectively pulls in ARM, Mips, X86 components.
++LOCAL_WHOLE_STATIC_LIBRARIES := \
++ $(llvm_pre_static_libraries)
++
++LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
++LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
++LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
++LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
++LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm64_static_libraries)
++
++LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries)
++
++#LOCAL_LDLIBS := -ldl -lpthread
++LOCAL_SHARED_LIBRARIES := libcutils libdl libstlport
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_SHARED_LIBRARY)
++
++endif
++
++endif # don't build in unbundled branches
++
+diff --git a/tools/llc/Android.mk b/tools/llc/Android.mk
+new file mode 100644
+index 0000000..b9d4b74
+--- /dev/null
++++ b/tools/llc/Android.mk
+@@ -0,0 +1,136 @@
++LOCAL_PATH := $(call my-dir)
++
++LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
++
++
++#===---------------------------------------------------------------===
++# llc command line tool (common)
++#===---------------------------------------------------------------===
++
++llvm_llc_SRC_FILES := \
++ llc.cpp
++
++llvm_llc_mips_STATIC_LIBRARIES := \
++ libLLVMMipsAsmParser \
++ libLLVMMipsInfo \
++ libLLVMMipsCodeGen \
++ libLLVMMipsDesc \
++ libLLVMMipsAsmPrinter \
++
++llvm_llc_x86_STATIC_LIBRARIES := \
++ libLLVMX86Info \
++ libLLVMX86AsmParser \
++ libLLVMX86CodeGen \
++ libLLVMX86Disassembler \
++ libLLVMX86Desc \
++ libLLVMX86AsmPrinter \
++ libLLVMX86Utils
++
++llvm_llc_arm_STATIC_LIBRARIES := \
++ libLLVMARMCodeGen \
++ libLLVMARMDisassembler \
++ libLLVMARMAsmParser \
++ libLLVMARMAsmPrinter \
++ libLLVMARMDesc \
++ libLLVMARMInfo
++
++llvm_llc_STATIC_LIBRARIES := \
++ libLLVMAsmPrinter \
++ libLLVMIRReader \
++ libLLVMAsmParser \
++ libLLVMBitReader \
++ libLLVMBitWriter \
++ libLLVMSelectionDAG \
++ libLLVMInstCombine \
++ libLLVMInstrumentation \
++ libLLVMCodeGen \
++ libLLVMObject \
++ libLLVMipo \
++ libLLVMipa \
++ libLLVMLinker \
++ libLLVMMC \
++ libLLVMMCParser \
++ libLLVMScalarOpts \
++ libLLVMTransformUtils \
++ libLLVMVectorize \
++ libLLVMAnalysis \
++ libLLVMTarget \
++ libLLVMCore \
++ libLLVMSupport
++
++llvm_llc_arm64_STATIC_LIBRARIES := \
++ libLLVMARM64Info \
++ libLLVMARM64AsmParser \
++ libLLVMARM64CodeGen \
++ libLLVMARM64Disassembler \
++ libLLVMARM64Desc \
++ libLLVMARM64AsmPrinter \
++ libLLVMARM64Utils
++
++
++
++#===---------------------------------------------------------------===
++# llc command line tool (host)
++#===---------------------------------------------------------------===
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llc
++LOCAL_MODULE_TAGS := optional
++LOCAL_MODULE_CLASS := EXECUTABLES
++LOCAL_IS_HOST_MODULE := true
++
++LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES)
++
++LOCAL_STATIC_LIBRARIES := \
++ $(llvm_llc_arm_STATIC_LIBRARIES) \
++ $(llvm_llc_mips_STATIC_LIBRARIES) \
++ $(llvm_llc_x86_STATIC_LIBRARIES) \
++ $(llvm_llc_arm64_STATIC_LIBRARIES) \
++ $(llvm_llc_STATIC_LIBRARIES)
++
++LOCAL_LDLIBS += -lpthread -lm -ldl
++LOCAL_C_INCLUDES += external/llvm/include
++
++include $(LLVM_ROOT_PATH)/llvm.mk
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_EXECUTABLE)
++
++
++#===---------------------------------------------------------------===
++# llc command line tool (target)
++#===---------------------------------------------------------------===
++
++ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH)))
++$(warning TODO $(TARGET_ARCH): Enable llc build)
++endif
++
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llc
++LOCAL_MODULE_TAGS := optional
++LOCAL_MODULE_CLASS := EXECUTABLES
++
++LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES)
++LOCAL_C_INCLUDES += external/llvm/include
++
++LOCAL_STATIC_LIBRARIES_arm := $(llvm_llc_arm_STATIC_LIBRARIES)
++LOCAL_STATIC_LIBRARIES_mips := $(llvm_llc_mips_STATIC_LIBRARIES)
++LOCAL_STATIC_LIBRARIES_x86 := $(llvm_llc_x86_STATIC_LIBRARIES)
++LOCAL_STATIC_LIBRARIES_x86_64 := $(llvm_llc_x86_STATIC_LIBRARIES)
++LOCAL_STATIC_LIBRARIES_arm64 := $(llvm_llc_arm64_STATIC_LIBRARIES)
++
++LOCAL_STATIC_LIBRARIES += $(llvm_llc_STATIC_LIBRARIES)
++
++LOCAL_SHARED_LIBRARIES := \
++ libcutils \
++ libdl \
++ libstlport
++
++include $(LLVM_ROOT_PATH)/llvm.mk
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_EXECUTABLE)
++endif
+diff --git a/tools/llvm-as/Android.mk b/tools/llvm-as/Android.mk
+new file mode 100644
+index 0000000..e58868b
+--- /dev/null
++++ b/tools/llvm-as/Android.mk
+@@ -0,0 +1,28 @@
++LOCAL_PATH:= $(call my-dir)
++
++llvm_as_SRC_FILES := \
++ llvm-as.cpp
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llvm-as
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(llvm_as_SRC_FILES)
++LOCAL_LDLIBS += -lm
++ifdef USE_MINGW
++LOCAL_LDLIBS += -limagehlp
++else
++LOCAL_LDLIBS += -lpthread -ldl
++endif
++
++REQUIRES_EH := 1
++REQUIRES_RTTI := 1
++
++LOCAL_STATIC_LIBRARIES := \
++ libLLVMAsmParser \
++ libLLVMBitWriter \
++ libLLVMCore \
++ libLLVMSupport
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_EXECUTABLE)
+diff --git a/tools/llvm-dis/Android.mk b/tools/llvm-dis/Android.mk
+new file mode 100644
+index 0000000..22d44fd
+--- /dev/null
++++ b/tools/llvm-dis/Android.mk
+@@ -0,0 +1,25 @@
++LOCAL_PATH:= $(call my-dir)
++
++llvm_dis_SRC_FILES := \
++ llvm-dis.cpp
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llvm-dis
++LOCAL_MODULE_CLASS := EXECUTABLES
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(llvm_dis_SRC_FILES)
++LOCAL_LDLIBS += -lpthread -lm -ldl
++
++REQUIRES_EH := 1
++REQUIRES_RTTI := 1
++
++LOCAL_STATIC_LIBRARIES := \
++ libLLVMAnalysis \
++ libLLVMBitReader \
++ libLLVMCore \
++ libLLVMSupport
++
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_EXECUTABLE)
+diff --git a/tools/llvm-link/Android.mk b/tools/llvm-link/Android.mk
+new file mode 100644
+index 0000000..e051492
+--- /dev/null
++++ b/tools/llvm-link/Android.mk
+@@ -0,0 +1,50 @@
++LOCAL_PATH:= $(call my-dir)
++
++llvm_link_SRC_FILES := \
++ llvm-link.cpp
++
++llvm_link_STATIC_LIBRARIES := \
++ libLLVMLinker \
++ libLLVMIRReader \
++ libLLVMBitReader \
++ libLLVMBitWriter \
++ libLLVMAsmParser \
++ libLLVMTransformUtils \
++ libLLVMAnalysis \
++ libLLVMTarget \
++ libLLVMCore \
++ libLLVMSupport
++
++#===---------------------------------------------------------------===
++# llvm-link command line tool (host)
++#===---------------------------------------------------------------===
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llvm-link
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(llvm_link_SRC_FILES)
++LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES)
++LOCAL_LDLIBS += -lpthread -lm -ldl
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_EXECUTABLE)
++
++#===---------------------------------------------------------------===
++# llvm-link command line tool (target)
++#===---------------------------------------------------------------===
++
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := llvm-link
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(llvm_link_SRC_FILES)
++LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES)
++LOCAL_SHARED_LIBRARIES := \
++ libcutils \
++ libstlport
++
++include $(LLVM_DEVICE_BUILD_MK)
++include $(BUILD_EXECUTABLE)
++endif
+diff --git a/tools/opt/Android.mk b/tools/opt/Android.mk
+new file mode 100644
+index 0000000..c5bb4f8
+--- /dev/null
++++ b/tools/opt/Android.mk
+@@ -0,0 +1,81 @@
++LOCAL_PATH := $(call my-dir)
++
++LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
++
++
++#===---------------------------------------------------------------===
++# opt command line tool (common)
++#===---------------------------------------------------------------===
++
++llvm_opt_SRC_FILES := \
++ AnalysisWrappers.cpp \
++ GraphPrinters.cpp \
++ PrintSCC.cpp \
++ opt.cpp
++
++llvm_opt_STATIC_LIBRARIES := \
++ libLLVMScalarOpts \
++ libLLVMInstCombine \
++ libLLVMInstrumentation \
++ libLLVMMCParser \
++ libLLVMMC \
++ libLLVMAsmParser \
++ libLLVMBitWriter \
++ libLLVMBitReader \
++ libLLVMipa \
++ libLLVMipo \
++ libLLVMTransformUtils \
++ libLLVMVectorize \
++ libLLVMAnalysis \
++ libLLVMTarget \
++ libLLVMCore \
++ libLLVMSupport
++
++
++#===---------------------------------------------------------------===
++# opt command line tool (host)
++#===---------------------------------------------------------------===
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := opt
++LOCAL_MODULE_TAGS := optional
++LOCAL_MODULE_CLASS := EXECUTABLES
++LOCAL_IS_HOST_MODULE := true
++
++LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES)
++LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES)
++LOCAL_LDLIBS += -lpthread -lm -ldl
++LOCAL_C_INCLUDES += external/llvm/include
++
++include $(LLVM_ROOT_PATH)/llvm.mk
++include $(LLVM_HOST_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_HOST_EXECUTABLE)
++
++
++#===---------------------------------------------------------------===
++# opt command line tool (target)
++#===---------------------------------------------------------------===
++
++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := opt
++LOCAL_MODULE_TAGS := optional
++LOCAL_MODULE_CLASS := EXECUTABLES
++
++LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES)
++LOCAL_C_INCLUDES += external/llvm/include
++LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES)
++LOCAL_SHARED_LIBRARIES := \
++ libcutils \
++ libdl \
++ libstlport
++
++
++include $(LLVM_ROOT_PATH)/llvm.mk
++include $(LLVM_DEVICE_BUILD_MK)
++include $(LLVM_GEN_INTRINSICS_MK)
++include $(BUILD_EXECUTABLE)
++endif
+diff --git a/utils/FileCheck/Android.mk b/utils/FileCheck/Android.mk
+new file mode 100644
+index 0000000..2c211cf
+--- /dev/null
++++ b/utils/FileCheck/Android.mk
+@@ -0,0 +1,23 @@
++LOCAL_PATH:= $(call my-dir)
++
++filecheck_SRC_FILES := \
++ FileCheck.cpp
++
++filecheck_STATIC_LIBRARIES := \
++ libLLVMSupport
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := FileCheck
++LOCAL_SRC_FILES := $(filecheck_SRC_FILES)
++LOCAL_STATIC_LIBRARIES := $(filecheck_STATIC_LIBRARIES)
++LOCAL_C_INCLUDES += external/llvm/include
++LOCAL_C_INCLUDES += external/llvm/host/include
++LOCAL_LDLIBS += -lpthread -lm -ldl
++LOCAL_CFLAGS += -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS
++
++#REQUIRES_EH := 1
++#REQUIRES_RTTI := 1
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_EXECUTABLE)
+diff --git a/utils/TableGen/Android.mk b/utils/TableGen/Android.mk
+new file mode 100644
+index 0000000..8117672
+--- /dev/null
++++ b/utils/TableGen/Android.mk
+@@ -0,0 +1,58 @@
++LOCAL_PATH:= $(call my-dir)
++
++tablegen_SRC_FILES := \
++ AsmMatcherEmitter.cpp \
++ AsmWriterEmitter.cpp \
++ AsmWriterInst.cpp \
++ CallingConvEmitter.cpp \
++ CodeEmitterGen.cpp \
++ CodeGenDAGPatterns.cpp \
++ CodeGenInstruction.cpp \
++ CodeGenMapTable.cpp \
++ CodeGenRegisters.cpp \
++ CodeGenSchedule.cpp \
++ CodeGenTarget.cpp \
++ CTagsEmitter.cpp \
++ DAGISelEmitter.cpp \
++ DAGISelMatcherEmitter.cpp \
++ DAGISelMatcherGen.cpp \
++ DAGISelMatcherOpt.cpp \
++ DAGISelMatcher.cpp \
++ DFAPacketizerEmitter.cpp \
++ DisassemblerEmitter.cpp \
++ FastISelEmitter.cpp \
++ FixedLenDecoderEmitter.cpp \
++ InstrInfoEmitter.cpp \
++ IntrinsicEmitter.cpp \
++ OptParserEmitter.cpp \
++ PseudoLoweringEmitter.cpp \
++ RegisterInfoEmitter.cpp \
++ SetTheory.cpp \
++ SubtargetEmitter.cpp \
++ TableGen.cpp \
++ X86DisassemblerTables.cpp \
++ X86ModRMFilters.cpp \
++ X86RecognizableInstr.cpp
++
++include $(CLEAR_VARS)
++
++LOCAL_MODULE := tblgen
++LOCAL_MODULE_TAGS := optional
++LOCAL_SRC_FILES := $(tablegen_SRC_FILES)
++
++REQUIRES_EH := 1
++REQUIRES_RTTI := 1
++
++LOCAL_STATIC_LIBRARIES := \
++ libLLVMTableGen \
++ libLLVMSupport
++
++LOCAL_LDLIBS += -lm
++ifeq ($(HOST_OS),windows)
++ LOCAL_LDLIBS += -limagehlp -lpsapi
++else
++ LOCAL_LDLIBS += -lpthread -ldl
++endif
++
++include $(LLVM_HOST_BUILD_MK)
++include $(BUILD_HOST_EXECUTABLE)
+--
+1.9.1.423.g4596e3a
+