-
Notifications
You must be signed in to change notification settings - Fork 0
/
llvm-host-build.mk
81 lines (71 loc) · 1.66 KB
/
llvm-host-build.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Windows can't use Clang to build yet
ifneq ($(HOST_OS),windows)
LOCAL_CLANG := true
endif
LOCAL_CFLAGS += \
-D_GNU_SOURCE \
-D__STDC_LIMIT_MACROS \
-O2 \
-fomit-frame-pointer \
-Wall \
-W \
-Wno-unused-parameter \
-Wwrite-strings \
-Dsprintf=sprintf \
$(LOCAL_CFLAGS)
ifeq ($(LLVM_ENABLE_ASSERTION),true)
LOCAL_CFLAGS := \
$(LOCAL_CFLAGS) \
-D_DEBUG \
-UNDEBUG
endif
ifneq ($(REQUIRES_EH),1)
LOCAL_CFLAGS += -fno-exceptions
else
REQUIRES_EH := 0
LOCAL_CFLAGS += -fexceptions
endif
ifneq ($(REQUIRES_RTTI),1)
LOCAL_CPPFLAGS += -fno-rtti
else
REQUIRES_RTTI := 0
endif
LOCAL_CPPFLAGS := \
$(LOCAL_CPPFLAGS) \
-Woverloaded-virtual \
-Wno-sign-promo \
-std=c++11
# Make sure bionic is first so we can include system headers.
LOCAL_C_INCLUDES := \
$(LLVM_ROOT_PATH) \
$(LLVM_ROOT_PATH)/include \
$(LLVM_ROOT_PATH)/host/include \
$(LOCAL_C_INCLUDES)
# Add on ncurses to have support for terminfo
ifneq ($(HOST_OS),windows)
LOCAL_LDLIBS += -lncurses
ifneq ($(HOST_OS),darwin)
LOCAL_LDLIBS += -lgcc_s
endif
endif
LOCAL_IS_HOST_MODULE := true
ifeq ($(HOST_PREFER_32_BIT),true)
LOCAL_MULTILIB := 32
else
LOCAL_MULTILIB := first
endif
###########################################################
## Commands for running tblgen to compile a td file
###########################################################
define transform-host-td-to-out
@mkdir -p $(dir $@)
@echo "Host TableGen: $(TBLGEN_LOCAL_MODULE) (gen-$(1)) <= $<"
$(hide) $(LLVM_TBLGEN) \
-I $(dir $<) \
-I $(LLVM_ROOT_PATH)/include \
-I $(LLVM_ROOT_PATH)/host/include \
-I $(LLVM_ROOT_PATH)/lib/Target \
$(if $(strip $(CLANG_ROOT_PATH)),-I $(CLANG_ROOT_PATH)/include,) \
-gen-$(strip $(1)) \
-o $@ $<
endef