Android.common.mk revision 24782c6aa7abf396de057d7eb15035b4c594a3b4
1#
2# Copyright (C) 2011 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17# art-cache
18ART_CACHE_DIR := /data/art-cache
19ART_CACHE_OUT := $(TARGET_OUT_DATA)/art-cache
20
21# directory used for tests on device
22ART_TEST_DIR := /data/art-test
23ART_TEST_OUT := $(TARGET_OUT_DATA)/art-test
24
25ART_CPP_EXTENSION := .cc
26
27ART_C_INCLUDES := \
28	external/gtest/include \
29	external/icu4c/common \
30	external/icu4c/i18n \
31	external/valgrind/dynamic_annotations \
32	external/zlib \
33	art/src \
34	dalvik/libdex
35
36art_cflags := \
37	-O2 \
38	-ggdb3 \
39	-Wall \
40	-Werror \
41	-Wextra \
42	-Wno-unused-parameter \
43	-Wstrict-aliasing=3 \
44	-fno-align-jumps \
45	-fstrict-aliasing
46
47ifeq ($(HOST_OS),linux)
48  art_non_debug_cflags := \
49	-Wframe-larger-than=1728
50endif
51
52art_debug_cflags := \
53	-UNDEBUG
54
55ART_HOST_CFLAGS := $(art_cflags) -DANDROID_SMP=1
56
57ART_TARGET_CFLAGS := $(art_cflags)
58ifeq ($(TARGET_CPU_SMP),true)
59  ART_TARGET_CFLAGS += -DANDROID_SMP=1
60else
61  ART_TARGET_CFLAGS += -DANDROID_SMP=0
62endif
63
64# To use oprofile_android --callgraph, uncomment this and recompile with "mmm art -B -j16"
65# ART_TARGET_CFLAGS += -fno-omit-frame-pointer -marm -mapcs
66
67ART_HOST_NON_DEBUG_CFLAGS := $(art_non_debug_cflags)
68ART_TARGET_NON_DEBUG_CFLAGS := $(art_non_debug_cflags)
69
70# TODO: move -fkeep-inline-functions to art_debug_cflags when target gcc > 4.4
71ART_HOST_DEBUG_CFLAGS := $(art_debug_cflags) -fkeep-inline-functions
72ART_TARGET_DEBUG_CFLAGS := $(art_debug_cflags)
73
74DEX2OAT_SRC_FILES := \
75	src/dex2oat.cc
76
77OATDUMP_SRC_FILES := \
78	src/oatdump.cc
79
80OATEXEC_SRC_FILES := \
81	src/oatexec.cc
82
83LIBART_COMMON_SRC_FILES := \
84	src/assembler.cc \
85	src/assembler_arm.cc \
86	src/assembler_x86.cc \
87	src/atomic.cc.arm \
88	src/calling_convention.cc \
89	src/calling_convention_arm.cc \
90	src/calling_convention_x86.cc \
91	src/card_table.cc \
92	src/context.cc \
93	src/context_arm.cc.arm \
94	src/context_x86.cc \
95	src/check_jni.cc \
96	src/class_linker.cc \
97	src/class_loader.cc \
98	src/compiled_method.cc \
99	src/compiler.cc \
100	src/compiler/Dataflow.cc \
101	src/compiler/Frontend.cc \
102	src/compiler/IntermediateRep.cc \
103	src/compiler/Ralloc.cc \
104	src/compiler/SSATransformation.cc \
105	src/compiler/Utility.cc \
106	src/compiler/codegen/RallocUtil.cc \
107	src/compiler/codegen/arm/ArchUtility.cc \
108	src/compiler/codegen/arm/ArmRallocUtil.cc \
109	src/compiler/codegen/arm/Assemble.cc \
110	src/compiler/codegen/arm/LocalOptimizations.cc \
111	src/compiler/codegen/arm/armv7-a/Codegen.cc \
112	src/dalvik_system_DexFile.cc \
113	src/dalvik_system_VMDebug.cc \
114	src/dalvik_system_VMRuntime.cc \
115	src/dalvik_system_VMStack.cc \
116	src/dalvik_system_Zygote.cc \
117	src/debugger.cc \
118	src/dex_cache.cc \
119	src/dex_file.cc \
120	src/dex_instruction.cc \
121	src/dex_verifier.cc \
122	src/file.cc \
123	src/file_linux.cc \
124	src/heap.cc \
125	src/heap_bitmap.cc \
126	src/hprof/hprof.cc \
127	src/hprof/hprof_record.cc \
128	src/image.cc \
129	src/image_writer.cc \
130	src/indirect_reference_table.cc \
131	src/intern_table.cc \
132	src/java_lang_Class.cc \
133	src/java_lang_Object.cc \
134	src/java_lang_Runtime.cc \
135	src/java_lang_String.cc \
136	src/java_lang_System.cc \
137	src/java_lang_Thread.cc \
138	src/java_lang_Throwable.cc \
139	src/java_lang_VMClassLoader.cc \
140	src/java_lang_reflect_Array.cc \
141	src/java_lang_reflect_Constructor.cc \
142	src/java_lang_reflect_Field.cc \
143	src/java_lang_reflect_Method.cc \
144	src/java_lang_reflect_Proxy.cc \
145	src/java_util_concurrent_atomic_AtomicLong.cc \
146	src/jdwp/jdwp_constants.cc \
147	src/jdwp/jdwp_event.cc \
148	src/jdwp/jdwp_expand_buf.cc \
149	src/jdwp/jdwp_handler.cc \
150	src/jdwp/jdwp_main.cc \
151	src/jdwp/jdwp_socket.cc \
152	src/jni_compiler.cc \
153	src/jni_internal.cc \
154	src/jni_internal_arm.cc \
155	src/jni_internal_x86.cc \
156	src/logging.cc \
157	src/mark_stack.cc \
158	src/mark_sweep.cc \
159	src/managed_register_arm.cc \
160	src/managed_register_x86.cc \
161	src/mem_map.cc \
162	src/memory_region.cc \
163	src/monitor.cc \
164	src/mspace.c \
165	src/mutex.cc \
166	src/oat.cc \
167	src/oat_file.cc \
168	src/oat_writer.cc \
169	src/object.cc \
170	src/offsets.cc \
171	src/org_apache_harmony_dalvik_ddmc_DdmServer.cc \
172	src/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc \
173	src/os_linux.cc \
174	src/primitive.cc \
175	src/reference_table.cc \
176	src/reflection.cc \
177	src/runtime.cc \
178	src/signal_catcher.cc \
179	src/space.cc \
180	src/stack.cc \
181	src/stringpiece.cc \
182	src/stringprintf.cc \
183	src/stub_arm.cc \
184	src/stub_x86.cc \
185	src/sun_misc_Unsafe.cc \
186	src/thread.cc \
187	src/thread_list.cc \
188	src/trace.cc \
189	src/runtime_support.cc \
190	src/utf.cc \
191	src/utils.cc \
192	src/zip_archive.cc
193
194LIBART_TARGET_SRC_FILES := \
195	$(LIBART_COMMON_SRC_FILES) \
196	src/jdwp/jdwp_adb.cc \
197	src/logging_android.cc \
198	src/monitor_android.cc \
199	src/runtime_android.cc \
200	src/thread_android.cc \
201	src/thread_arm.cc \
202	src/runtime_support_arm.S
203
204LIBART_HOST_SRC_FILES := \
205	$(LIBART_COMMON_SRC_FILES) \
206	src/logging_linux.cc \
207	src/monitor_linux.cc \
208	src/runtime_linux.cc \
209	src/thread_linux.cc \
210	src/thread_x86.cc \
211	src/runtime_support_x86.S
212
213LIBARTTEST_COMMON_SRC_FILES := \
214	src/base64.cc \
215	src/jni_tests.cc \
216	test/StackWalk/stack_walk_jni.cc \
217	test/ReferenceMap/stack_walk_refmap_jni.cc
218
219TEST_COMMON_SRC_FILES := \
220	src/class_linker_test.cc \
221	src/compiler_test.cc \
222	src/dex_cache_test.cc \
223	src/dex_file_test.cc \
224	src/dex_instruction_visitor_test.cc \
225	src/dex_verifier_test.cc \
226	src/exception_test.cc \
227	src/file_test.cc \
228	src/heap_test.cc \
229	src/image_test.cc \
230	src/indirect_reference_table_test.cc \
231	src/intern_table_test.cc \
232	src/jni_internal_test.cc \
233	src/jni_compiler_test.cc \
234	src/managed_register_arm_test.cc \
235	src/managed_register_x86_test.cc \
236	src/oat_test.cc \
237	src/object_test.cc \
238	src/reference_table_test.cc \
239	src/runtime_test.cc \
240	src/space_test.cc \
241	src/utils_test.cc \
242	src/zip_archive_test.cc
243
244TEST_TARGET_SRC_FILES := \
245	$(TEST_COMMON_SRC_FILES)
246
247TEST_HOST_SRC_FILES := \
248	$(TEST_COMMON_SRC_FILES) \
249	src/assembler_x86_test.cc
250
251# subdirectories of test/
252TEST_DEX_DIRECTORIES := \
253	AbstractMethod \
254	AllFields \
255	CreateMethodSignature \
256	ExceptionHandle \
257	ExceptionTest \
258	Fibonacci \
259	GrowthLimit \
260	HelloWorld \
261	IntMath \
262	Interfaces \
263	Main \
264	MemUsage \
265	MyClass \
266	MyClassNatives \
267	Nested \
268	ParallelGC \
269	ProtoCompare \
270	ProtoCompare2 \
271	ReferenceMap \
272	ReflectionTest \
273	StackWalk \
274	StackWalk2 \
275	StaticLeafMethods \
276	Statics \
277	StaticsFromCode \
278	ThreadStress \
279	Invoke \
280	XandY
281
282ART_BUILD_TARGET := false
283ART_BUILD_HOST := false
284ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
285  ART_BUILD_TARGET := true
286endif
287ifeq ($(ART_BUILD_TARGET_DEBUG),true)
288  ART_BUILD_TARGET := true
289endif
290ifeq ($(ART_BUILD_HOST_NDEBUG),true)
291  ART_BUILD_HOST := true
292endif
293ifeq ($(ART_BUILD_HOST_DEBUG),true)
294  ART_BUILD_HOST := true
295endif
296