diff options
author | Steve Block <steveblock@google.com> | 2009-11-13 20:36:38 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-11-17 12:06:09 +0000 |
commit | 2a35006024d3c1a6cb14cfc5dd0d6ba487f4b3a1 (patch) | |
tree | c5ef1c7faa2b0c58e7ad9611c36d42d88fa780c0 /Android.mk | |
parent | 3545b177817f5f82c51ac218adf40b7d4baa9753 (diff) | |
download | external_webkit-2a35006024d3c1a6cb14cfc5dd0d6ba487f4b3a1.zip external_webkit-2a35006024d3c1a6cb14cfc5dd0d6ba487f4b3a1.tar.gz external_webkit-2a35006024d3c1a6cb14cfc5dd0d6ba487f4b3a1.tar.bz2 |
Factors out common code from JSC and V8 Makefiles, ready for upstreaming to webkit.org.
Both the JSC and V8 builds use Android.mk, WebCore/Android.mk and WebCore/Android.derived.mk.
The JSC build also uses WebCore/Android.jscbindings.mk and WebCore/Android.derived.jscbindings.mk.
The V8 build also uses V8Bindings/V8Binding.derived.mk.
Change details ...
Android.mk - Added content from both Android.jsc.mk and Android.v8.mk and removed these files.
Added ifdefs to switch between two builds.
WebCore/Android.mk - Moved JSC bindings code to WebCore/Android.jscbindings.mk.
This file is now functionally identical to WebCore/Android.v8.mk, which was removed.
WebCore/Android.derived.mk - Moved JSC bindings code to WebCore/Android.derived.jscbindings.mk.
This file is now functionally identical to WebCore/Android.v8.derived.mk, which was removed.
Also updates copyright dates, as per WebKit requirements.
Change-Id: I92377b60f6f63c57283c316a2c7c2c64a13dc7de
Diffstat (limited to 'Android.mk')
-rw-r--r-- | Android.mk | 349 |
1 files changed, 337 insertions, 12 deletions
@@ -34,18 +34,343 @@ LOCAL_PATH := $(call my-dir) # can be set to true, so that two builds can be different but without # specifying which JS engine to use. -# Check JS_ENGINE environment variable -ifeq ($(JS_ENGINE),jsc) - include $(LOCAL_PATH)/Android.jsc.mk -else - ifeq ($(JS_ENGINE),v8) - include $(LOCAL_PATH)/Android.v8.mk - else +# Read JS_ENGINE environment variable +JAVASCRIPT_ENGINE = $(JS_ENGINE) + +ifneq ($(JAVASCRIPT_ENGINE),jsc) + ifneq ($(JAVASCRIPT_ENGINE),v8) # No JS engine is specified, pickup the one we want as default. ifeq ($(USE_ALT_JS_ENGINE),true) - include $(LOCAL_PATH)/Android.v8.mk + JAVASCRIPT_ENGINE = v8 else - include $(LOCAL_PATH)/Android.jsc.mk - endif # USE_ALT_JS_ENGINE == true - endif # JS_ENGINE == v8 -endif # JS_ENGINE == jsc + JAVASCRIPT_ENGINE = jsc + endif + endif +endif + +BASE_PATH := $(call my-dir) +include $(CLEAR_VARS) + +# Define our module and find the intermediates directory +LOCAL_MODULE := libwebcore +LOCAL_MODULE_CLASS := STATIC_LIBRARIES +base_intermediates := $(call local-intermediates-dir) + +# Using := here prevents recursive expansion +WEBKIT_SRC_FILES := + +# We have to use bison 2.3 +include $(BASE_PATH)/bison_check.mk + +ifeq ($(JAVASCRIPT_ENGINE),v8) +d := V8Binding +LOCAL_PATH := $(BASE_PATH)/$d +WEBCORE_PATH := $(BASE_PATH)/WebCore +intermediates := $(base_intermediates)/WebCore +JAVASCRIPTCORE_PATH := $(BASE_PATH)/JavaScriptCore +include $(LOCAL_PATH)/V8Binding.derived.mk +WEBKIT_SRC_FILES += $(addprefix $d/, $(LOCAL_SRC_FILES)) +WEBKIT_SRC_FILES += $(addprefix WebCore/, $(WEBCORE_SRC_FILES)) + +# Include WTF source file. +d := JavaScriptCore +LOCAL_PATH := $(BASE_PATH)/$d +intermediates := $(base_intermediates)/$d +include $(LOCAL_PATH)/Android.v8.wtf.mk +WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES)) +endif # JAVASCRIPT_ENGINE == v8 + +# Include source files for WebCore +d := WebCore +LOCAL_PATH := $(BASE_PATH)/$d +intermediates := $(base_intermediates)/$d +include $(LOCAL_PATH)/Android.mk +ifeq ($(JAVASCRIPT_ENGINE),jsc) +include $(LOCAL_PATH)/Android.jscbindings.mk +endif +WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES)) + +# Include the derived source files for WebCore. Uses the same path as +# WebCore +include $(LOCAL_PATH)/Android.derived.mk +ifeq ($(JAVASCRIPT_ENGINE),jsc) +include $(LOCAL_PATH)/Android.derived.jscbindings.mk +endif +WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES)) + +# Include source files for android WebKit port +d := WebKit +LOCAL_PATH := $(BASE_PATH)/$d +intermediates := $(base_intermediates)/$d +include $(LOCAL_PATH)/Android.mk +WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES)) + +# Redefine LOCAL_PATH here so the build system is not confused +LOCAL_PATH := $(BASE_PATH) + +# Define our compiler flags +LOCAL_CFLAGS += -Wno-endif-labels -Wno-import -Wno-format +LOCAL_CFLAGS += -fno-strict-aliasing +LOCAL_CFLAGS += -include "WebCorePrefix.h" +LOCAL_CFLAGS += -fvisibility=hidden + +ifeq ($(TARGET_ARCH),arm) +LOCAL_CFLAGS += -Darm +endif + +ifeq ($(ENABLE_SVG),true) +LOCAL_CFLAGS += -DENABLE_SVG=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 + +# LOCAL_LDLIBS is used in simulator builds only and simulator builds are only +# valid on Linux +LOCAL_LDLIBS += -lpthread -ldl + +# Build our list of include paths. We include WebKit/android/icu first so that +# any files that include <unicode/ucnv.h> will include our ucnv.h first. We +# also add external/ as an include directory so that we can specify the real +# icu header directory as a more exact reference to avoid including our ucnv.h. +LOCAL_C_INCLUDES := \ + $(JNI_H_INCLUDE) \ + $(LOCAL_PATH)/WebKit/android/icu \ + external/ \ + external/icu4c/common \ + external/icu4c/i18n \ + external/libxml2/include \ + external/skia/emoji \ + external/skia/include/core \ + external/skia/include/effects \ + external/skia/include/images \ + external/skia/include/ports \ + external/skia/include/utils \ + external/skia/src/ports \ + external/sqlite/dist \ + frameworks/base/core/jni/android/graphics +ifeq ($(JAVASCRIPT_ENGINE),v8) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + external/v8/include +endif + +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/WebCore \ + $(LOCAL_PATH)/WebCore/accessibility \ + $(LOCAL_PATH)/WebCore/css \ + $(LOCAL_PATH)/WebCore/dom \ + $(LOCAL_PATH)/WebCore/editing \ + $(LOCAL_PATH)/WebCore/history \ + $(LOCAL_PATH)/WebCore/html \ + $(LOCAL_PATH)/WebCore/html/canvas \ + $(LOCAL_PATH)/WebCore/inspector \ + $(LOCAL_PATH)/WebCore/loader \ + $(LOCAL_PATH)/WebCore/loader/appcache \ + $(LOCAL_PATH)/WebCore/loader/icon \ + $(LOCAL_PATH)/WebCore/notifications \ + $(LOCAL_PATH)/WebCore/page \ + $(LOCAL_PATH)/WebCore/page/android \ + $(LOCAL_PATH)/WebCore/page/animation \ + $(LOCAL_PATH)/WebCore/platform \ + $(LOCAL_PATH)/WebCore/platform/android \ + $(LOCAL_PATH)/WebCore/platform/animation \ + $(LOCAL_PATH)/WebCore/platform/graphics \ + $(LOCAL_PATH)/WebCore/platform/graphics/android \ + $(LOCAL_PATH)/WebCore/platform/graphics/network \ + $(LOCAL_PATH)/WebCore/platform/graphics/skia \ + $(LOCAL_PATH)/WebCore/platform/graphics/transforms \ + $(LOCAL_PATH)/WebCore/platform/image-decoders \ + $(LOCAL_PATH)/WebCore/platform/mock \ + $(LOCAL_PATH)/WebCore/platform/network \ + $(LOCAL_PATH)/WebCore/platform/network/android \ + $(LOCAL_PATH)/WebCore/platform/sql \ + $(LOCAL_PATH)/WebCore/platform/text \ + $(LOCAL_PATH)/WebCore/plugins \ + $(LOCAL_PATH)/WebCore/plugins/android \ + $(LOCAL_PATH)/WebCore/rendering \ + $(LOCAL_PATH)/WebCore/rendering/style \ + $(LOCAL_PATH)/WebCore/storage \ + $(LOCAL_PATH)/WebCore/workers \ + $(LOCAL_PATH)/WebCore/xml +ifeq ($(JAVASCRIPT_ENGINE),jsc) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/WebCore/bindings/js \ + $(LOCAL_PATH)/WebCore/bridge \ + $(LOCAL_PATH)/WebCore/bridge/c \ + $(LOCAL_PATH)/WebCore/bridge/jni +endif + +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/WebKit/android \ + $(LOCAL_PATH)/WebKit/android/WebCoreSupport \ + $(LOCAL_PATH)/WebKit/android/jni \ + $(LOCAL_PATH)/WebKit/android/nav \ + $(LOCAL_PATH)/WebKit/android/plugins \ + $(LOCAL_PATH)/WebKit/android/stl + +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/JavaScriptCore/wtf \ + $(LOCAL_PATH)/JavaScriptCore/wtf/unicode \ + $(LOCAL_PATH)/JavaScriptCore/wtf/unicode/icu +ifeq ($(JAVASCRIPT_ENGINE),jsc) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/JavaScriptCore \ + $(LOCAL_PATH)/JavaScriptCore/API \ + $(LOCAL_PATH)/JavaScriptCore/assembler \ + $(LOCAL_PATH)/JavaScriptCore/bytecode \ + $(LOCAL_PATH)/JavaScriptCore/bytecompiler \ + $(LOCAL_PATH)/JavaScriptCore/debugger \ + $(LOCAL_PATH)/JavaScriptCore/parser \ + $(LOCAL_PATH)/JavaScriptCore/jit \ + $(LOCAL_PATH)/JavaScriptCore/interpreter \ + $(LOCAL_PATH)/JavaScriptCore/pcre \ + $(LOCAL_PATH)/JavaScriptCore/profiler \ + $(LOCAL_PATH)/JavaScriptCore/runtime \ + $(LOCAL_PATH)/JavaScriptCore/wrec \ + $(LOCAL_PATH)/JavaScriptCore/ForwardingHeaders +endif + +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(base_intermediates)/WebCore/ \ + $(base_intermediates)/WebCore/css \ + $(base_intermediates)/WebCore/html \ + $(base_intermediates)/WebCore/platform +ifeq ($(JAVASCRIPT_ENGINE),jsc) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(base_intermediates)/WebCore/bindings/js \ + $(base_intermediates)/WebCore/dom \ + $(base_intermediates)/WebCore/html/canvas \ + $(base_intermediates)/WebCore/inspector \ + $(base_intermediates)/WebCore/loader/appcache \ + $(base_intermediates)/WebCore/page \ + $(base_intermediates)/WebCore/plugins \ + $(base_intermediates)/WebCore/storage \ + $(base_intermediates)/WebCore/workers \ + $(base_intermediates)/WebCore/xml +endif +ifeq ($(JAVASCRIPT_ENGINE),v8) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(base_intermediates)/WebCore/bindings \ + $(base_intermediates)/JavaScriptCore +endif + +ifeq ($(JAVASCRIPT_ENGINE),v8) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(BINDING_C_INCLUDES) +endif + +ifeq ($(ENABLE_SVG), true) +LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \ + $(LOCAL_PATH)/WebCore/platform/graphics/filters \ + $(LOCAL_PATH)/WebCore/svg \ + $(LOCAL_PATH)/WebCore/svg/animation \ + $(LOCAL_PATH)/WebCore/svg/graphics \ + $(LOCAL_PATH)/WebCore/svg/graphics/filters \ + $(base_intermediates)/WebCore/svg +endif + +# Build the list of shared libraries +LOCAL_SHARED_LIBRARIES := \ + libandroid_runtime \ + libnativehelper \ + libsqlite \ + libskia \ + libutils \ + libui \ + libcutils \ + libicuuc \ + libicudata \ + libicui18n \ + libmedia + +ifeq ($(WEBCORE_INSTRUMENTATION),true) +LOCAL_SHARED_LIBRARIES += libhardware_legacy +endif + +# We have to use the android version of libdl when we are not on the simulator +ifneq ($(TARGET_SIMULATOR),true) +LOCAL_SHARED_LIBRARIES += libdl +endif + +# Build the list of static libraries +LOCAL_STATIC_LIBRARIES := libxml2 +ifeq ($(JAVASCRIPT_ENGINE),v8) +LOCAL_STATIC_LIBRARIES += libv8 +endif + +# Redefine LOCAL_SRC_FILES to be all the WebKit source files +LOCAL_SRC_FILES := $(WEBKIT_SRC_FILES) + +# Define this for use in other makefiles. +WEBKIT_C_INCLUDES := $(LOCAL_C_INCLUDES) +WEBKIT_CFLAGS := $(LOCAL_CFLAGS) +WEBKIT_GENERATED_SOURCES := $(LOCAL_GENERATED_SOURCES) +WEBKIT_LDLIBS := $(LOCAL_LDLIBS) +WEBKIT_SHARED_LIBRARIES := $(LOCAL_SHARED_LIBRARIES) +WEBKIT_STATIC_LIBRARIES := $(LOCAL_STATIC_LIBRARIES) + +# Build the library all at once +include $(BUILD_STATIC_LIBRARY) + +ifeq ($(JAVASCRIPT_ENGINE),jsc) +# Now build libjs as a static library. +include $(CLEAR_VARS) +LOCAL_MODULE := libjs +LOCAL_LDLIBS := $(WEBKIT_LDLIBS) +LOCAL_SHARED_LIBRARIES := $(WEBKIT_SHARED_LIBRARIES) +LOCAL_STATIC_LIBRARIES := $(WEBKIT_STATIC_LIBRARIES) +LOCAL_CFLAGS := $(WEBKIT_CFLAGS) +# Include source files for JavaScriptCore +d := JavaScriptCore +LOCAL_PATH := $(BASE_PATH)/$d +LOCAL_MODULE_CLASS := STATIC_LIBRARIES +# Cannot use base_intermediates as this is a new module +intermediates := $(call local-intermediates-dir) +include $(LOCAL_PATH)/Android.mk +# Redefine LOCAL_SRC_FILES with the correct prefix +LOCAL_SRC_FILES := $(addprefix $d/,$(LOCAL_SRC_FILES)) +# Use the base path to resolve file names +LOCAL_PATH := $(BASE_PATH) +# Append jsc intermediate include paths to the WebKit include list. +LOCAL_C_INCLUDES := $(WEBKIT_C_INCLUDES) \ + $(intermediates) \ + $(intermediates)/parser \ + $(intermediates)/runtime \ +# Build libjs +include $(BUILD_STATIC_LIBRARY) +endif # JAVASCRIPT_ENGINE == jsc + +# Now build the shared library using only the exported jni entry point. This +# 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 +#LOCAL_PRELINK_MODULE := false +LOCAL_MODULE := libwebcore +LOCAL_LDLIBS := $(WEBKIT_LDLIBS) +LOCAL_SHARED_LIBRARIES := $(WEBKIT_SHARED_LIBRARIES) +LOCAL_STATIC_LIBRARIES := libwebcore $(WEBKIT_STATIC_LIBRARIES) +ifeq ($(JAVASCRIPT_ENGINE),jsc) +LOCAL_STATIC_LIBRARIES += libjs +endif +LOCAL_LDFLAGS := -fvisibility=hidden +LOCAL_CFLAGS := $(WEBKIT_CFLAGS) +LOCAL_C_INCLUDES := $(WEBKIT_C_INCLUDES) +LOCAL_PATH := $(BASE_PATH) +LOCAL_SRC_FILES := \ + WebKit/android/jni/WebCoreJniOnLoad.cpp +include $(BUILD_SHARED_LIBRARY) + +# Build the wds client +include $(BASE_PATH)/WebKit/android/wds/client/Android.mk + +# Build the performance command line tool. +#include $(BASE_PATH)/perf/Android.mk + +# Build the webkit merge tool. +include $(BASE_PATH)/WebKitTools/android/webkitmerge/Android.mk |