1LOCAL_PATH := $(call my-dir)
2LLVM_ROOT_PATH := $(LOCAL_PATH)
3
4FORCE_BUILD_LLVM_DISABLE_NDEBUG ?= false
5# Legality check: FORCE_BUILD_LLVM_DISABLE_NDEBUG should consist of one word -- either "true" or "false".
6ifneq "$(words $(FORCE_BUILD_LLVM_DISABLE_NDEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DISABLE_NDEBUG)))" "10"
7  $(error FORCE_BUILD_LLVM_DISABLE_NDEBUG may only be true, false, or unset)
8endif
9
10FORCE_BUILD_LLVM_DEBUG ?= false
11# Legality check: FORCE_BUILD_LLVM_DEBUG should consist of one word -- either "true" or "false".
12ifneq "$(words $(FORCE_BUILD_LLVM_DEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DEBUG)))" "10"
13  $(error FORCE_BUILD_LLVM_DEBUG may only be true, false, or unset)
14endif
15
16include $(CLEAR_VARS)
17
18# LLVM Libraries
19subdirs := \
20  lib/Analysis \
21  lib/AsmParser \
22  lib/Bitcode/Reader \
23  lib/Bitcode/Writer \
24  lib/ExecutionEngine \
25  lib/ExecutionEngine/RuntimeDyld \
26  lib/ExecutionEngine/MCJIT \
27  lib/ExecutionEngine/Orc \
28  lib/ExecutionEngine/Interpreter \
29  lib/Fuzzer \
30  lib/CodeGen \
31  lib/CodeGen/AsmPrinter \
32  lib/CodeGen/MIRParser \
33  lib/CodeGen/SelectionDAG \
34  lib/DebugInfo/DWARF \
35  lib/DebugInfo/PDB \
36  lib/DebugInfo/Symbolize \
37  lib/IR \
38  lib/IRReader \
39  lib/LibDriver \
40  lib/Linker \
41  lib/LTO \
42  lib/MC \
43  lib/MC/MCDisassembler \
44  lib/MC/MCParser \
45  lib/Object \
46  lib/Option \
47  lib/Passes \
48  lib/ProfileData \
49  lib/Support \
50  lib/TableGen \
51  lib/Target \
52  lib/Transforms/Hello \
53  lib/Transforms/IPO \
54  lib/Transforms/InstCombine \
55  lib/Transforms/Instrumentation \
56  lib/Transforms/ObjCARC \
57  lib/Transforms/Scalar \
58  lib/Transforms/Utils \
59  lib/Transforms/Vectorize \
60
61# ARM Code Generation Libraries
62subdirs += \
63  lib/Target/ARM \
64  lib/Target/ARM/AsmParser \
65  lib/Target/ARM/InstPrinter \
66  lib/Target/ARM/Disassembler \
67  lib/Target/ARM/MCTargetDesc \
68  lib/Target/ARM/TargetInfo
69
70# AArch64 Code Generation Libraries
71subdirs += \
72  lib/Target/AArch64  \
73  lib/Target/AArch64/AsmParser \
74  lib/Target/AArch64/InstPrinter \
75  lib/Target/AArch64/Disassembler \
76  lib/Target/AArch64/MCTargetDesc \
77  lib/Target/AArch64/TargetInfo \
78  lib/Target/AArch64/Utils
79
80# MIPS Code Generation Libraries
81subdirs += \
82  lib/Target/Mips \
83  lib/Target/Mips/AsmParser \
84  lib/Target/Mips/InstPrinter \
85  lib/Target/Mips/Disassembler \
86  lib/Target/Mips/MCTargetDesc \
87  lib/Target/Mips/TargetInfo
88
89# X86 Code Generation Libraries
90subdirs += \
91  lib/Target/X86 \
92  lib/Target/X86/AsmParser \
93  lib/Target/X86/InstPrinter \
94  lib/Target/X86/Disassembler \
95  lib/Target/X86/MCTargetDesc \
96  lib/Target/X86/TargetInfo \
97  lib/Target/X86/Utils
98
99# LLVM Command Line Tools
100subdirs += \
101  tools/bugpoint \
102  tools/bugpoint-passes \
103  tools/dsymutil \
104  tools/llc \
105  tools/lli \
106  tools/lli/ChildTarget \
107  tools/llvm-ar \
108  tools/llvm-as \
109  tools/llvm-bcanalyzer \
110  tools/llvm-c-test \
111  tools/llvm-config \
112  tools/llvm-cov \
113  tools/llvm-cxxdump \
114  tools/llvm-dis \
115  tools/llvm-diff \
116  tools/llvm-dwarfdump \
117  tools/llvm-dwp \
118  tools/llvm-extract \
119  tools/llvm-link \
120  tools/llvm-lto \
121  tools/llvm-mc \
122  tools/llvm-mcmarkup \
123  tools/llvm-nm \
124  tools/llvm-objdump \
125  tools/llvm-pdbdump \
126  tools/llvm-profdata \
127  tools/llvm-readobj \
128  tools/llvm-rtdyld \
129  tools/llvm-size \
130  tools/llvm-split \
131  tools/llvm-symbolizer \
132  tools/lto \
133  tools/gold \
134  tools/obj2yaml \
135  tools/opt \
136  tools/sancov \
137  tools/verify-uselistorder \
138  tools/yaml2obj \
139
140# LLVM Command Line Utilities
141subdirs += \
142  utils/count \
143  utils/FileCheck \
144  utils/not \
145  utils/TableGen \
146  utils/yaml-bench \
147
148include $(LOCAL_PATH)/llvm.mk
149include $(LOCAL_PATH)/shared_llvm.mk
150
151include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, $(subdirs)))
152