Home | History | Annotate | Download | only in v8
      1 ##
      2 LOCAL_PATH := $(call my-dir)
      3 # libv8.so
      4 # ===================================================
      5 include $(CLEAR_VARS)
      6 
      7 LOCAL_CXX_STL := libc++
      8 
      9 ifeq ($(TARGET_ARCH),mips)
     10        LOCAL_MIPS_MODE=mips
     11 endif
     12 
     13 # Set up the target identity
     14 LOCAL_MODULE := libv8
     15 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
     16 generated_sources := $(call local-generated-sources-dir)
     17 
     18 LOCAL_MULTILIB := both
     19 
     20 # Android.v8common.mk defines V8_LOCAL_JS_LIBRARY_FILES, LOCAL_SRC_FILES,
     21 # LOCAL_CFLAGS, LOCAL_SRC_FILES_arch, and LOCAL_CFLAGS_arch
     22 V8_LOCAL_JS_LIBRARY_FILES :=
     23 V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES :=
     24 include $(LOCAL_PATH)/Android.v8common.mk
     25 
     26 # Target can only be linux
     27 LOCAL_SRC_FILES += \
     28   src/base/platform/platform-linux.cc \
     29   src/base/platform/platform-posix.cc
     30 
     31 LOCAL_SRC_FILES_x86 += src/base/atomicops_internals_x86_gcc.cc
     32 LOCAL_SRC_FILES_x86_64 += src/base/atomicops_internals_x86_gcc.cc
     33 
     34 LOCAL_JS_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_LIBRARY_FILES))
     35 LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES))
     36 
     37 # Copy js2c.py to generated sources directory and invoke there to avoid
     38 # generating jsmin.pyc in the source directory
     39 JS2C_PY := $(generated_sources)/js2c.py $(generated_sources)/jsmin.py
     40 $(JS2C_PY): $(generated_sources)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP)
     41 	@echo "Copying $@"
     42 	$(copy-file-to-target)
     43 
     44 # Generate libraries.cc
     45 GEN1 := $(generated_sources)/libraries.cc
     46 $(GEN1): SCRIPT := $(generated_sources)/js2c.py
     47 $(GEN1): $(LOCAL_JS_LIBRARY_FILES) $(JS2C_PY)
     48 	@echo "Generating libraries.cc"
     49 	@mkdir -p $(dir $@)
     50 	python $(SCRIPT) $@ CORE $(LOCAL_JS_LIBRARY_FILES)
     51 V8_GENERATED_LIBRARIES := $(generated_sources)/libraries.cc
     52 
     53 # Generate experimental-libraries.cc
     54 GEN2 := $(generated_sources)/experimental-libraries.cc
     55 $(GEN2): SCRIPT := $(generated_sources)/js2c.py
     56 $(GEN2): $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) $(JS2C_PY)
     57 	@echo "Generating experimental-libraries.cc"
     58 	@mkdir -p $(dir $@)
     59 	python $(SCRIPT) $@ EXPERIMENTAL $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES)
     60 V8_GENERATED_LIBRARIES += $(generated_sources)/experimental-libraries.cc
     61 
     62 # Generate extra-libraries.cc
     63 GEN3 := $(generated_sources)/extra-libraries.cc
     64 $(GEN3): SCRIPT := $(generated_sources)/js2c.py
     65 $(GEN3): $(JS2C_PY)
     66 	@echo "Generating extra-libraries.cc"
     67 	@mkdir -p $(dir $@)
     68 	python $(SCRIPT) $@ EXTRAS
     69 V8_GENERATED_LIBRARIES += $(generated_sources)/extra-libraries.cc
     70 
     71 # Generate iexperimental-extra-libraries.cc
     72 GEN3 := $(generated_sources)/experimental-extra-libraries.cc
     73 $(GEN3): SCRIPT := $(generated_sources)/js2c.py
     74 $(GEN3): $(JS2C_PY)
     75 	@echo "Generating experimental-extra-libraries.cc"
     76 	@mkdir -p $(dir $@)
     77 	python $(SCRIPT) $@ EXPERIMENTAL_EXTRAS
     78 V8_GENERATED_LIBRARIES += $(generated_sources)/experimental-extra-libraries.cc
     79 
     80 
     81 LOCAL_GENERATED_SOURCES += $(V8_GENERATED_LIBRARIES)
     82 
     83 LOCAL_SRC_FILES += \
     84 	src/snapshot/snapshot-empty.cc \
     85 
     86 # The -fvisibility=hidden option below prevents exporting of symbols from
     87 # libv8.a.
     88 LOCAL_CFLAGS += \
     89 	-Wno-endif-labels \
     90 	-Wno-import \
     91 	-Wno-format \
     92 	-Wno-unused-parameter \
     93 	-Wno-sign-compare \
     94 	-Wno-missing-field-initializers \
     95 	-fno-exceptions \
     96 	-fvisibility=hidden \
     97 	-DENABLE_DEBUGGER_SUPPORT \
     98 	-DENABLE_LOGGING_AND_PROFILING \
     99 	-DENABLE_VMSTATE_TRACKING \
    100 	-DV8_NATIVE_REGEXP \
    101 	-DV8_I18N_SUPPORT \
    102 	-std=gnu++0x
    103 
    104 LOCAL_CFLAGS_arm += -DV8_TARGET_ARCH_ARM
    105 LOCAL_CFLAGS_arm64 += -DV8_TARGET_ARCH_ARM64
    106 
    107 # atomicops_internals_arm64_gcc.h:77:49: error:
    108 # expected compatible register, symbol or integer in range [0, 4095]
    109 LOCAL_CLANG_CFLAGS_arm64 += -no-integrated-as
    110 
    111 LOCAL_CFLAGS_mips += -DV8_TARGET_ARCH_MIPS \
    112 	-Umips \
    113 	-finline-limit=64 \
    114 	-fno-strict-aliasing
    115 LOCAL_CFLAGS_mips64 += -DV8_TARGET_ARCH_MIPS64 \
    116 	-Umips \
    117 	-finline-limit=64 \
    118 	-fno-strict-aliasing
    119 
    120 LOCAL_CFLAGS_x86 += -DV8_TARGET_ARCH_IA32
    121 LOCAL_CFLAGS_x86_64 += -DV8_TARGET_ARCH_X64
    122 
    123 ifeq ($(DEBUG_V8),true)
    124 	LOCAL_CFLAGS += -DDEBUG -UNDEBUG
    125 endif
    126 
    127 ifdef TARGET_2ND_ARCH
    128 LOCAL_SRC_FILES_$(TARGET_2ND_ARCH) += $(v8_local_src_files_$(TARGET_2ND_ARCH))
    129 endif
    130 
    131 LOCAL_SRC_FILES_$(TARGET_ARCH) += $(v8_local_src_files_$(TARGET_ARCH))
    132 
    133 LOCAL_SHARED_LIBRARIES := libicuuc libicui18n
    134 
    135 LOCAL_C_INCLUDES += $(LOCAL_PATH)/src
    136 
    137 LOCAL_MODULE_TARGET_ARCH_WARN := $(V8_SUPPORTED_ARCH)
    138 
    139 LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
    140 
    141 include $(BUILD_STATIC_LIBRARY)
    142