LOCAL_PATH:= $(call my-dir) LOCAL_MODULE_TAGS := optional # Set up common build variables # ===================================================== MCLD_C_INCLUDES := $(LOCAL_PATH)/include MCLD_SRC_FILES := \ Main.cpp MCLD_WHOLE_STATIC_LIBRARIES := \ libmcldADT \ libmcldCore \ libmcldFragment \ libmcldLD \ libmcldLDVariant \ libmcldMC \ libmcldObject \ libmcldScript \ libmcldSupport \ libmcldTarget MCLD_SHARED_LIBRARIES := libLLVM # Collect target specific code generation libraries MCLD_ARM_LIBS := libmcldARMTarget libmcldARMInfo MCLD_AARCH64_LIBS := libmcldAArch64Target libmcldAArch64Info MCLD_MIPS_LIBS := libmcldMipsTarget libmcldMipsInfo MCLD_X86_LIBS := libmcldX86Target libmcldX86Info MCLD_MODULE:= ld.mc # Executable for the device # ===================================================== include $(CLEAR_VARS) include $(CLEAR_TBLGEN_VARS) LOCAL_C_INCLUDES := $(MCLD_C_INCLUDES) LOCAL_SRC_FILES := $(MCLD_SRC_FILES) LOCAL_WHOLE_STATIC_LIBRARIES := $(MCLD_WHOLE_STATIC_LIBRARIES) # Add target specific code generation libraries ifeq ($(TARGET_ARCH), arm) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_ARM_LIBS) endif # Include ARM libs to enable 32-bit linking on AARCH64 targets ifeq ($(TARGET_ARCH), arm64) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_AARCH64_LIBS) \ $(MCLD_ARM_LIBS) endif ifneq (, $(findstring mips,$(TARGET_ARCH))) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_MIPS_LIBS) endif # Add x86 libraries for both x86 and x86_64 targets ifneq (, $(findstring x86,$(TARGET_ARCH))) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_X86_LIBS) ifeq ($(BUILD_ARM_FOR_X86),true) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_ARM_LIBS) \ $(MCLD_AARCH64_LIBS) endif endif # zlib's libnames are different for the host and target. # For the target, it is the standard libz LOCAL_SHARED_LIBRARIES := $(MCLD_SHARED_LIBRARIES) libz LOCAL_MODULE := $(MCLD_MODULE) LOCAL_MODULE_CLASS := EXECUTABLES # Build Options.inc from Options.td for the device intermediates := $(call local-generated-sources-dir) LOCAL_GENERATED_SOURCES += $(intermediates)/Options.inc $(intermediates)/Options.inc: $(LOCAL_PATH)/Options.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(LLVM_TBLGEN) $(call transform-device-td-to-out,opt-parser-defs) include $(MCLD_DEVICE_BUILD_MK) include $(BUILD_EXECUTABLE) # Executable for the host # ===================================================== include $(CLEAR_VARS) include $(CLEAR_TBLGEN_VARS) LOCAL_C_INCLUDES := $(MCLD_C_INCLUDES) LOCAL_SRC_FILES := $(MCLD_SRC_FILES) LOCAL_WHOLE_STATIC_LIBRARIES := $(MCLD_WHOLE_STATIC_LIBRARIES) LOCAL_WHOLE_STATIC_LIBRARIES += $(MCLD_ARM_LIBS) \ $(MCLD_AARCH64_LIBS) \ $(MCLD_MIPS_LIBS) \ $(MCLD_X86_LIBS) # zlib's libnames are different for the host and target. # For the host, it is libz-host LOCAL_SHARED_LIBRARIES := $(MCLD_SHARED_LIBRARIES) libz-host LOCAL_MODULE := $(MCLD_MODULE) LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_IS_HOST_MODULE := true # Build Options.inc from Options.td for the host intermediates := $(call local-generated-sources-dir) LOCAL_GENERATED_SOURCES += $(intermediates)/Options.inc $(intermediates)/Options.inc: $(LOCAL_PATH)/Options.td $(LLVM_ROOT_PATH)/include/llvm/Option/OptParser.td $(LLVM_TBLGEN) $(call transform-host-td-to-out,opt-parser-defs) include $(MCLD_HOST_BUILD_MK) include $(BUILD_HOST_EXECUTABLE)