14212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Copyright (C) 2008 The Android Open Source Project 24212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 34212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Licensed under the Apache License, Version 2.0 (the "License"); 44212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# you may not use this file except in compliance with the License. 54212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# You may obtain a copy of the License at 64212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 74212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# http://www.apache.org/licenses/LICENSE-2.0 84212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 94212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Unless required by applicable law or agreed to in writing, software 104212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# distributed under the License is distributed on an "AS IS" BASIS, 114212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# See the License for the specific language governing permissions and 134212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# limitations under the License. 144212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 154212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 164212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Common definitions for host or target builds of libdvm. 174212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 1812def722ecb5d5a1e2f800ef545d8019e443b293Andy McFadden# If you enable or disable optional features here, make sure you do 1912def722ecb5d5a1e2f800ef545d8019e443b293Andy McFadden# a "clean" build -- not everything depends on Dalvik.h. (See Android.mk 2012def722ecb5d5a1e2f800ef545d8019e443b293Andy McFadden# for the exact command.) 214212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 224212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 234212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 244212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 254212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Compiler defines. 264212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 274212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinLOCAL_CFLAGS += -fstrict-aliasing -Wstrict-aliasing=2 -fno-align-jumps 28bbf31b58c50fb892423b7fef0d8c1093bd0c1a6cBrian CarlstromLOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter 29ab961da1c0b29cbca354e6a71e1739df116afa52Ben ChengLOCAL_CFLAGS += -DARCH_VARIANT=\"$(dvm_arch_variant)\" 304212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 314212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 324212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Optional features. These may impact the size or performance of the VM. 334212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# 344212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 354212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# Make a debugging version when building the simulator (if not told 364212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# otherwise) and when explicitly asked. 374212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteindvm_make_debug_vm := false 38737e7c2b77b026ab44c6bbf775b77e953b6f79c6Jeff Brownifneq ($(strip $(DEBUG_DALVIK_VM)),) 394212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein dvm_make_debug_vm := $(DEBUG_DALVIK_VM) 404212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 414212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 424212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_make_debug_vm),true) 434212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # 444212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # "Debug" profile: 454212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - debugger enabled 464212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - profiling enabled 474212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - tracked-reference verification enabled 484212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - allocation limits enabled 494212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - GDB helpers enabled 504212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - LOGV 514212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - assert() 524212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # 534212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_INSTR_CHECKS 544212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_EXTRA_OBJECT_VALIDATION 554212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_TRACKREF_CHECKS 564212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_EXTRA_GC_CHECKS=1 574212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -DCHECK_MUTEX 584212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DDVM_SHOW_EXCEPTION=3 594212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # add some extra stuff to make it easier to examine with GDB 604212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DEASY_GDB 614212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # overall config may be for a "release" build, so reconfigure these 624212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -UNDEBUG -DDEBUG=1 -DLOG_NDEBUG=1 -DWITH_DALVIK_ASSERT 634212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinelse # !dvm_make_debug_vm 644212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # 654212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # "Performance" profile: 664212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - all development features disabled 674212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - compiler optimizations enabled (redundant for "release" builds) 684212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # - (debugging and profiling still enabled) 694212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # 704212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -DNDEBUG -DLOG_NDEBUG=1 714212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # "-O2" is redundant for device (release) but useful for sim (debug) 724212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -O2 -Winline 734212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -DWITH_EXTRA_OBJECT_VALIDATION 744212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DDVM_SHOW_EXCEPTION=1 754212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # if you want to try with assertions on the device, add: 764212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -UNDEBUG -DDEBUG=1 -DLOG_NDEBUG=1 -DWITH_DALVIK_ASSERT 774212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif # !dvm_make_debug_vm 784212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 794212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein# bug hunting: checksum and verify interpreted stack when making JNI calls 804212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein#LOCAL_CFLAGS += -DWITH_JNI_STACK_CHECK 814212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 824212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinLOCAL_SRC_FILES := \ 83d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro AllocTracker.cpp \ 84d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Atomic.cpp.arm \ 85d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro AtomicCache.cpp \ 86d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro BitVector.cpp.arm \ 870647d294bab9312be67a9032adfa4f0b9ba0984aElliott Hughes CheckJni.cpp \ 88d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Ddm.cpp \ 89d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Debugger.cpp \ 90d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro DvmDex.cpp \ 91d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Exception.cpp \ 92d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Hash.cpp \ 93d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro IndirectRefTable.cpp.arm \ 94d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Init.cpp \ 95d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro InitRefs.cpp \ 96d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro InlineNative.cpp.arm \ 97d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Inlines.cpp \ 98d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Intern.cpp \ 990647d294bab9312be67a9032adfa4f0b9ba0984aElliott Hughes Jni.cpp \ 100d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro JarFile.cpp \ 101d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro LinearAlloc.cpp \ 102d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Misc.cpp \ 103d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Native.cpp \ 104d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro PointerSet.cpp \ 105d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Profile.cpp \ 106d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro RawDexFile.cpp \ 107d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro ReferenceTable.cpp \ 108d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro SignalCatcher.cpp \ 109d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro StdioConverter.cpp \ 110d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Sync.cpp \ 111d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro Thread.cpp \ 112d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro UtfString.cpp \ 113ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/Alloc.cpp \ 114ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/CardTable.cpp \ 115ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/HeapBitmap.cpp.arm \ 116ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/HeapDebug.cpp \ 117ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/Heap.cpp.arm \ 118ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/DdmHeap.cpp \ 119ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/Verify.cpp \ 120ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/Visit.cpp \ 1211813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/CodeVerify.cpp \ 1221813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/DexPrepare.cpp \ 1231813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/DexVerify.cpp \ 1241813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/Liveness.cpp \ 1251813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/Optimize.cpp \ 1261813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/RegisterMap.cpp \ 1271813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/VerifySubs.cpp \ 1281813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro analysis/VfyBasicBlock.cpp \ 129ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro hprof/Hprof.cpp \ 130ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro hprof/HprofClass.cpp \ 131ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro hprof/HprofHeap.cpp \ 132ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro hprof/HprofOutput.cpp \ 133ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro hprof/HprofString.cpp \ 1341813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro interp/Interp.cpp.arm \ 1351813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro interp/Stack.cpp \ 1362d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/ExpandBuf.cpp \ 1372d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpAdb.cpp \ 1382d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpConstants.cpp \ 1392d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpEvent.cpp \ 1402d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpHandler.cpp \ 1412d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpMain.cpp \ 1422d63bc57d5fcbcd54f0bd3e9491e1704b98ec0bfCarl Shapiro jdwp/JdwpSocket.cpp \ 143d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro mterp/Mterp.cpp.arm \ 144cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-portable.cpp.arm \ 145db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/InternalNative.cpp \ 146db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_bytecode_OpcodeInfo.cpp \ 147db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_system_DexFile.cpp \ 148db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_system_VMDebug.cpp \ 149db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_system_VMRuntime.cpp \ 150db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_system_VMStack.cpp \ 151db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/dalvik_system_Zygote.cpp \ 152db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Class.cpp \ 153db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Double.cpp \ 154db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Float.cpp \ 155db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Math.cpp \ 156db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Object.cpp \ 157db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Runtime.cpp \ 158db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_String.cpp \ 159db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_System.cpp \ 160db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_Throwable.cpp \ 161db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_VMClassLoader.cpp \ 162db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_VMThread.cpp \ 163db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_AccessibleObject.cpp \ 164db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_Array.cpp \ 165db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_Constructor.cpp \ 166db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_Field.cpp \ 167db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_Method.cpp \ 168db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_lang_reflect_Proxy.cpp \ 169db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/java_util_concurrent_atomic_AtomicLong.cpp \ 170db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/org_apache_harmony_dalvik_NativeTestTarget.cpp \ 171db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/org_apache_harmony_dalvik_ddmc_DdmServer.cpp \ 172db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cpp \ 173db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro native/sun_misc_Unsafe.cpp \ 174dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/AccessCheck.cpp \ 175dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/Array.cpp \ 176dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/Class.cpp \ 177dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/Object.cpp \ 178dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/Resolve.cpp \ 179dabd15a98449c6554579457aa4639bcdc3434eaaCarl Shapiro oo/TypeCheck.cpp \ 180056a24a06b2d166c8e8f380488253964db6d7dcdCarl Shapiro reflect/Annotation.cpp \ 181056a24a06b2d166c8e8f380488253964db6d7dcdCarl Shapiro reflect/Proxy.cpp \ 182056a24a06b2d166c8e8f380488253964db6d7dcdCarl Shapiro reflect/Reflect.cpp \ 183d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro test/AtomicTest.cpp.arm \ 184d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro test/TestHash.cpp \ 185d5c36b9040bd26a81219a7f399513526f9b46324Carl Shapiro test/TestIndirectRefTable.cpp 1864212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 187e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughes# TODO: this is the wrong test, but what's the right one? 188a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandhamifneq ($(filter arm mips,$(dvm_arch)),) 189e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughes LOCAL_SRC_FILES += os/android.cpp 190e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hugheselse 191e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughes LOCAL_SRC_FILES += os/linux.cpp 192e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughesendif 193e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughes 194d28668cf8740d1f913b4e9140a8c685013c1ad18Carl ShapiroWITH_COPYING_GC := $(strip $(WITH_COPYING_GC)) 195d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro 196d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiroifeq ($(WITH_COPYING_GC),true) 197d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro LOCAL_CFLAGS += -DWITH_COPYING_GC 198d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro LOCAL_SRC_FILES += \ 199ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/Copying.cpp.arm 200d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiroelse 201d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro LOCAL_SRC_FILES += \ 202808a7c0e7e39b7ca3c7db1366e6e4089166052bbIan Rogers alloc/DlMalloc.cpp \ 203ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/HeapSource.cpp \ 204ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/MarkSweep.cpp.arm 205d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiroendif 206d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro 2073f02aa4d3b68b28bbdb6fd1320b613a68dc91fb9Ben ChengWITH_JIT := $(strip $(WITH_JIT)) 2084212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2094212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(WITH_JIT),true) 2104212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_JIT 2114212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2125d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Compiler.cpp \ 2135d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Frontend.cpp \ 2145d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Utility.cpp \ 2155d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/InlineTransformation.cpp \ 2165d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/IntermediateRep.cpp \ 2175d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Dataflow.cpp \ 2185d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/SSATransformation.cpp \ 2195d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Loop.cpp \ 2205d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Ralloc.cpp \ 2211813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro interp/Jit.cpp 2224212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2234212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2244212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinLOCAL_C_INCLUDES += \ 2254212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein $(JNI_H_INCLUDE) \ 2264212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein dalvik \ 2274212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein dalvik/vm \ 2284212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein external/zlib \ 229db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro libcore/include \ 2304212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2314212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinMTERP_ARCH_KNOWN := false 2324212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2334212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_arch),arm) 2344212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #dvm_arch_variant := armv7-a 2354212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp 236cf7fa53b1410eb1033b94267d89867a416523cc6Carl Shapiro LOCAL_CFLAGS += -Werror 2374212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein MTERP_ARCH_KNOWN := true 238dbe52e8f50c87cfd38bb738bb6edb6e18e11e720Elliott Hughes # Select architecture-specific sources (armv5te, armv7-a, etc.) 2394212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2404212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein arch/arm/CallOldABI.S \ 2414212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein arch/arm/CallEABI.S \ 242cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/arm/HintsEABI.cpp \ 243cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-$(dvm_arch_variant).cpp.arm \ 2444212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein mterp/out/InterpAsm-$(dvm_arch_variant).S 2454212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2464212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein ifeq ($(WITH_JIT),true) 2474212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2485d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/RallocUtil.cpp \ 2495d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/$(dvm_arch_variant)/Codegen.cpp \ 25024ac537cf8d214f7f1bcb07aace429521247d1ebBen Cheng compiler/codegen/arm/$(dvm_arch_variant)/CallingConvention.S \ 2515d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/Assemble.cpp \ 2525d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/ArchUtility.cpp \ 2535d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/LocalOptimizations.cpp \ 2545d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/GlobalOptimizations.cpp \ 2555d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/ArmRallocUtil.cpp \ 2564212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein compiler/template/out/CompilerTemplateAsm-$(dvm_arch_variant).S 2574212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein endif 2584212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2594212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 260a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandhamifeq ($(dvm_arch),mips) 261a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham MTERP_ARCH_KNOWN := true 262a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOCAL_C_INCLUDES += external/libffi/$(TARGET_OS)-$(TARGET_ARCH) 263a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOCAL_SHARED_LIBRARIES += libffi 264a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOCAL_SRC_FILES += \ 265a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham arch/mips/CallO32.S \ 266a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham arch/mips/HintsO32.cpp \ 267a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham arch/generic/Call.cpp \ 268a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham mterp/out/InterpC-mips.cpp \ 269a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham mterp/out/InterpAsm-mips.S 270a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 271a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham ifeq ($(WITH_JIT),true) 272a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham dvm_arch_variant := mips 273a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOCAL_SRC_FILES += \ 274a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/RallocUtil.cpp \ 275a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/$(dvm_arch_variant)/Codegen.cpp \ 276a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/$(dvm_arch_variant)/CallingConvention.S \ 277a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/Assemble.cpp \ 278a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/ArchUtility.cpp \ 279a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/LocalOptimizations.cpp \ 280a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/codegen/mips/GlobalOptimizations.cpp \ 281a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham compiler/template/out/CompilerTemplateAsm-$(dvm_arch_variant).S 282a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham endif 283a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandhamendif 284a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 2854212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_arch),x86) 2864212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein ifeq ($(dvm_os),linux) 2874212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein MTERP_ARCH_KNOWN := true 2880c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen LOCAL_CFLAGS += -DDVM_JMP_TABLE_MTERP=1 \ 2890c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen -DMTERP_STUB 2904212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 29122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch arch/$(dvm_arch_variant)/Call386ABI.S \ 292cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/$(dvm_arch_variant)/Hints386ABI.cpp \ 293cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-$(dvm_arch_variant).cpp \ 29422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch mterp/out/InterpAsm-$(dvm_arch_variant).S 2957520ee7ff226e12e06818561b15741d2575072e3buzbee ifeq ($(WITH_JIT),true) 2960c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen LOCAL_CFLAGS += -DARCH_IA32 2977520ee7ff226e12e06818561b15741d2575072e3buzbee LOCAL_SRC_FILES += \ 2980c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerAlu.cpp \ 2990c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerConst.cpp \ 3000c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerMove.cpp \ 3010c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/Lower.cpp \ 3020c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerHelper.cpp \ 3030c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerJump.cpp \ 3040c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerObject.cpp \ 3050c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/AnalysisO1.cpp \ 3060c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/BytecodeVisitor.cpp \ 3070c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/NcgAot.cpp \ 3080c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/CodegenInterface.cpp \ 3090c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerInvoke.cpp \ 3100c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerReturn.cpp \ 3110c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/NcgHelper.cpp \ 3120c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/LowerGetPut.cpp 3130c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 3140c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen # need apache harmony x86 encoder/decoder 3150c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen LOCAL_C_INCLUDES += \ 3160c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen dalvik/vm/compiler/codegen/x86/libenc 3170c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen LOCAL_SRC_FILES += \ 3180c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/libenc/enc_base.cpp \ 3190c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/libenc/dec_base.cpp \ 3200c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/libenc/enc_wrapper.cpp \ 3210c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen compiler/codegen/x86/libenc/enc_tabl.cpp 3220c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 3237520ee7ff226e12e06818561b15741d2575072e3buzbee endif 3244212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein endif 3254212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 3264212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 3274212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(MTERP_ARCH_KNOWN),false) 3284212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # unknown architecture, try to use FFI 3294212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_C_INCLUDES += external/libffi/$(dvm_os)-$(dvm_arch) 33093194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein 33193194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein ifeq ($(dvm_os)-$(dvm_arch),darwin-x86) 33293194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein # OSX includes libffi, so just make the linker aware of it directly. 33393194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein LOCAL_LDLIBS += -lffi 33493194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein else 33593194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein LOCAL_SHARED_LIBRARIES += libffi 33693194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein endif 3374212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 3384212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 339cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/generic/Call.cpp \ 340cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/generic/Hints.cpp \ 341cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-allstubs.cpp 3424212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 3434212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # The following symbols are usually defined in the asm file, but 3444212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # since we don't have an asm file in this case, we instead just 3454212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # peg them at 0 here, and we add an #ifdef'able define for good 3464212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # measure, too. 3474212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DdvmAsmInstructionStart=0 -DdvmAsmInstructionEnd=0 \ 3484212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein -DdvmAsmSisterStart=0 -DdvmAsmSisterEnd=0 -DDVM_NO_ASM_INTERP=1 3494212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 350