1LOCAL_PATH:= $(call my-dir) 2 3llvm_pre_static_libraries := \ 4 libLLVMLinker \ 5 libLLVMipo \ 6 libLLVMDebugInfoDWARF \ 7 libLLVMDebugInfoPDB \ 8 libLLVMIRReader \ 9 libLLVMBitWriter \ 10 libLLVMBitReader 11 12llvm_arm_static_libraries := \ 13 libLLVMARMCodeGen \ 14 libLLVMARMAsmParser \ 15 libLLVMARMAsmPrinter \ 16 libLLVMARMInfo \ 17 libLLVMARMDesc \ 18 libLLVMARMDisassembler 19 20llvm_x86_static_libraries := \ 21 libLLVMX86CodeGen \ 22 libLLVMX86Info \ 23 libLLVMX86Desc \ 24 libLLVMX86AsmParser \ 25 libLLVMX86AsmPrinter \ 26 libLLVMX86Utils \ 27 libLLVMX86Disassembler 28 29llvm_mips_static_libraries := \ 30 libLLVMMipsCodeGen \ 31 libLLVMMipsInfo \ 32 libLLVMMipsDesc \ 33 libLLVMMipsAsmParser \ 34 libLLVMMipsAsmPrinter \ 35 libLLVMMipsDisassembler 36 37llvm_aarch64_static_libraries := \ 38 libLLVMAArch64CodeGen \ 39 libLLVMAArch64Info \ 40 libLLVMAArch64Desc \ 41 libLLVMAArch64AsmParser \ 42 libLLVMAArch64AsmPrinter \ 43 libLLVMAArch64Utils \ 44 libLLVMAArch64Disassembler 45 46llvm_post_static_libraries := \ 47 libLLVMAsmPrinter \ 48 libLLVMSelectionDAG \ 49 libLLVMCodeGen \ 50 libLLVMObject \ 51 libLLVMScalarOpts \ 52 libLLVMInstCombine \ 53 libLLVMInstrumentation \ 54 libLLVMTransformObjCARC \ 55 libLLVMTransformUtils \ 56 libLLVMipa \ 57 libLLVMAnalysis \ 58 libLLVMTarget \ 59 libLLVMMCDisassembler \ 60 libLLVMMC \ 61 libLLVMMCParser \ 62 libLLVMCore \ 63 libLLVMAsmParser \ 64 libLLVMOption \ 65 libLLVMSupport \ 66 libLLVMVectorize \ 67 libLLVMProfileData 68 69llvm_host_static_libraries := \ 70 libLLVMExecutionEngine \ 71 libLLVMRuntimeDyld \ 72 libLLVMMCJIT \ 73 libLLVMOrcJIT 74 75ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS)) 76# HOST LLVM shared library build 77include $(CLEAR_VARS) 78LOCAL_IS_HOST_MODULE := true 79 80LOCAL_MODULE:= libLLVM 81 82LOCAL_MODULE_TAGS := optional 83 84# Host build pulls in all ARM, Mips, X86 components. 85LOCAL_WHOLE_STATIC_LIBRARIES := \ 86 $(llvm_pre_static_libraries) \ 87 $(llvm_arm_static_libraries) \ 88 $(llvm_x86_static_libraries) \ 89 $(llvm_mips_static_libraries) \ 90 $(llvm_aarch64_static_libraries) \ 91 $(llvm_host_static_libraries) \ 92 $(llvm_post_static_libraries) 93 94ifeq ($(HOST_OS),windows) 95 LOCAL_LDLIBS := -limagehlp -lpsapi 96else 97 LOCAL_LDLIBS := -ldl -lpthread 98endif 99 100include $(LLVM_HOST_BUILD_MK) 101include $(BUILD_HOST_SHARED_LIBRARY) 102endif 103 104ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH))) 105$(warning TODO $(TARGET_ARCH): Enable llvm build) 106endif 107 108ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) 109# DEVICE LLVM shared library build 110include $(CLEAR_VARS) 111 112LOCAL_MODULE:= libLLVM 113 114LOCAL_MODULE_TAGS := optional 115 116# Device build selectively pulls in ARM, Mips, X86 components. 117LOCAL_WHOLE_STATIC_LIBRARIES := \ 118 $(llvm_pre_static_libraries) 119 120LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries) 121LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries) 122LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries) 123LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries) 124LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries) 125LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries) 126LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries) 127 128ifeq ($(BUILD_ARM_FOR_X86),true) 129LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries) 130LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries) 131endif 132 133LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries) 134 135#LOCAL_LDLIBS := -ldl -lpthread 136LOCAL_SHARED_LIBRARIES := libcutils libdl libc++ 137 138include $(LLVM_DEVICE_BUILD_MK) 139include $(BUILD_SHARED_LIBRARY) 140 141endif 142