include $(CLEAR_VARS)
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
- lib/Support \
- utils/TableGen \
- tools/llvm-as \
- tools/llvm-link \
- lib/VMCore \
- lib/Bitcode/Reader \
- lib/Bitcode/Writer \
- lib/Analysis \
- lib/Analysis/IPA \
- lib/AsmParser \
- lib/Transforms/IPO \
- lib/Transforms/Utils \
- lib/Transforms/Scalar \
- lib/Transforms/InstCombine \
- lib/Transforms/Instrumentation \
- lib/CodeGen \
- lib/CodeGen/SelectionDAG \
- lib/CodeGen/AsmPrinter \
- lib/Target \
- lib/Target/ARM \
- lib/Target/ARM/AsmParser \
- lib/Target/ARM/InstPrinter \
- lib/Target/ARM/Disassembler \
- lib/Target/ARM/MCTargetDesc \
- lib/Target/ARM/TargetInfo \
- 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 \
- lib/ExecutionEngine/JIT \
- lib/MC \
- lib/MC/MCParser \
- lib/Linker \
- ))
+ lib/Analysis \
+ lib/Analysis/IPA \
+ lib/AsmParser \
+ lib/Bitcode/Reader \
+ lib/Bitcode/Writer \
+ lib/ExecutionEngine/JIT \
+ lib/CodeGen \
+ lib/CodeGen/AsmPrinter \
+ lib/CodeGen/SelectionDAG \
+ lib/Linker \
+ lib/MC \
+ lib/MC/MCParser \
+ lib/Support \
+ lib/Target \
+ lib/Target/ARM \
+ lib/Target/ARM/AsmParser \
+ lib/Target/ARM/InstPrinter \
+ lib/Target/ARM/Disassembler \
+ lib/Target/ARM/MCTargetDesc \
+ lib/Target/ARM/TargetInfo \
+ 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 \
+ lib/Transforms/IPO \
+ lib/Transforms/InstCombine \
+ lib/Transforms/Instrumentation \
+ lib/Transforms/Scalar \
+ lib/Transforms/Utils \
+ lib/VMCore \
+ utils/TableGen \
+ tools/llvm-as \
+ tools/llvm-link \
+ ))
include $(LOCAL_PATH)/llvm.mk
#include "llvm/CodeGen/GCs.h"
#include <cstdlib>
+#ifndef ANDROID_TARGET_BUILD
namespace {
struct ForceAsmWriterLinking {
ForceAsmWriterLinking() {
}
} ForceAsmWriterLinking; // Force link by creating a global definition.
}
+#endif
#endif // LLVM_CODEGEN_LINKALLASMWRITERCOMPONENTS_H
LOCAL_PATH:= $(call my-dir)
-analysis_SRC_FILES := \
- AliasAnalysis.cpp \
- AliasAnalysisCounter.cpp \
- AliasAnalysisEvaluator.cpp \
- AliasDebugger.cpp \
- AliasSetTracker.cpp \
- Analysis.cpp \
- BasicAliasAnalysis.cpp \
- BlockFrequency.cpp \
- BranchProbabilityInfo.cpp \
- CFGPrinter.cpp \
- CaptureTracking.cpp \
- ConstantFolding.cpp \
- DIBuilder.cpp \
- DbgInfoPrinter.cpp \
- DebugInfo.cpp \
- DominanceFrontier.cpp \
- DomPrinter.cpp \
- IVUsers.cpp \
- InlineCost.cpp \
- InstCount.cpp \
- InstructionSimplify.cpp \
- Interval.cpp \
- IntervalPartition.cpp \
- LazyValueInfo.cpp \
- LibCallAliasAnalysis.cpp \
- LibCallSemantics.cpp \
- Loads.cpp \
- NoAliasAnalysis.cpp \
- MemDepPrinter.cpp \
- MemoryBuiltins.cpp \
- MemoryDependenceAnalysis.cpp \
- RegionPass.cpp \
- LoopDependenceAnalysis.cpp \
- LoopInfo.cpp \
- LoopPass.cpp \
- PathNumbering.cpp \
- PathProfileInfo.cpp \
- PathProfileVerifier.cpp \
- PHITransAddr.cpp \
- PostDominators.cpp \
- ProfileEstimatorPass.cpp \
- ProfileInfo.cpp \
- ProfileInfoLoader.cpp \
- ProfileInfoLoaderPass.cpp \
- ProfileVerifierPass.cpp \
- ScalarEvolution.cpp \
- ScalarEvolutionAliasAnalysis.cpp \
- ScalarEvolutionExpander.cpp \
- ScalarEvolutionNormalization.cpp \
- SparsePropagation.cpp \
- Trace.cpp \
- TypeBasedAliasAnalysis.cpp \
- ValueTracking.cpp
+analysis_SRC_FILES := \
+ AliasAnalysis.cpp \
+ AliasAnalysisCounter.cpp \
+ AliasAnalysisEvaluator.cpp \
+ AliasDebugger.cpp \
+ AliasSetTracker.cpp \
+ Analysis.cpp \
+ BasicAliasAnalysis.cpp \
+ BlockFrequency.cpp \
+ BranchProbabilityInfo.cpp \
+ CFGPrinter.cpp \
+ CaptureTracking.cpp \
+ ConstantFolding.cpp \
+ DIBuilder.cpp \
+ DbgInfoPrinter.cpp \
+ DebugInfo.cpp \
+ DominanceFrontier.cpp \
+ DomPrinter.cpp \
+ IVUsers.cpp \
+ InlineCost.cpp \
+ InstCount.cpp \
+ InstructionSimplify.cpp \
+ Interval.cpp \
+ IntervalPartition.cpp \
+ LazyValueInfo.cpp \
+ LibCallAliasAnalysis.cpp \
+ LibCallSemantics.cpp \
+ Loads.cpp \
+ NoAliasAnalysis.cpp \
+ MemDepPrinter.cpp \
+ MemoryBuiltins.cpp \
+ MemoryDependenceAnalysis.cpp \
+ RegionInfo.cpp \
+ RegionPass.cpp \
+ RegionPrinter.cpp \
+ Lint.cpp \
+ LoopDependenceAnalysis.cpp \
+ LoopInfo.cpp \
+ LoopPass.cpp \
+ ModuleDebugInfoPrinter.cpp \
+ PathNumbering.cpp \
+ PathProfileInfo.cpp \
+ PathProfileVerifier.cpp \
+ PHITransAddr.cpp \
+ PostDominators.cpp \
+ ProfileEstimatorPass.cpp \
+ ProfileInfo.cpp \
+ ProfileInfoLoader.cpp \
+ ProfileInfoLoaderPass.cpp \
+ ProfileVerifierPass.cpp \
+ ScalarEvolution.cpp \
+ ScalarEvolutionAliasAnalysis.cpp \
+ ScalarEvolutionExpander.cpp \
+ ScalarEvolutionNormalization.cpp \
+ SparsePropagation.cpp \
+ Trace.cpp \
+ TypeBasedAliasAnalysis.cpp \
+ ValueTracking.cpp
# For the host
# =====================================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := \
- $(analysis_SRC_FILES) \
- Lint.cpp \
- ModuleDebugInfoPrinter.cpp \
- RegionInfo.cpp \
- RegionPrinter.cpp
-
LOCAL_MODULE:= libLLVMAnalysis
-
LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(analysis_SRC_FILES)
include $(LLVM_HOST_BUILD_MK)
include $(LLVM_GEN_INTRINSICS_MK)
# =====================================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(analysis_SRC_FILES)
-
LOCAL_MODULE:= libLLVMAnalysis
-
LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(analysis_SRC_FILES)
include $(LLVM_DEVICE_BUILD_MK)
include $(LLVM_GEN_INTRINSICS_MK)
LOCAL_PATH := $(call my-dir)
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
-include $(CLEAR_TBLGEN_VARS)
+#===---------------------------------------------------------------===
+# libARMAsmParser (common)
+#===---------------------------------------------------------------===
-TBLGEN_TABLES := \
- ARMGenInstrInfo.inc \
- ARMGenRegisterInfo.inc \
- ARMGenAsmMatcher.inc \
- ARMGenSubtargetInfo.inc
+arm_asm_parser_SRC_FILES := \
+ ARMAsmLexer.cpp \
+ ARMAsmParser.cpp
+arm_asm_parser_TBLGEN_TABLES := \
+ ARMGenInstrInfo.inc \
+ ARMGenRegisterInfo.inc \
+ ARMGenAsmMatcher.inc \
+ ARMGenSubtargetInfo.inc
-TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+arm_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
-LOCAL_SRC_FILES := \
- ARMAsmLexer.cpp \
- ARMAsmParser.cpp
+arm_asm_parser_C_INCLUDES := $(LOCAL_PATH)/..
-LOCAL_C_INCLUDES += \
- $(LOCAL_PATH)/..
-LOCAL_MODULE:= libLLVMARMAsmParser
+#===---------------------------------------------------------------===
+# 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)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+
+#===---------------------------------------------------------------===
+# libARMAsmParser (target)
+#===---------------------------------------------------------------===
+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)
LOCAL_PATH:= $(call my-dir)
+instrumentation_SRC_FILES := \
+ EdgeProfiling.cpp \
+ GCOVProfiling.cpp \
+ Instrumentation.cpp \
+ ProfilingUtils.cpp \
+ PathProfiling.cpp \
+ OptimalEdgeProfiling.cpp
+
# For the host
# =====================================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := \
- EdgeProfiling.cpp \
- GCOVProfiling.cpp \
- Instrumentation.cpp \
- ProfilingUtils.cpp \
- PathProfiling.cpp \
- OptimalEdgeProfiling.cpp
-
LOCAL_MODULE:= libLLVMInstrumentation
-
LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
include $(LLVM_HOST_BUILD_MK)
include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= libLLVMInstrumentation
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(BUILD_STATIC_LIBRARY)
--- /dev/null
+LOCAL_PATH := $(call my-dir)
+
+LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
+
+
+#===---------------------------------------------------------------===
+# llc command line tool (common)
+#===---------------------------------------------------------------===
+
+llvm_llc_SRC_FILES := \
+ llc.cpp
+
+llvm_llc_STATIC_LIBRARIES := \
+ libLLVMARMCodeGen \
+ libLLVMARMDisassembler \
+ libLLVMARMAsmParser \
+ libLLVMARMDesc \
+ libLLVMARMInfo \
+ libLLVMAsmPrinter \
+ libLLVMAsmParser \
+ libLLVMBitReader \
+ libLLVMBitWriter \
+ libLLVMSelectionDAG \
+ libLLVMInstCombine \
+ libLLVMInstrumentation \
+ libLLVMCodeGen \
+ libLLVMipo \
+ libLLVMipa \
+ libLLVMLinker \
+ libLLVMMC \
+ libLLVMMCParser \
+ libLLVMScalarOpts \
+ libLLVMTransformUtils \
+ libLLVMAnalysis \
+ libLLVMCore \
+ libLLVMSupport \
+ libLLVMTarget
+
+
+#===---------------------------------------------------------------===
+# 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 := \
+ libLLVMX86Info \
+ libLLVMX86AsmParser \
+ libLLVMX86CodeGen \
+ libLLVMX86Disassembler \
+ libLLVMX86AsmPrinter \
+ libLLVMX86Desc \
+ libLLVMX86Utils \
+ $(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)
+#===---------------------------------------------------------------===
+
+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 := $(llvm_llc_STATIC_LIBRARIES)
+LOCAL_SHARED_LIBRARIES := \
+ libdl \
+ libstlport
+
+
+include $(LLVM_ROOT_PATH)/llvm.mk
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_EXECUTABLE)
LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
+llvm_link_SRC_FILES := \
+ llvm-link.cpp
-LOCAL_SRC_FILES := \
- llvm-link.cpp
+llvm_link_STATIC_LIBRARIES := \
+ libLLVMLinker \
+ libLLVMBitReader \
+ libLLVMBitWriter \
+ libLLVMCore \
+ libLLVMSupport \
+ libLLVMAsmParser \
+ libLLVMTransformUtils
-LOCAL_STATIC_LIBRARIES := \
- libLLVMLinker \
- libLLVMBitReader \
- libLLVMBitWriter \
- libLLVMCore \
- libLLVMSupport \
- libLLVMAsmParser \
- libLLVMTransformUtils
+#===---------------------------------------------------------------===
+# llvm-link command line tool (host)
+#===---------------------------------------------------------------===
-LOCAL_MODULE := llvm-link
+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)
+#===---------------------------------------------------------------===
+
+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 := \
+ libstlport
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(BUILD_EXECUTABLE)
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
+LOCAL_PATH := $(call my-dir)
-LOCAL_MODULE := opt
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := EXECUTABLES
+LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
-LOCAL_SRC_FILES := \
+
+#===---------------------------------------------------------------===
+# opt command line tool (common)
+#===---------------------------------------------------------------===
+
+llvm_opt_SRC_FILES := \
AnalysisWrappers.cpp \
GraphPrinters.cpp \
PrintSCC.cpp \
opt.cpp
-LOCAL_STATIC_LIBRARIES := \
+llvm_opt_STATIC_LIBRARIES := \
libLLVMipo \
libLLVMScalarOpts \
libLLVMInstCombine \
libLLVMCore \
libLLVMSupport
-LOCAL_LDLIBS += -lpthread -lm -ldl
+#===---------------------------------------------------------------===
+# 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)
+#===---------------------------------------------------------------===
+
+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 := \
+ libdl \
+ libstlport
+
+
+include $(LLVM_ROOT_PATH)/llvm.mk
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_EXECUTABLE)