forked from ParkHanbum/dex2ir
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
165 lines (126 loc) · 5.48 KB
/
Makefile
File metadata and controls
165 lines (126 loc) · 5.48 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
srcdir := $(CURDIR)
objdir := $(CURDIR)
# must declare at here before include common_build
# start of image reserved address space
LIBART_IMG_HOST_BASE_ADDRESS := 0x60000000
LIBART_IMG_TARGET_BASE_ADDRESS := 0x70000000
include art/build/Android.common.mk
GENERATOR := $(srcdir)/art/tools/generate-operator-out.py
ART_C_INCLUDES := \
external/gtest/include \
external/valgrind/main/include \
external/valgrind/main \
external/vixl/src \
external/zlib \
frameworks/compile/mclinker/include
FRAMEWORKS_BASE := $(srcdir)/frameworks
MCLINKER_BASE := $(FRAMEWORKS_BASE)/compile/mclinker
MCLINKER_HDRS := $(MCLINKER_BASE)/include
LIBRUNTIME_BASE := $(srcdir)/art/runtime
LIBRUNTIME_HDRS := $(LIBRUNTIME_BASE)
MIRROR_HDRS := $(LIBRUNTIME_BASE)/mirror
BASE_HDRS := $(LIBRUNTIME_BASE)/base
LIBRUNTIME_ARCHIVE := $(LIBRUNTIME_BASE)/libart.a
LIBARTC_BASE := $(srcdir)/art/compiler
LIBARTC_HDRS := $(srcdir)/art/compiler
LIBARTC_ARCHIVE := $(LIBARTC_BASE)/libartc.a
EXTERNAL_BASE := $(srcdir)/external
LIBLLVM_BASE := $(EXTERNAL_BASE)/llvm
LIBLLVM_HDRS := $(LIBLLVM_BASE)/include
LIBVALGRIND_BASE := $(srcdir)/external/valgrind
LIBVALGRIND_HDRS := $(LIBVALGRIND_BASE)/main/include
LIBVALGRIND_MAIN := $(LIBVALGRIND_BASE)/main
LIBVALGRIND_SUB_HDRS := $(LIBVALGRIND_MAIN)
GTEST_BASE := $(srcdir)/external/gtest
GTEST_HDRS := $(GTEST_BASE)/include
VIXL_BASE := $(srcdir)/external/vixl
VIXL_HDRS := $(VIXL_BASE)/src
LIBZLIB_BASE := $(srcdir)/external/zlib
LIBZLIB_HDRS := $(LIBZLIB_BASE)
SYSTEM_CORE_BASE := $(srcdir)/system/core
SYSTEM_CORE_HDRS := $(SYSTEM_CORE_BASE)/include
LIBCUTILS_BASE := $(SYSTEM_CORE_BASE)/libcutils
LIBCUTILS_HDRS := $(LIBCUTILS_BASE)
CUTILS_BASE := $(SYSTEM_CORE_HDRS)/cutils
CUTILS_HDRS := $(CUTILS_BASE)
LIBSIGCHAIN_BASE := $(srcdir)/art/sigchainlib
LIBSIGCHAIN_HDRS := $(LIBSIGCHAIN_BASE)
GLOBAL_CONFIG := $(srcdir)/build/core/combo/include/arch/linux-x86/
#LLVM_CONFIG?=$(srcdir)/external/llvm/build/bin/llvm-config
LLVM_CONFIG?=llvm-config
LLVM_LDFLAGS+=$(shell $(LLVM_CONFIG) --ldflags --libs)
LLVM_CXXFLAGS+=$(shell $(LLVM_CONFIG) --cxxflags)
LLVM_CPPFLAGS+=$(shell $(LLVM_CONFIG) --cppflags) -I$(SRC_DIR)
CXX := clang
CXXFLAGS += -I$(LIBVALGRIND_HDRS) -I$(LIBVALGRIND_MAIN) -I$(GTEST_HDRS) -I$(VIXL_HDRS)
CXXFLAGS += -I$(SYSTEM_CORE_HDRS) -I$(LIBCUTILS_HDRS) -I$(CUTILS_HDRS)
CXXFLAGS += -I$(MCLINKER_HDRS)
# this flags are come from art_debug_cflags
CXXFLAGS += -O0 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -UNDEBUG
CXXFLAGS += -std=gnu++11 -ggdb3 -Wextra -Wno-sign-promo -w
CXXFLAGS += -Wno-unused-parameter -Wstrict-aliasing -fstrict-aliasing
CXXFLAGS += -DART_USE_PARTABLE_COMPILER=1 -DIMT_SIZE=64 -DANDROID_SMP=0
CXXFLAGS += -DUSE_DLMALLOC -DIMT_SIZE=64
#CXXFLAGS += -DART_SEA_IR_MODE
# change instruction set to div if target arch is cortext a7,a15,krait,denver
CXXFLAGS += -DART_DEFAUlT_INSTRUCTION_SET_FEATURES=default
CXXFLAGS += -Wframe-larger-than=1728
CXXFLAGS += -DART_DEFAULT_GC_TYPE_IS_SS -DART_USE_BACKGROUND_COMPACT
CXXFLAGS += -D_FILE_OFFSET_BITS=64
CXXFLAGS += $(ART_HOST_CFLAGS)
CXXFLAGS += -include $(srcdir)/build/core/combo/include/arch/linux-x86/AndroidConfig.h
LDFLAGS := -lpthread -ldl -lm -lstdc++
include $(srcdir)/Makefile.include
export CXXFLAGS LLVM_CXXFLAGS
export LIBNATIVEHELPER_HDRS LIBRUNTIME_HDRS
export LIBVALGRIND_HDRS LIBVALGRIND_MAIN GTEST_HDRS VIXL_HDRS
export SYSTEM_CORE_HDRS LIBCUTILS_HDRS CUTILS_HDRS
export MCLINKER_HDRS
export LIBLLVM_HDRS MIRROR_HDRS BASE_HDRS
export LIBSIGCHAIN_HDRS LIBVALGRIND_HDRS
export ANDROID_CONFIG_CXXFLAGS
export srcdir objdir CXX CXXFLAGS GENERATOR
export ANDROID_HDRS LIBZIPARCHIVE_HDRS LIBARTPALETTE_HDRS JNI_HDRS
export LIBCUTILS_HDRS LIBUTILS_HDRS LIBUTILS_HDRS
export LIBC_HDRS LIBLOG_HDRS LIBCUTILS_HDRS LIBUTILS_HDRS
export LIBZIPARCHIVE_BASE LIBARTBASE_BASE LIBNATIVEHELPER_HDRS
export LIBZLIB_HDRS
export LIBARTC_ARCHIVE LIBRUNTIME_ARCHIVE
LIBVIXL_BASE := $(srcdir)/external/vixl
LIBVIXL_ARCHIVE := $(LIBVIXL_BASE)/libvixl.a
export LIBVIXL_BASE LIBVIXL_ARCHIVE
LIBCORE_BASE := $(srcdir)/libcore
LIBCORE_HDRS := $(LIBCORE_BASE)
LIBNATIVEHELPER_BASE := $(srcdir)/libnativehelper
LIBNATIVEHELPER_HDRS := $(LIBNATIVEHELPER_BASE)/include/nativehelper
LIBNATIVEHELPER_ARCHIVE := $(LIBNATIVEHELPER_BASE)/libnative.a
export LIBNATIVEHELPER_BASE LIBNATIVEHELPER_HDRS LIBNATIVEHELPER_ARCHIVE
export LIBCORE_HDRS
LIBLOG_BASE := $(srcdir)/system/core/liblog
LIBLOG_ARCHIVE := $(LIBLOG_BASE)/liblog.a
export SYSTEM_CORE_BASE SYSTEM_CORE_HDRS LIBLOG_ARCHIVE
DEX2IR_SRCS := $(srcdir)/dex2oat.cc
DEX2IR_OBJS := $(patsubst $(srcdir)/%.cc,$(objdir)/%.op,$(DEX2IR_SRCS))
DEX2IR_CXXFLAGS := -I$(LIBRUNTIME_HDRS) -I$(LIBNATIVEHELPER_HDRS) -I$(LIBARTC_HDRS)
DEX2IR_CXXFLAGS += -I$(SYSTEM_CORE_HDRS) -I$(LIBVALGRIND_HDRS) -I$(LIBVALGRIND_SUB_HDRS)
DEX2IR_CXXFLAGS += -D_FILE_OFFSET_BITS=64 -std=c++11
all: $(LIBLOG_ARCHIVE) $(LIBNATIVEHELPER_ARCHIVE) $(LIBRUNTIME_ARCHIVE) $(LIBARTC_ARCHIVE) $(LIBVIXL_ARCHIVE) dex2ir
$(LIBLOG_ARCHIVE):
@$(MAKE) -C $(LIBLOG_BASE)
$(LIBNATIVEHELPER_ARCHIVE):
@$(MAKE) -C $(LIBNATIVEHELPER_BASE)
$(LIBVIXL_ARCHIVE):
@$(MAKE) -C $(LIBVIXL_BASE)
$(LIBRUNTIME_ARCHIVE):
@$(MAKE) -C $(LIBRUNTIME_BASE)
$(LIBARTC_ARCHIVE):
@$(MAKE) -C $(LIBARTC_BASE)
$(DEX2IR_OBJS):
$(CXX) -c $(@:.op=.cc) -o $@ $(DEX2IR_CXXFLAGS) $(LLVM_CXXFLAGS)
dex2ir: $(DEX2IR_OBJS) $(LIBRUNTIME_ARCHIVE) $(LIBARTC_ARCHIVE) $(LIBVIXL_ARCHIVE) $(LIBNATIVEHELPER_ARCHIVE) $(LIBLOG_ARCHIVE)
$(QUIET_CXX)$(CXX) -o $@ $^ $(LLVM_CXXFLAGS) $(LDFLAGS) $(LLVM_LDFLAGS)
clean:
@$(MAKE) -C $(LIBRUNTIME_BASE) clean
@$(MAKE) -C $(LIBARTC_BASE) clean
rm -f $(objdir)/*.op
rm -f dex2ir