LOCAL_PATH := $(call my-dir)
+# Control SVG compiling in webkit.
+# Default is true unless explictly disabled.
+ifneq ($(ENABLE_SVG),false)
+ ENABLE_SVG = true
+endif
+
+# Control complex scripts support compiling in webkit.
+# Default is true unless explictly disabled.
+ifneq ($(SUPPORT_COMPLEX_SCRIPTS),false)
+ SUPPORT_COMPLEX_SCRIPTS = true
+endif
+
# Two ways to control which JS engine is used:
# 1. use JS_ENGINE environment variable, value can be either 'jsc' or 'v8'
# This is the preferred way.
# To help setup buildbot, a new environment variable, USE_ALT_JS_ENGINE,
# can be set to true, so that two builds can be different but without
# specifying which JS engine to use.
+# To enable JIT in Android's JSC, please set ENABLE_JSC_JIT environment
+# variable to true.
# To enable JIT in Android's JSC, please set ENABLE_JSC_JIT environment
# variable to true.
# Read JS_ENGINE environment variable
JAVASCRIPT_ENGINE = $(JS_ENGINE)
-# The default / alternative engine depends on the device class.
-# On devices with a lot of memory (e.g. Passion/Sholes), the
-# default is V8. On everything else, the only choice is JSC.
-# TODO: use ARCH_ARM_HAVE_ARMV7 once that variable is added to
-# the build system.
-ifeq ($(ARCH_ARM_HAVE_VFP),true)
- DEFAULT_ENGINE = v8
- ALT_ENGINE = jsc
+# We default to the V8 JS engine on everything except the simulator where
+# we stick with JSC.
+ifneq ($(TARGET_SIMULATOR),true)
+DEFAULT_ENGINE = v8
+ALT_ENGINE = jsc
else
- DEFAULT_ENGINE = jsc
- ALT_ENGINE = jsc
+DEFAULT_ENGINE = jsc
+ALT_ENGINE = jsc
endif
ifneq ($(JAVASCRIPT_ENGINE),jsc)
endif
endif
+# Read the HTTP_STACK environment variable, default is android
+ifneq ($(TARGET_SIMULATOR),true)
+HTTP_STACK = $(HTTP)
+ifeq ($(HTTP_STACK),chrome)
+ # Chrome net stack has dependencies on V8.
+ ifeq ($(JAVASCRIPT_ENGINE), v8)
+ HTTP_STACK = chrome
+ endif
+endif
+endif
+
BASE_PATH := $(call my-dir)
include $(CLEAR_VARS)
external/icu4c/common \
external/icu4c/i18n \
external/libxml2/include \
+ external/libxslt \
+ external/hyphenation \
external/skia/emoji \
external/skia/include/core \
external/skia/include/effects \
LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \
$(LOCAL_PATH)/WebCore \
$(LOCAL_PATH)/WebCore/accessibility \
+ $(LOCAL_PATH)/WebCore/bindings/ \
$(LOCAL_PATH)/WebCore/bindings/generic \
$(LOCAL_PATH)/WebCore/css \
$(LOCAL_PATH)/WebCore/dom \
$(LOCAL_PATH)/WebCore/inspector \
$(LOCAL_PATH)/WebCore/loader \
$(LOCAL_PATH)/WebCore/loader/appcache \
+ $(LOCAL_PATH)/WebCore/loader/archive \
+ $(LOCAL_PATH)/WebCore/loader/archive/android \
$(LOCAL_PATH)/WebCore/loader/icon \
$(LOCAL_PATH)/WebCore/notifications \
$(LOCAL_PATH)/WebCore/page \
$(LOCAL_PATH)/WebCore/platform/network/android \
$(LOCAL_PATH)/WebCore/platform/sql \
$(LOCAL_PATH)/WebCore/platform/text \
+ $(LOCAL_PATH)/WebCore/platform/text/transcoder \
$(LOCAL_PATH)/WebCore/plugins \
$(LOCAL_PATH)/WebCore/plugins/android \
$(LOCAL_PATH)/WebCore/rendering \
include $(LOCAL_PATH)/Android.mk
WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES))
+ifeq ($(HTTP_STACK),chrome)
+LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \
+ $(LOCAL_PATH)/WebKit/chromium/public \
+ external/chromium \
+ external/chromium/android
+endif # HTTP_STACK == chrome
+
# Redefine LOCAL_PATH here so the build system is not confused
LOCAL_PATH := $(BASE_PATH)
LOCAL_CFLAGS += -fno-strict-aliasing
LOCAL_CFLAGS += -include "WebCorePrefix.h"
LOCAL_CFLAGS += -fvisibility=hidden
+ifeq ($(HTTP_STACK),chrome)
+LOCAL_CFLAGS += -DGOOGLEURL
+LOCAL_CFLAGS += -DWTF_USE_CHROME_NETWORK_STACK
+LOCAL_CFLAGS += -include "assert.h"
+endif # HTTP_STACK == chrome
# Enable JSC JIT if JSC is used and ENABLE_JSC_JIT environment
# variable is set to true
endif
ifeq ($(ENABLE_SVG),true)
-LOCAL_CFLAGS += -DENABLE_SVG=1
+LOCAL_CFLAGS += -DENABLE_SVG=1 -DENABLE_SVG_ANIMATION=1
endif
ifeq ($(ENABLE_WTF_USE_ACCELERATED_COMPOSITING),false)
LOCAL_CFLAGS += -DWTF_USE_ACCELERATED_COMPOSITING=1
endif
-# Temporary disable SVG_ANIMATION.
-ifeq ($(ENABLE_SVG_ANIMATION),true)
-LOCAL_CFLAGS += -DENABLE_SVG_ANIMATION=1
-endif
-
ifeq ($(WEBCORE_INSTRUMENTATION),true)
LOCAL_CFLAGS += -DANDROID_INSTRUMENT
endif
libui \
libcutils \
libicuuc \
- libicudata \
libicui18n \
libmedia \
libsurfaceflinger_client
include external/stlport/libstlport.mk
endif
+# We need Harfbuzz library to support complex scripts(Arabic, Thai, Hindi...).
+ifeq ($(SUPPORT_COMPLEX_SCRIPTS),true)
+LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \
+ external/harfbuzz/src \
+ external/harfbuzz/contrib
+LOCAL_SHARED_LIBRARIES += libharfbuzz
+LOCAL_CFLAGS += -DSUPPORT_COMPLEX_SCRIPTS=1
+endif
+
# Build the list of static libraries
-LOCAL_STATIC_LIBRARIES := libxml2
+LOCAL_STATIC_LIBRARIES := libxml2 libxslt libhyphenation
ifeq ($(JAVASCRIPT_ENGINE),v8)
LOCAL_STATIC_LIBRARIES += libv8
endif
+ifeq ($(HTTP_STACK),chrome)
+LOCAL_STATIC_LIBRARIES += libchromium_net
+LOCAL_SHARED_LIBRARIES += libcrypto libssl libz
+endif # HTTP_STACK == chrome
+
# Redefine LOCAL_SRC_FILES to be all the WebKit source files
LOCAL_SRC_FILES := $(WEBKIT_SRC_FILES)
# will strip out any unused code from the entry point.
include $(CLEAR_VARS)
# if you need to make webcore huge (for debugging), enable this line
+ifeq ($(HTTP_STACK),chrome)
+# Too large for the space with chromium linked in
+LOCAL_PRELINK_MODULE := false
+endif
#LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libwebcore
LOCAL_LDLIBS := $(WEBKIT_LDLIBS)