1150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5LoganLOCAL_PATH:= $(call my-dir)
2150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
3150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan# For the host only
4150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan# =====================================================
5150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganinclude $(CLEAR_VARS)
6150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganinclude $(CLEAR_TBLGEN_VARS)
7150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
8ac774a74e9ac234cb38c90ede73b337a8b1a629dLoganLOCAL_MODULE := clang
9150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
10b2dad2eb089019c73935e568087a03be1653d140LoganLOCAL_MODULE_CLASS := EXECUTABLES
11b2dad2eb089019c73935e568087a03be1653d140Logan
12150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5LoganTBLGEN_TABLES := \
13150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  DiagnosticCommonKinds.inc \
14150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  DiagnosticDriverKinds.inc \
15150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  DiagnosticFrontendKinds.inc \
16150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  CC1Options.inc \
17150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  CC1AsOptions.inc
18150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
19150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganclang_SRC_FILES := \
20150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  cc1_main.cpp \
21150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  cc1as_main.cpp \
22150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  driver.cpp
23150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
24150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5LoganLOCAL_SRC_FILES := $(clang_SRC_FILES)
25150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
26150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5LoganLOCAL_STATIC_LIBRARIES := \
27150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangFrontendTool \
28150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangFrontend \
298f00e2be0e639dcacb2719f34b24d5387fe32f93Shih-wei Liao  libclangARCMigrate \
30150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangDriver \
31150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangSerialization \
32150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangCodeGen \
33e5cc4c967178669dd19832bc0fb03b293d5d969fStephen Hines  libclangRewriteFrontend \
34e5cc4c967178669dd19832bc0fb03b293d5d969fStephen Hines  libclangRewriteCore \
35150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangParse \
36150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangSema \
37d271e4b0c6c42a0e670226e697963df427e35a56Logan Chien  libclangStaticAnalyzerFrontend \
38d271e4b0c6c42a0e670226e697963df427e35a56Logan Chien  libclangStaticAnalyzerCheckers \
39d271e4b0c6c42a0e670226e697963df427e35a56Logan Chien  libclangStaticAnalyzerCore \
40150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangAnalysis \
41560ad31c413724fafd13d6fd723e403f28daa132Shih-wei Liao  libclangEdit \
42150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangAST \
43150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangLex \
44150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libclangBasic \
45150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMARMAsmParser \
46150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMARMCodeGen \
4779525fbe7b9bdf64a79a8d20cff2147702eae738Stephen Hines  libLLVMARMAsmPrinter \
48150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMARMDisassembler \
490a9399c6726563f480537649e6f28da5186c4b78Nowar Gu  libLLVMARMDesc \
5050b2af40295eadba516c5e85ec1bb3443d64aae3Logan Chien  libLLVMARMInfo \
51cb9b577d473e0af82e3fadf0c7b85cd04b3018a7Logan Chien  libLLVMMipsAsmParser \
5250b2af40295eadba516c5e85ec1bb3443d64aae3Logan Chien  libLLVMMipsCodeGen \
53cb9b577d473e0af82e3fadf0c7b85cd04b3018a7Logan Chien  libLLVMMipsDisassembler \
5450b2af40295eadba516c5e85ec1bb3443d64aae3Logan Chien  libLLVMMipsAsmPrinter \
5550b2af40295eadba516c5e85ec1bb3443d64aae3Logan Chien  libLLVMMipsDesc \
5650b2af40295eadba516c5e85ec1bb3443d64aae3Logan Chien  libLLVMMipsInfo \
57150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMX86Info \
58150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMX86AsmParser \
59150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMX86CodeGen \
60150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMX86Disassembler \
610a9399c6726563f480537649e6f28da5186c4b78Nowar Gu  libLLVMX86Desc \
62fe6bd6dc51777802a0118521b9039981a0e6a806Logan Chien  libLLVMX86AsmPrinter \
63d271e4b0c6c42a0e670226e697963df427e35a56Logan Chien  libLLVMX86Utils \
644652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64Info \
654652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64AsmParser \
664652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64CodeGen \
674652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64Disassembler \
684652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64Desc \
694652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64AsmPrinter \
704652e307dc8fc772d0df8c6c434613884fe0feecStephen Hines  libLLVMAArch64Utils \
71b491e684395ee19123abdd73b75776fea966d8cfStephen Hines  libLLVMIRReader \
72150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMAsmParser \
73150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMAsmPrinter \
74150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMBitReader \
75150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMBitWriter \
76150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMSelectionDAG \
77fe6bd6dc51777802a0118521b9039981a0e6a806Logan Chien  libLLVMipo \
78fe6bd6dc51777802a0118521b9039981a0e6a806Logan Chien  libLLVMipa \
79150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMInstCombine \
800c115a16d479c7cda12c66bceb3782fd45177481Nowar Gu  libLLVMInstrumentation \
81150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMCodeGen \
823a936caf79bc7448ac5ec60c14faeb87c74e5392Stephen Hines  libLLVMObject \
83150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMLinker \
84150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMMC \
85150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMMCParser \
86150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMScalarOpts \
87bd3aca04d304b9f31240b94af0aad818f6f932abStephen Hines  libLLVMTransformObjCARC \
88150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMTransformUtils \
89361035524dc26094825134f30c07311f38f4f8b1Stephen Hines  libLLVMVectorize \
90150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMAnalysis \
91150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMCore \
92a902511dd22624b15cc61e36d167d1cf3549bc74Stephen Hines  libLLVMOption \
93150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan  libLLVMSupport \
946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  libLLVMTarget \
956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  libLLVMProfileData \
966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  libLLVMObject
97150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
98177982bea7e4ccffd2577c8f63a5872eebebe54bStephen HinesLOCAL_LDLIBS += -lm
99177982bea7e4ccffd2577c8f63a5872eebebe54bStephen Hinesifdef USE_MINGW
100177982bea7e4ccffd2577c8f63a5872eebebe54bStephen HinesLOCAL_LDLIBS += -limagehlp
101177982bea7e4ccffd2577c8f63a5872eebebe54bStephen Hineselse
102177982bea7e4ccffd2577c8f63a5872eebebe54bStephen HinesLOCAL_LDLIBS += -lpthread -ldl
103177982bea7e4ccffd2577c8f63a5872eebebe54bStephen Hinesendif
104150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Logan
105150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganinclude $(CLANG_HOST_BUILD_MK)
106150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganinclude $(CLANG_TBLGEN_RULES_MK)
107150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5Loganinclude $(BUILD_HOST_EXECUTABLE)
108952626a19a1c58e405be194854566b76a35b6063Andrew Hsieh
109ce5d5dc827d36f09a1df7d1bec48b0bb429d6afaStephen Hinesifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
110e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying Wang# Make sure if clang (i.e. $(LOCAL_MODULE)) get installed,
111e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying Wang# clang++ will get installed as well.
112e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying WangALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
113e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying Wang    $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(CLANG_CXX)
114e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying Wang# the additional dependency is needed when you run mm/mmm.
11517fe6b86205261afc93f7689a73da21a83e0cc65Tim Murray$(LOCAL_MODULE) : $(CLANG_CXX)
116ef8225444452a1486bd721f3285301fe84643b00Stephen HinesCLANG_ARM_NEON_H := $(TARGET_OUT_HEADERS)/clang/arm_neon.h
117ef8225444452a1486bd721f3285301fe84643b00Stephen Hines$(LOCAL_MODULE) : $(CLANG_ARM_NEON_H)
118e7ea4e58ac544083d9052b1a7f8aabec750afac3Ying Wang
119952626a19a1c58e405be194854566b76a35b6063Andrew Hsieh# Symlink for clang++
12017fe6b86205261afc93f7689a73da21a83e0cc65Tim Murray$(CLANG_CXX) : $(LOCAL_INSTALLED_MODULE)
121952626a19a1c58e405be194854566b76a35b6063Andrew Hsieh	@echo "Symlink $@ -> $<"
122952626a19a1c58e405be194854566b76a35b6063Andrew Hsieh	$(hide) ln -sf $(notdir $<) $@
123ce5d5dc827d36f09a1df7d1bec48b0bb429d6afaStephen Hinesendif
124