diff options
Diffstat (limited to 'patches/0004-Add-Android-makefiles-for-LLVM.patch')
-rw-r--r-- | patches/0004-Add-Android-makefiles-for-LLVM.patch | 4628 |
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 + |