Home | History | Annotate | Download | only in v8
      1 ##
      2 LOCAL_PATH := $(call my-dir)
      3 # libv8.so
      4 # ===================================================
      5 include $(CLEAR_VARS)
      6 
      7 include external/stlport/libstlport.mk
      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 intermediates := $(call local-intermediates-dir)
     17 
     18 # Android.v8common.mk defines common V8_LOCAL_SRC_FILES
     19 # and V8_LOCAL_JS_LIBRARY_FILES
     20 V8_LOCAL_SRC_FILES :=
     21 V8_LOCAL_JS_LIBRARY_FILES :=
     22 V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES :=
     23 include $(LOCAL_PATH)/Android.v8common.mk
     24 
     25 # Target can only be linux
     26 V8_LOCAL_SRC_FILES += \
     27   src/platform-linux.cc \
     28   src/platform-posix.cc
     29 
     30 ifeq ($(TARGET_ARCH),x86)
     31 V8_LOCAL_SRC_FILES += src/atomicops_internals_x86_gcc.cc
     32 endif
     33 
     34 LOCAL_SRC_FILES := $(V8_LOCAL_SRC_FILES)
     35 
     36 LOCAL_JS_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_LIBRARY_FILES))
     37 LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := $(addprefix $(LOCAL_PATH)/, $(V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES))
     38 
     39 # Copy js2c.py to intermediates directory and invoke there to avoid generating
     40 # jsmin.pyc in the source directory
     41 JS2C_PY := $(intermediates)/js2c.py $(intermediates)/jsmin.py
     42 $(JS2C_PY): $(intermediates)/%.py : $(LOCAL_PATH)/tools/%.py | $(ACP)
     43 	@echo "Copying $@"
     44 	$(copy-file-to-target)
     45 
     46 # Generate libraries.cc
     47 GEN1 := $(intermediates)/libraries.cc
     48 $(GEN1): SCRIPT := $(intermediates)/js2c.py
     49 $(GEN1): $(LOCAL_JS_LIBRARY_FILES) $(JS2C_PY)
     50 	@echo "Generating libraries.cc"
     51 	@mkdir -p $(dir $@)
     52 	python $(SCRIPT) $(GEN1) CORE off $(LOCAL_JS_LIBRARY_FILES)
     53 V8_GENERATED_LIBRARIES := $(intermediates)/libraries.cc
     54 
     55 # Generate experimental-libraries.cc
     56 GEN2 := $(intermediates)/experimental-libraries.cc
     57 $(GEN2): SCRIPT := $(intermediates)/js2c.py
     58 $(GEN2): $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES) $(JS2C_PY)
     59 	@echo "Generating experimental-libraries.cc"
     60 	@mkdir -p $(dir $@)
     61 	python $(SCRIPT) $(GEN2) EXPERIMENTAL off $(LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES)
     62 V8_GENERATED_LIBRARIES += $(intermediates)/experimental-libraries.cc
     63 
     64 LOCAL_GENERATED_SOURCES += $(V8_GENERATED_LIBRARIES)
     65 
     66 # Generate snapshot.cc
     67 ifeq ($(ENABLE_V8_SNAPSHOT),true)
     68 SNAP_GEN := $(intermediates)/snapshot.cc
     69 MKSNAPSHOT := $(HOST_OUT_EXECUTABLES)/mksnapshot.$(TARGET_ARCH)
     70 $(SNAP_GEN): PRIVATE_CUSTOM_TOOL = $(MKSNAPSHOT) --logfile $(intermediates)/v8.log $(SNAP_GEN)
     71 $(SNAP_GEN): $(MKSNAPSHOT)
     72 	$(transform-generated-source)
     73 LOCAL_GENERATED_SOURCES += $(SNAP_GEN)
     74 else
     75 LOCAL_SRC_FILES += \
     76   src/snapshot-empty.cc
     77 endif
     78 
     79 # The -fvisibility=hidden option below prevents exporting of symbols from
     80 # libv8.a in libwebcore.so.  That reduces size of libwebcore.so by 500k.
     81 LOCAL_CFLAGS += \
     82 	-Wno-endif-labels \
     83 	-Wno-import \
     84 	-Wno-format \
     85 	-fno-exceptions \
     86 	-fvisibility=hidden \
     87 	-DENABLE_DEBUGGER_SUPPORT \
     88 	-DENABLE_LOGGING_AND_PROFILING \
     89 	-DENABLE_VMSTATE_TRACKING \
     90 	-DV8_NATIVE_REGEXP
     91 
     92 ifeq ($(TARGET_ARCH),arm)
     93 	LOCAL_CFLAGS += -DARM -DV8_TARGET_ARCH_ARM
     94 endif
     95 
     96 ifeq ($(TARGET_ARCH),mips)
     97 	LOCAL_CFLAGS += -DV8_TARGET_ARCH_MIPS
     98 	LOCAL_CFLAGS += -Umips
     99 	LOCAL_CFLAGS += -finline-limit=64
    100 	LOCAL_CFLAGS += -fno-strict-aliasing
    101 endif
    102 
    103 ifeq ($(TARGET_ARCH),x86)
    104 	LOCAL_CFLAGS += -DV8_TARGET_ARCH_IA32 -fno-pic
    105 endif
    106 
    107 ifeq ($(DEBUG_V8),true)
    108 	LOCAL_CFLAGS += -DDEBUG -UNDEBUG
    109 endif
    110 
    111 LOCAL_C_INCLUDES += $(LOCAL_PATH)/src
    112 
    113 include $(BUILD_STATIC_LIBRARY)
    114