diff options
author | Colin Cross <ccross@android.com> | 2014-02-18 21:29:27 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-02-18 21:29:27 +0000 |
commit | a2836f4c21141d36a324a49639d14c7d97472cb6 (patch) | |
tree | 9997e9aae6eb1700b223cf28b77711e4e86fd468 | |
parent | 59d01ebe17c1b4396b8d24a31a4675803d32eeac (diff) | |
parent | 45d4c017bd11d9e7cce24bf3986e4e6451f60103 (diff) | |
download | v8-idea133-weekly-release.tar.gz |
Merge "v8: support multilib builds"idea133-weekly-release
-rw-r--r-- | Android.d8.mk | 2 | ||||
-rw-r--r-- | Android.libv8.mk | 72 | ||||
-rw-r--r-- | Android.mk | 18 | ||||
-rw-r--r-- | Android.mksnapshot.mk | 81 | ||||
-rw-r--r-- | Android.v8common.mk | 17 |
5 files changed, 96 insertions, 94 deletions
diff --git a/Android.d8.mk b/Android.d8.mk index 0f74eb5e..f512e758 100644 --- a/Android.d8.mk +++ b/Android.d8.mk @@ -19,4 +19,6 @@ LOCAL_MODULE_TAGS := optional LOCAL_C_INCLUDES += $(LOCAL_PATH)/include +LOCAL_MODULE_TARGET_ARCH_WARN := $(V8_SUPPORTED_ARCH) + include $(BUILD_EXECUTABLE) diff --git a/Android.libv8.mk b/Android.libv8.mk index 586980cf..d83857bb 100644 --- a/Android.libv8.mk +++ b/Android.libv8.mk @@ -13,64 +13,70 @@ endif # Set up the target identity LOCAL_MODULE := libv8 LOCAL_MODULE_CLASS := STATIC_LIBRARIES -intermediates := $(call local-intermediates-dir) +generated_sources := $(call local-generated-sources-dir) -# Android.v8common.mk defines common V8_LOCAL_SRC_FILES -# and V8_LOCAL_JS_LIBRARY_FILES -V8_LOCAL_SRC_FILES := +# Android.v8common.mk defines V8_LOCAL_JS_LIBRARY_FILES, LOCAL_SRC_FILES, +# LOCAL_CFLAGS, LOCAL_SRC_FILES_arch, and LOCAL_CFLAGS_arch V8_LOCAL_JS_LIBRARY_FILES := V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := include $(LOCAL_PATH)/Android.v8common.mk # Target can only be linux -V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES += \ src/platform-linux.cc \ src/platform-posix.cc -ifeq ($(TARGET_ARCH),x86) -V8_LOCAL_SRC_FILES += src/atomicops_internals_x86_gcc.cc -endif - -LOCAL_SRC_FILES := $(V8_LOCAL_SRC_FILES) +LOCAL_SRC_FILES_x86 += src/atomicops_internals_x86_gcc.cc LOCAL_JS_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_LIBRARY_FILES)) LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES)) -# Copy js2c.py to intermediates directory and invoke there to avoid generating -# jsmin.pyc in the source directory -JS2C_PY := $(intermediates)/js2c.py $(intermediates)/jsmin.py -$(JS2C_PY): $(intermediates)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP) +# Copy js2c.py to generated sources directory and invoke there to avoid +# generating jsmin.pyc in the source directory +JS2C_PY := $(generated_sources)/js2c.py $(generated_sources)/jsmin.py +$(JS2C_PY): $(generated_sources)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP) @echo "Copying $@" $(copy-file-to-target) # Generate libraries.cc -GEN1 := $(intermediates)/libraries.cc -$(GEN1): SCRIPT := $(intermediates)/js2c.py +GEN1 := $(generated_sources)/libraries.cc +$(GEN1): SCRIPT := $(generated_sources)/js2c.py $(GEN1): $(LOCAL_JS_LIBRARY_FILES) $(JS2C_PY) @echo "Generating libraries.cc" @mkdir -p $(dir $@) python $(SCRIPT) $(GEN1) CORE off $(LOCAL_JS_LIBRARY_FILES) -V8_GENERATED_LIBRARIES := $(intermediates)/libraries.cc +V8_GENERATED_LIBRARIES := $(generated_sources)/libraries.cc # Generate experimental-libraries.cc -GEN2 := $(intermediates)/experimental-libraries.cc -$(GEN2): SCRIPT := $(intermediates)/js2c.py +GEN2 := $(generated_sources)/experimental-libraries.cc +$(GEN2): SCRIPT := $(generated_sources)/js2c.py $(GEN2): $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) $(JS2C_PY) @echo "Generating experimental-libraries.cc" @mkdir -p $(dir $@) python $(SCRIPT) $(GEN2) EXPERIMENTAL off $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) -V8_GENERATED_LIBRARIES += $(intermediates)/experimental-libraries.cc +V8_GENERATED_LIBRARIES += $(generated_sources)/experimental-libraries.cc LOCAL_GENERATED_SOURCES += $(V8_GENERATED_LIBRARIES) # Generate snapshot.cc ifeq ($(ENABLE_V8_SNAPSHOT),true) -SNAP_GEN := $(intermediates)/snapshot.cc + +SNAP_GEN := $(generated_sources)/snapshot_$(TARGET_ARCH).cc MKSNAPSHOT := $(HOST_OUT_EXECUTABLES)/mksnapshot.$(TARGET_ARCH) -$(SNAP_GEN): PRIVATE_CUSTOM_TOOL = $(MKSNAPSHOT) --logfile $(intermediates)/v8.log $(SNAP_GEN) +$(SNAP_GEN): PRIVATE_CUSTOM_TOOL = $(MKSNAPSHOT) --logfile $(generated_sources)/v8.log $(SNAP_GEN) +$(SNAP_GEN): $(MKSNAPSHOT) + $(transform-generated-source) +LOCAL_GENERATED_SOURCES_$(TARGET_ARCH) += $(SNAP_GEN) + +ifdef TARGET_2ND_ARCH +SNAP_GEN := $(generated_sources)/snapshot_$(TARGET_2ND_ARCH).cc +MKSNAPSHOT := $(HOST_OUT_EXECUTABLES)/mksnapshot.$(TARGET_2ND_ARCH) +$(SNAP_GEN): PRIVATE_CUSTOM_TOOL = $(MKSNAPSHOT) --logfile $(generated_sources)/v8.log $(SNAP_GEN) $(SNAP_GEN): $(MKSNAPSHOT) $(transform-generated-source) -LOCAL_GENERATED_SOURCES += $(SNAP_GEN) +LOCAL_GENERATED_SOURCES_$(TARGET_2ND_ARCH) += $(SNAP_GEN) +endif # TARGET_2ND_ARCH + else LOCAL_SRC_FILES += \ src/snapshot-empty.cc @@ -90,20 +96,14 @@ LOCAL_CFLAGS += \ -DV8_NATIVE_REGEXP \ -Wno-unused-parameter -ifeq ($(TARGET_ARCH),arm) - LOCAL_CFLAGS += -DARM -DV8_TARGET_ARCH_ARM -endif +LOCAL_CFLAGS_arm += -DARM -DV8_TARGET_ARCH_ARM -ifeq ($(TARGET_ARCH),mips) - LOCAL_CFLAGS += -DV8_TARGET_ARCH_MIPS - LOCAL_CFLAGS += -Umips - LOCAL_CFLAGS += -finline-limit=64 - LOCAL_CFLAGS += -fno-strict-aliasing -endif +LOCAL_CFLAGS_mips += -DV8_TARGET_ARCH_MIPS +LOCAL_CFLAGS_mips += -Umips +LOCAL_CFLAGS_mips += -finline-limit=64 +LOCAL_CFLAGS_mips += -fno-strict-aliasing -ifeq ($(TARGET_ARCH),x86) - LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32 -endif +LOCAL_CFLAGS_x86 += -DV8_TARGET_ARCH_IA32 ifeq ($(DEBUG_V8),true) LOCAL_CFLAGS += -DDEBUG -UNDEBUG @@ -111,4 +111,6 @@ endif LOCAL_C_INCLUDES += $(LOCAL_PATH)/src +LOCAL_MODULE_TARGET_ARCH_WARN := $(V8_SUPPORTED_ARCH) + include $(BUILD_STATIC_LIBRARY) @@ -17,6 +17,8 @@ BASE_PATH := $(call my-dir) +V8_SUPPORTED_ARCH := arm mips x86 + ifeq ($(TARGET_ARCH),arm) ifneq ($(strip $(ARCH_ARM_HAVE_ARMV7A)),true) $(warning WARNING: Building on ARM with non-ARMv7 variant. On ARM, V8 is well tested only on ARMv7.) @@ -24,9 +26,15 @@ ifeq ($(TARGET_ARCH),arm) endif # Build libv8 and d8 -ifneq ($(filter $(TARGET_ARCH),x86 arm mips),) - ENABLE_V8_SNAPSHOT = true - include $(BASE_PATH)/Android.mksnapshot.mk - include $(BASE_PATH)/Android.libv8.mk - include $(BASE_PATH)/Android.d8.mk + +ENABLE_V8_SNAPSHOT = true +mksnapshot_arch := $(TARGET_ARCH) +include $(BASE_PATH)/Android.mksnapshot.mk + +ifdef TARGET_2ND_ARCH +mksnapshot_arch := $(TARGET_2ND_ARCH) +include $(BASE_PATH)/Android.mksnapshot.mk endif + +include $(BASE_PATH)/Android.libv8.mk +include $(BASE_PATH)/Android.d8.mk diff --git a/Android.mksnapshot.mk b/Android.mksnapshot.mk index c9453143..67b56be7 100644 --- a/Android.mksnapshot.mk +++ b/Android.mksnapshot.mk @@ -1,78 +1,75 @@ ## # mksnapshot # =================================================== + +ifneq (,$(filter $(mksnapshot_arch),$(V8_SUPPORTED_ARCH))) + LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Set up the target identity LOCAL_IS_HOST_MODULE := true -LOCAL_MODULE := mksnapshot.$(TARGET_ARCH) +LOCAL_MODULE := mksnapshot.$(mksnapshot_arch) LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_TAGS = optional -intermediates := $(call local-intermediates-dir) +generated_sources := $(call local-generated-sources-dir) + -V8_LOCAL_SRC_FILES := V8_LOCAL_JS_LIBRARY_FILES := V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := include $(LOCAL_PATH)/Android.v8common.mk -V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES += \ src/mksnapshot.cc \ src/snapshot-empty.cc -ifeq ($(TARGET_ARCH),arm) -V8_LOCAL_SRC_FILES += src/arm/simulator-arm.cc -endif +LOCAL_SRC_FILES_arm += src/arm/simulator-arm.cc -ifeq ($(TARGET_ARCH),mips) -V8_LOCAL_SRC_FILES += src/mips/simulator-mips.cc +LOCAL_SRC_FILES_mips += src/mips/simulator-mips.cc -endif ifeq ($(HOST_ARCH),x86) -V8_LOCAL_SRC_FILES += src/atomicops_internals_x86_gcc.cc +LOCAL_SRC_FILES += src/atomicops_internals_x86_gcc.cc endif ifeq ($(HOST_OS),linux) -V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES += \ src/platform-linux.cc \ src/platform-posix.cc endif ifeq ($(HOST_OS),darwin) -V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES += \ src/platform-macos.cc \ src/platform-posix.cc endif -LOCAL_SRC_FILES := $(V8_LOCAL_SRC_FILES) - LOCAL_JS_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_LIBRARY_FILES)) LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES)) -# Copy js2c.py to intermediates directory and invoke there to avoid generating -# jsmin.pyc in the source directory -JS2C_PY := $(intermediates)/js2c.py $(intermediates)/jsmin.py -$(JS2C_PY): $(intermediates)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP) +# Copy js2c.py to generated sources directory and invoke there to avoid +# generating jsmin.pyc in the source directory +JS2C_PY := $(generated_sources)/js2c.py $(generated_sources)/jsmin.py +$(JS2C_PY): $(generated_sources)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP) @echo "Copying $@" $(copy-file-to-target) # Generate libraries.cc -GEN3 := $(intermediates)/libraries.cc -$(GEN3): SCRIPT := $(intermediates)/js2c.py +GEN3 := $(generated_sources)/libraries.cc +$(GEN3): SCRIPT := $(generated_sources)/js2c.py $(GEN3): $(LOCAL_JS_LIBRARY_FILES) $(JS2C_PY) @echo "Generating libraries.cc" @mkdir -p $(dir $@) python $(SCRIPT) $(GEN3) CORE off $(LOCAL_JS_LIBRARY_FILES) -LOCAL_GENERATED_SOURCES := $(intermediates)/libraries.cc +LOCAL_GENERATED_SOURCES := $(generated_sources)/libraries.cc # Generate experimental-libraries.cc -GEN4 := $(intermediates)/experimental-libraries.cc -$(GEN4): SCRIPT := $(intermediates)/js2c.py +GEN4 := $(generated_sources)/experimental-libraries.cc +$(GEN4): SCRIPT := $(generated_sources)/js2c.py $(GEN4): $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) $(JS2C_PY) @echo "Generating experimental-libraries.cc" @mkdir -p $(dir $@) python $(SCRIPT) $(GEN4) EXPERIMENTAL off $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) -LOCAL_GENERATED_SOURCES += $(intermediates)/experimental-libraries.cc +LOCAL_GENERATED_SOURCES += $(generated_sources)/experimental-libraries.cc LOCAL_CFLAGS := \ -Wno-endif-labels \ @@ -86,32 +83,29 @@ LOCAL_CFLAGS := \ -DV8_NATIVE_REGEXP \ -Wno-unused-parameter -ifeq ($(TARGET_ARCH),arm) - LOCAL_CFLAGS += -DV8_TARGET_ARCH_ARM -endif +LOCAL_CFLAGS_arm += -DV8_TARGET_ARCH_ARM -ifeq ($(TARGET_CPU_ABI),armeabi-v7a) - ifeq ($(ARCH_ARM_HAVE_VFP),true) - LOCAL_CFLAGS += -DCAN_USE_VFP_INSTRUCTIONS -DCAN_USE_ARMV7_INSTRUCTIONS - endif +ifeq ($(ARCH_ARM_HAVE_VFP),true) + LOCAL_CFLAGS_arm += -DCAN_USE_VFP_INSTRUCTIONS -DCAN_USE_ARMV7_INSTRUCTIONS endif -ifeq ($(TARGET_ARCH),mips) - LOCAL_CFLAGS += -DV8_TARGET_ARCH_MIPS - LOCAL_CFLAGS += -DCAN_USE_FPU_INSTRUCTIONS - LOCAL_CFLAGS += -Umips - LOCAL_CFLAGS += -finline-limit=64 - LOCAL_CFLAGS += -fno-strict-aliasing -endif +LOCAL_CFLAGS_mips += -DV8_TARGET_ARCH_MIPS +LOCAL_CFLAGS_mips += -DCAN_USE_FPU_INSTRUCTIONS +LOCAL_CFLAGS_mips += -Umips +LOCAL_CFLAGS_mips += -finline-limit=64 +LOCAL_CFLAGS_mips += -fno-strict-aliasing -ifeq ($(TARGET_ARCH),x86) - LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32 -endif +LOCAL_CFLAGS_x86 += -DV8_TARGET_ARCH_IA32 ifeq ($(DEBUG_V8),true) LOCAL_CFLAGS += -DDEBUG -UNDEBUG endif +# LOCAL_SRC_FILES_arch only applies to target modules, but we want them +# for a host module, so append them manually +LOCAL_SRC_FILES += $(LOCAL_SRC_FILES_$(mksnapshot_arch)) +LOCAL_CFLAGS += $(LOCAL_CFLAGS_$(mksnapshot_arch)) + LOCAL_C_INCLUDES := $(LOCAL_PATH)/src # This is on host. @@ -120,3 +114,6 @@ LOCAL_LDLIBS := -lpthread LOCAL_STATIC_LIBRARIES := liblog include $(BUILD_HOST_EXECUTABLE) +else +$(warning mksnapshot.$(mksnapshot_arch): architecture $(mksnapshot_arch) not supported) +endif diff --git a/Android.v8common.mk b/Android.v8common.mk index 4c77a903..d1ffcaf6 100644 --- a/Android.v8common.mk +++ b/Android.v8common.mk @@ -1,6 +1,6 @@ LOCAL_CPP_EXTENSION := .cc -V8_LOCAL_SRC_FILES := \ +LOCAL_SRC_FILES := \ src/accessors.cc \ src/allocation.cc \ src/api.cc \ @@ -100,8 +100,7 @@ V8_LOCAL_SRC_FILES := \ src/version.cc \ src/zone.cc -ifeq ($(TARGET_ARCH),arm) - V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES_arm += \ src/arm/assembler-arm.cc \ src/arm/builtins-arm.cc \ src/arm/codegen-arm.cc \ @@ -120,10 +119,8 @@ ifeq ($(TARGET_ARCH),arm) src/arm/macro-assembler-arm.cc \ src/arm/regexp-macro-assembler-arm.cc \ src/arm/stub-cache-arm.cc -endif -ifeq ($(TARGET_ARCH),mips) - V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES_mips += \ src/mips/assembler-mips.cc \ src/mips/builtins-mips.cc \ src/mips/codegen-mips.cc \ @@ -142,10 +139,8 @@ ifeq ($(TARGET_ARCH),mips) src/mips/macro-assembler-mips.cc \ src/mips/regexp-macro-assembler-mips.cc \ src/mips/stub-cache-mips.cc -endif -ifeq ($(TARGET_ARCH),x86) - V8_LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES_x86 += \ src/ia32/assembler-ia32.cc \ src/ia32/builtins-ia32.cc \ src/ia32/codegen-ia32.cc \ @@ -163,11 +158,10 @@ ifeq ($(TARGET_ARCH),x86) src/ia32/macro-assembler-ia32.cc \ src/ia32/regexp-macro-assembler-ia32.cc \ src/ia32/stub-cache-ia32.cc -endif # Enable DEBUG option. ifeq ($(DEBUG_V8),true) - V8_LOCAL_SRC_FILES += \ + LOCAL_SRC_FILES += \ src/objects-debug.cc \ src/prettyprinter.cc \ src/regexp-macro-assembler-tracer.cc @@ -202,4 +196,3 @@ V8_LOCAL_JS_LIBRARY_FILES += \ V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := \ src/collection.js \ src/proxy.js - |