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