Android.mk revision 2bf3f881f79c4d883f379e63725e788c310739a3
1LOCAL_PATH:= $(call my-dir) 2 3LOCAL_MODULE_TAGS := optional 4 5# Set up common build variables 6# ===================================================== 7 8MCLD_C_INCLUDES := $(LOCAL_PATH)/include 9 10MCLD_SRC_FILES := \ 11 Main.cpp 12 13 14MCLD_WHOLE_STATIC_LIBRARIES := \ 15 libmcldADT \ 16 libmcldCore \ 17 libmcldFragment \ 18 libmcldLD \ 19 libmcldLDVariant \ 20 libmcldMC \ 21 libmcldObject \ 22 libmcldScript \ 23 libmcldSupport \ 24 libmcldTarget 25 26MCLD_SHARED_LIBRARIES := libLLVM 27 28# Collect target specific code generation libraries 29MCLD_ARM_LIBS := libmcldARMTarget libmcldARMInfo 30MCLD_AARCH64_LIBS := libmcldAArch64Target libmcldAArch64Info 31MCLD_MIPS_LIBS := libmcldMipsTarget libmcldMipsInfo 32MCLD_X86_LIBS := libmcldX86Target libmcldX86Info 33 34MCLD_MODULE:= ld.mc 35 36# Executable for the device 37# ===================================================== 38include $(CLEAR_VARS) 39include $(CLEAR_TBLGEN_VARS) 40 41LOCAL_C_INCLUDES := $(MCLD_C_INCLUDES) 42LOCAL_SRC_FILES := $(MCLD_SRC_FILES) 43LOCAL_WHOLE_STATIC_LIBRARIES := $(MCLD_WHOLE_STATIC_LIBRARIES) 44 45# Add target specific code generation libraries 46ifeq ($(TARGET_ARCH), arm) 47 LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_ARM_LIBS) 48endif 49 50# Include ARM libs to enable 32-bit linking on AARCH64 targets 51ifeq ($(TARGET_ARCH), arm64) 52 LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_AARCH64_LIBS) \ 53 $(MCLD_ARM_LIBS) 54endif 55 56ifneq (, $(findstring mips,$(TARGET_ARCH))) 57 LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_MIPS_LIBS) 58endif 59 60# Add x86 libraries for both x86 and x86_64 targets 61ifneq (, $(findstring x86,$(TARGET_ARCH))) 62 LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_X86_LIBS) 63endif 64 65 66# zlib's libnames are different for the host and target. 67# For the target, it is the standard libz 68LOCAL_SHARED_LIBRARIES := $(MCLD_SHARED_LIBRARIES) libz 69 70LOCAL_MODULE := $(MCLD_MODULE) 71LOCAL_MODULE_CLASS := EXECUTABLES 72 73# Build Options.inc from Options.td for the device 74intermediates := $(call local-generated-sources-dir) 75LOCAL_GENERATED_SOURCES += $(intermediates)/Options.inc 76$(intermediates)/Options.inc: $(LOCAL_PATH)/Options.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(LLVM_TBLGEN) 77 $(call transform-device-td-to-out,opt-parser-defs) 78 79include $(MCLD_DEVICE_BUILD_MK) 80include $(BUILD_EXECUTABLE) 81 82# Executable for the host 83# ===================================================== 84include $(CLEAR_VARS) 85include $(CLEAR_TBLGEN_VARS) 86 87LOCAL_C_INCLUDES := $(MCLD_C_INCLUDES) 88LOCAL_SRC_FILES := $(MCLD_SRC_FILES) 89 90LOCAL_WHOLE_STATIC_LIBRARIES := $(MCLD_WHOLE_STATIC_LIBRARIES) 91LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_ARM_LIBS) \ 92 $(MCLD_AARCH64_LIBS) \ 93 $(MCLD_MIPS_LIBS) \ 94 $(MCLD_X86_LIBS) 95 96# zlib's libnames are different for the host and target. 97# For the host, it is libz-host 98LOCAL_SHARED_LIBRARIES := $(MCLD_SHARED_LIBRARIES) libz-host 99 100LOCAL_MODULE := $(MCLD_MODULE) 101LOCAL_MODULE_CLASS := EXECUTABLES 102LOCAL_IS_HOST_MODULE := true 103 104# Build Options.inc from Options.td for the host 105intermediates := $(call local-generated-sources-dir) 106LOCAL_GENERATED_SOURCES += $(intermediates)/Options.inc 107$(intermediates)/Options.inc: $(LOCAL_PATH)/Options.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(LLVM_TBLGEN) 108 $(call transform-host-td-to-out,opt-parser-defs) 109 110include $(MCLD_HOST_BUILD_MK) 111include $(BUILD_HOST_EXECUTABLE) 112