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? 188e6c0ef210ee6c62cf4c63d50c04f451d5fa505f5Elliott Hughesifeq ($(dvm_arch),arm) 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 += \ 202ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/HeapSource.cpp \ 203ae188c676c681e47a93ade7fdf0144099b470e03Carl Shapiro alloc/MarkSweep.cpp.arm 204d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiroendif 205d28668cf8740d1f913b4e9140a8c685013c1ad18Carl Shapiro 2063f02aa4d3b68b28bbdb6fd1320b613a68dc91fb9Ben ChengWITH_JIT := $(strip $(WITH_JIT)) 2074212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2084212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(WITH_JIT),true) 2094212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DWITH_JIT 2104212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2115d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Compiler.cpp \ 2125d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Frontend.cpp \ 2135d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Utility.cpp \ 2145d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/InlineTransformation.cpp \ 2155d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/IntermediateRep.cpp \ 2165d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Dataflow.cpp \ 2175d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/SSATransformation.cpp \ 2185d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Loop.cpp \ 2195d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/Ralloc.cpp \ 2201813ab265f691e93401c7307c0b34247842ab35eCarl Shapiro interp/Jit.cpp 2214212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2224212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2234212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinLOCAL_C_INCLUDES += \ 2244212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein $(JNI_H_INCLUDE) \ 2254212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein dalvik \ 2264212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein dalvik/vm \ 2274212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein external/zlib \ 228db0c9549818d9f6e508d26e45ff9d886802aa1daCarl Shapiro libcore/include \ 2294212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2304212241f98a49adcb955aee67a302cea57f3d984Dan BornsteinMTERP_ARCH_KNOWN := false 2314212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2324212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_arch),arm) 2334212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #dvm_arch_variant := armv7-a 2344212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein #LOCAL_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp 235cf7fa53b1410eb1033b94267d89867a416523cc6Carl Shapiro LOCAL_CFLAGS += -Werror 2364212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein MTERP_ARCH_KNOWN := true 237dbe52e8f50c87cfd38bb738bb6edb6e18e11e720Elliott Hughes # Select architecture-specific sources (armv5te, armv7-a, etc.) 2384212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2394212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein arch/arm/CallOldABI.S \ 2404212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein arch/arm/CallEABI.S \ 241cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/arm/HintsEABI.cpp \ 242cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-$(dvm_arch_variant).cpp.arm \ 2434212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein mterp/out/InterpAsm-$(dvm_arch_variant).S 2444212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2454212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein ifeq ($(WITH_JIT),true) 2464212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2475d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/RallocUtil.cpp \ 2485d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/$(dvm_arch_variant)/Codegen.cpp \ 24924ac537cf8d214f7f1bcb07aace429521247d1ebBen Cheng compiler/codegen/arm/$(dvm_arch_variant)/CallingConvention.S \ 2505d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/Assemble.cpp \ 2515d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/ArchUtility.cpp \ 2525d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/LocalOptimizations.cpp \ 2535d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/GlobalOptimizations.cpp \ 2545d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/arm/ArmRallocUtil.cpp \ 2554212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein compiler/template/out/CompilerTemplateAsm-$(dvm_arch_variant).S 2564212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein endif 2574212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2584212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2594212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_arch),x86) 2604212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein ifeq ($(dvm_os),linux) 2614212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein MTERP_ARCH_KNOWN := true 262a7d59bbafea5430fe81fc21ba94ddf6f6a63b0b3buzbee LOCAL_CFLAGS += -DDVM_JMP_TABLE_MTERP=1 2634212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 26422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch arch/$(dvm_arch_variant)/Call386ABI.S \ 265cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/$(dvm_arch_variant)/Hints386ABI.cpp \ 266cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-$(dvm_arch_variant).cpp \ 26722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch mterp/out/InterpAsm-$(dvm_arch_variant).S 2687520ee7ff226e12e06818561b15741d2575072e3buzbee ifeq ($(WITH_JIT),true) 2697520ee7ff226e12e06818561b15741d2575072e3buzbee LOCAL_SRC_FILES += \ 2705d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/x86/Assemble.cpp \ 2715d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/x86/ArchUtility.cpp \ 2725d5b94c8d14b166af580d5dd5906db4f9527d6caCarl Shapiro compiler/codegen/x86/ia32/Codegen.cpp \ 2737520ee7ff226e12e06818561b15741d2575072e3buzbee compiler/codegen/x86/ia32/CallingConvention.S \ 2747520ee7ff226e12e06818561b15741d2575072e3buzbee compiler/template/out/CompilerTemplateAsm-ia32.S 2757520ee7ff226e12e06818561b15741d2575072e3buzbee endif 2764212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein endif 2774212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2784212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2794212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(dvm_arch),sh) 2804212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein MTERP_ARCH_KNOWN := true 2814212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 2824212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein arch/sh/CallSH4ABI.S \ 283cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/generic/Hints.cpp \ 284cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-allstubs.cpp \ 2854212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein mterp/out/InterpAsm-allstubs.S 2864212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 2874212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2884212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinifeq ($(MTERP_ARCH_KNOWN),false) 2894212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # unknown architecture, try to use FFI 2904212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_C_INCLUDES += external/libffi/$(dvm_os)-$(dvm_arch) 29193194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein 29293194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein ifeq ($(dvm_os)-$(dvm_arch),darwin-x86) 29393194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein # OSX includes libffi, so just make the linker aware of it directly. 29493194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein LOCAL_LDLIBS += -lffi 29593194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein else 29693194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein LOCAL_SHARED_LIBRARIES += libffi 29793194e943d11e30ec459c514c824e0db7b20a438Dan Bornstein endif 2984212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 2994212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_SRC_FILES += \ 300cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/generic/Call.cpp \ 301cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro arch/generic/Hints.cpp \ 302cd8f5e701547739f241594b43e9470c92d98e9cfCarl Shapiro mterp/out/InterpC-allstubs.cpp 3034212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein 3044212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # The following symbols are usually defined in the asm file, but 3054212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # since we don't have an asm file in this case, we instead just 3064212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # peg them at 0 here, and we add an #ifdef'able define for good 3074212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein # measure, too. 3084212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein LOCAL_CFLAGS += -DdvmAsmInstructionStart=0 -DdvmAsmInstructionEnd=0 \ 3094212241f98a49adcb955aee67a302cea57f3d984Dan Bornstein -DdvmAsmSisterStart=0 -DdvmAsmSisterEnd=0 -DDVM_NO_ASM_INTERP=1 3104212241f98a49adcb955aee67a302cea57f3d984Dan Bornsteinendif 311