1LOCAL_MODULE_TARGET_ARCH := $(LLVM_SUPPORTED_ARCH)
2
3LOCAL_CLANG := true
4
5LOCAL_CFLAGS :=	\
6	-D_GNU_SOURCE	\
7	-D__STDC_LIMIT_MACROS	\
8	-D__STDC_CONSTANT_MACROS	\
9	-D__STDC_FORMAT_MACROS	\
10	-O2	\
11	-fomit-frame-pointer	\
12	-Wall	\
13	-W	\
14	-Wno-unused-parameter	\
15	-Wwrite-strings	\
16        -Dsprintf=sprintf \
17	$(LOCAL_CFLAGS)
18
19# The three inline options together reduce libbcc.so almost 1MB.
20# We move them from global build/core/combo/TARGET_linux-arm.mk
21# to here.
22LOCAL_CFLAGS := -DANDROID_TARGET_BUILD \
23		-finline-functions \
24		$(LOCAL_CFLAGS)
25
26ifeq ($(TARGET_BUILD_VARIANT),eng)
27LOCAL_CFLAGS := -DANDROID_ENGINEERING_BUILD \
28                $(LOCAL_CFLAGS)
29endif
30
31ifeq ($(LLVM_ENABLE_ASSERTION),true)
32LOCAL_CFLAGS :=	\
33	$(LOCAL_CFLAGS) \
34	-D_DEBUG	\
35	-UNDEBUG
36endif
37
38ifneq ($(REQUIRES_EH),1)
39LOCAL_CFLAGS +=	-fno-exceptions
40else
41# No action. The device target should not have exception enabled since bionic
42# doesn't support it
43REQUIRES_EH := 0
44endif
45
46ifneq ($(REQUIRES_RTTI),1)
47LOCAL_CPPFLAGS +=	-fno-rtti
48else
49REQUIRES_RTTI := 0
50endif
51
52LOCAL_CPPFLAGS :=	\
53	$(LOCAL_CPPFLAGS)	\
54	-Woverloaded-virtual	\
55	-Wno-sign-promo         \
56	-std=c++11
57
58# Make sure bionic is first so we can include system headers.
59LOCAL_C_INCLUDES :=	\
60	bionic \
61	external/libcxx/include \
62	$(LLVM_ROOT_PATH)	\
63	$(LLVM_ROOT_PATH)/include	\
64	$(LLVM_ROOT_PATH)/device/include	\
65	$(LOCAL_C_INCLUDES)
66
67include external/libcxx/libcxx.mk
68
69###########################################################
70## Commands for running tblgen to compile a td file
71###########################################################
72define transform-device-td-to-out
73@mkdir -p $(dir $@)
74@echo "Device TableGen (gen-$(1)): $(TBLGEN_LOCAL_MODULE) <= $<"
75$(hide) $(LLVM_TBLGEN) \
76	-I $(dir $<)	\
77	-I $(LLVM_ROOT_PATH)/include	\
78	-I $(LLVM_ROOT_PATH)/device/include	\
79	-I $(LLVM_ROOT_PATH)/lib/Target	\
80    -gen-$(strip $(1)) \
81    -o $@ $<
82endef
83