1a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block## 2a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# mksnapshot 3a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# =================================================== 4a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_PATH := $(call my-dir) 5a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockinclude $(CLEAR_VARS) 6a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 7a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Set up the target identity 8a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_IS_HOST_MODULE := true 968a13761e28d34f90fa0140363616dda73ad49deJean-Baptiste QueruLOCAL_MODULE := mksnapshot.$(TARGET_ARCH) 10a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_MODULE_CLASS := EXECUTABLES 1168a13761e28d34f90fa0140363616dda73ad49deJean-Baptiste QueruLOCAL_MODULE_TAGS = optional 12a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockintermediates := $(call local-intermediates-dir) 13a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 14a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockV8_LOCAL_SRC_FILES := 15a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockV8_LOCAL_JS_LIBRARY_FILES := 1669a99ed0b2b2ef69d393c371b03db3a98aaf880eBen MurdochV8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := 17a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockinclude $(LOCAL_PATH)/Android.v8common.mk 18a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 19a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockV8_LOCAL_SRC_FILES += \ 20a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/mksnapshot.cc \ 21a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/snapshot-empty.cc 22a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 23749e8943526482d432828bc4e08d9bf711f446d2Chen YANGifeq ($(TARGET_ARCH),arm) 24749e8943526482d432828bc4e08d9bf711f446d2Chen YANGV8_LOCAL_SRC_FILES += src/arm/simulator-arm.cc 25749e8943526482d432828bc4e08d9bf711f446d2Chen YANGendif 26749e8943526482d432828bc4e08d9bf711f446d2Chen YANG 276db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lindifeq ($(TARGET_ARCH),mips) 286db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul LindV8_LOCAL_SRC_FILES += src/mips/simulator-mips.cc 296db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind 306db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lindendif 316db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind 323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochifeq ($(HOST_ARCH),x86) 333ef787dbeca8a5fb1086949cda830dccee07bfbdBen MurdochV8_LOCAL_SRC_FILES += src/atomicops_internals_x86_gcc.cc 343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochendif 353ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch 36a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockifeq ($(HOST_OS),linux) 37a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockV8_LOCAL_SRC_FILES += \ 38a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/platform-linux.cc \ 39a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/platform-posix.cc 40a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockendif 41a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockifeq ($(HOST_OS),darwin) 42a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockV8_LOCAL_SRC_FILES += \ 43a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/platform-macos.cc \ 44a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block src/platform-posix.cc 45a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockendif 46a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 47a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_SRC_FILES := $(V8_LOCAL_SRC_FILES) 48a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 49a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_JS_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_LIBRARY_FILES)) 50589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochLOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES)) 51a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 52a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Copy js2c.py to intermediates directory and invoke there to avoid generating 53a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# jsmin.pyc in the source directory 54a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockJS2C_PY := $(intermediates)/js2c.py $(intermediates)/jsmin.py 55a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block$(JS2C_PY): $(intermediates)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP) 56a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block @echo "Copying $@" 57a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block $(copy-file-to-target) 58a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 59a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# Generate libraries.cc 60257744e915dfc84d6d07a6b2accf8402d9ffc708Ben MurdochGEN3 := $(intermediates)/libraries.cc 61257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch$(GEN3): SCRIPT := $(intermediates)/js2c.py 62257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch$(GEN3): $(LOCAL_JS_LIBRARY_FILES) $(JS2C_PY) 63a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block @echo "Generating libraries.cc" 64a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block @mkdir -p $(dir $@) 653fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch python $(SCRIPT) $(GEN3) CORE off $(LOCAL_JS_LIBRARY_FILES) 66a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_GENERATED_SOURCES := $(intermediates)/libraries.cc 67a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 68257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch# Generate experimental-libraries.cc 69257744e915dfc84d6d07a6b2accf8402d9ffc708Ben MurdochGEN4 := $(intermediates)/experimental-libraries.cc 70257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch$(GEN4): SCRIPT := $(intermediates)/js2c.py 71257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch$(GEN4): $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) $(JS2C_PY) 72257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch @echo "Generating experimental-libraries.cc" 73257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch @mkdir -p $(dir $@) 743fb3ca8c7ca439d408449a395897395c0faae8d1Ben Murdoch python $(SCRIPT) $(GEN4) EXPERIMENTAL off $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) 75257744e915dfc84d6d07a6b2accf8402d9ffc708Ben MurdochLOCAL_GENERATED_SOURCES += $(intermediates)/experimental-libraries.cc 76257744e915dfc84d6d07a6b2accf8402d9ffc708Ben Murdoch 77a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_CFLAGS := \ 78a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block -Wno-endif-labels \ 79a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block -Wno-import \ 80a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block -Wno-format \ 81a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block -ansi \ 822007755a32dfa1ac843f501dec4fb872f8bbcc52Andrei Popescu -fno-rtti \ 836a927b2a077ba8a767bd21abcfbf1c4e3d1b11e0Andrei Popescu -DENABLE_DEBUGGER_SUPPORT \ 840de1e4345105e23da77663351f2019a015ab98b8Ben Murdoch -DENABLE_LOGGING_AND_PROFILING \ 850de1e4345105e23da77663351f2019a015ab98b8Ben Murdoch -DENABLE_VMSTATE_TRACKING \ 866a927b2a077ba8a767bd21abcfbf1c4e3d1b11e0Andrei Popescu -DV8_NATIVE_REGEXP 87a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 88a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockifeq ($(TARGET_ARCH),arm) 89a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block LOCAL_CFLAGS += -DV8_TARGET_ARCH_ARM 90a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockendif 91a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 922f6dc263a8ff03d497c60c4ec5413b9d1c25e9a2Andrei Popescuifeq ($(TARGET_CPU_ABI),armeabi-v7a) 930c144899d55fcfcd667438a604cf7879fd8624d3Colin Cross ifeq ($(ARCH_ARM_HAVE_VFP),true) 942f6dc263a8ff03d497c60c4ec5413b9d1c25e9a2Andrei Popescu LOCAL_CFLAGS += -DCAN_USE_VFP_INSTRUCTIONS -DCAN_USE_ARMV7_INSTRUCTIONS 952f6dc263a8ff03d497c60c4ec5413b9d1c25e9a2Andrei Popescu endif 962f6dc263a8ff03d497c60c4ec5413b9d1c25e9a2Andrei Popescuendif 972f6dc263a8ff03d497c60c4ec5413b9d1c25e9a2Andrei Popescu 986db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lindifeq ($(TARGET_ARCH),mips) 996db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind LOCAL_CFLAGS += -DV8_TARGET_ARCH_MIPS 1006db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind LOCAL_CFLAGS += -DCAN_USE_FPU_INSTRUCTIONS 1016db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind LOCAL_CFLAGS += -Umips 1026db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind LOCAL_CFLAGS += -finline-limit=64 1036db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind LOCAL_CFLAGS += -fno-strict-aliasing 1046db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lindendif 1056db049a1dc7dc1fc597acde780c5a87e2b9698e7Paul Lind 106351b9f793fda97d4d1c8eb905d40c27b3ee76925Chih-Wei Huangifeq ($(TARGET_ARCH),x86) 107351b9f793fda97d4d1c8eb905d40c27b3ee76925Chih-Wei Huang LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32 108351b9f793fda97d4d1c8eb905d40c27b3ee76925Chih-Wei Huangendif 109351b9f793fda97d4d1c8eb905d40c27b3ee76925Chih-Wei Huang 1102007755a32dfa1ac843f501dec4fb872f8bbcc52Andrei Popescuifeq ($(DEBUG_V8),true) 1112007755a32dfa1ac843f501dec4fb872f8bbcc52Andrei Popescu LOCAL_CFLAGS += -DDEBUG -UNDEBUG 1122007755a32dfa1ac843f501dec4fb872f8bbcc52Andrei Popescuendif 1132007755a32dfa1ac843f501dec4fb872f8bbcc52Andrei Popescu 114a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_C_INCLUDES := $(LOCAL_PATH)/src 115a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 116a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block# This is on host. 117a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_LDLIBS := -lpthread 118a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 119a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockLOCAL_STATIC_LIBRARIES := liblog 120a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block 121a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockinclude $(BUILD_HOST_EXECUTABLE) 122