summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk105
-rw-r--r--Source/JavaScriptCore/Android.mk251
-rw-r--r--Source/WebCore/Android.derived.jscbindings.mk753
-rw-r--r--Source/WebCore/Android.jscbindings.mk241
4 files changed, 1348 insertions, 2 deletions
diff --git a/Android.mk b/Android.mk
index 7196ce6..964ce1d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -35,7 +35,46 @@ ifneq ($(SUPPORT_COMPLEX_SCRIPTS),false)
SUPPORT_COMPLEX_SCRIPTS = true
endif
-# See if the desired HTTP stack has been specified.
+# 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.
+# 2. if JS_ENGINE is not set, or is not 'jsc' or 'v8', this makefile picks
+# up a default engine to build.
+# 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)
+
+# We default to the V8 JS engine.
+DEFAULT_ENGINE = v8
+ALT_ENGINE = jsc
+
+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)
+ JAVASCRIPT_ENGINE = $(ALT_ENGINE)
+ else
+ JAVASCRIPT_ENGINE = $(DEFAULT_ENGINE)
+ endif
+ endif
+endif
+
+# V8 also requires an ARMv7 CPU, and since we must use jsc, we cannot
+# use the Chrome http stack either.
+ifneq ($(strip $(ARCH_ARM_HAVE_ARMV7A)),true)
+ JAVASCRIPT_ENGINE := jsc
+ USE_ALT_HTTP := true
+endif
+
+# See if the user has specified a stack they want to use
HTTP_STACK = $(HTTP)
# We default to the Chrome HTTP stack.
DEFAULT_HTTP = chrome
@@ -52,6 +91,14 @@ ifneq ($(HTTP_STACK),chrome)
endif
endif
+# The Chrome stack can not be used with JSC and hence can not be used be used
+# with the simulator.
+ifeq ($(JAVASCRIPT_ENGINE),jsc)
+ ifeq ($(HTTP_STACK),chrome)
+ $(error Can not build with JSC and the Chrome HTTP stack)
+ endif
+endif
+
# Read the environment variable to determine if Autofill is compiled.
# The default is on. Chrome HTTP stack must be used when Autofill
# is turned on.
@@ -213,26 +260,38 @@ LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) \
external/chromium/chrome \
external/skia
+ifeq ($(JAVASCRIPT_ENGINE),v8)
# Include WTF source file.
d := Source/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 := Source/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
+ifeq ($(JAVASCRIPT_ENGINE),v8)
include $(LOCAL_PATH)/Android.v8bindings.mk
+endif
WEBKIT_SRC_FILES += $(addprefix $d/,$(LOCAL_SRC_FILES))
LOCAL_C_INCLUDES += $(BINDING_C_INCLUDES)
# 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
+ifeq ($(JAVASCRIPT_ENGINE),v8)
include $(LOCAL_PATH)/Android.derived.v8bindings.mk
+endif
# Include source files for android WebKit port
d := Source/WebKit
@@ -262,6 +321,14 @@ LOCAL_CPPFLAGS := -Wno-c++0x-compat
# Adds GL and EGL extensions for the GL backend
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
+# Enable JSC JIT if JSC is used and ENABLE_JSC_JIT environment
+# variable is set to true
+ifeq ($(JAVASCRIPT_ENGINE),jsc)
+ifeq ($(ENABLE_JSC_JIT),true)
+LOCAL_CFLAGS += -DENABLE_ANDROID_JSC_JIT=1
+endif
+endif
+
ifeq ($(TARGET_ARCH),arm)
LOCAL_CFLAGS += -Darm
# remove this warning: "note: the mangling of 'va_list' has changed in GCC 4.4"
@@ -324,7 +391,10 @@ LOCAL_CFLAGS += -DSUPPORT_COMPLEX_SCRIPTS=1
endif
# Build the list of static libraries
-LOCAL_STATIC_LIBRARIES := libxml2 libxslt libhyphenation libskiagpu libv8
+LOCAL_STATIC_LIBRARIES := libxml2 libxslt libhyphenation libskiagpu
+ifeq ($(JAVASCRIPT_ENGINE),v8)
+LOCAL_STATIC_LIBRARIES += libv8
+endif
ifeq ($(HTTP_STACK),chrome)
LOCAL_SHARED_LIBRARIES += libcrypto libssl libz libchromium_net
@@ -349,6 +419,34 @@ 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 := Source/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)
@@ -360,6 +458,9 @@ 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_CPPFLAGS := $(WEBKIT_CPPFLAGS)
diff --git a/Source/JavaScriptCore/Android.mk b/Source/JavaScriptCore/Android.mk
new file mode 100644
index 0000000..48f326a
--- /dev/null
+++ b/Source/JavaScriptCore/Android.mk
@@ -0,0 +1,251 @@
+##
+## Copyright 2009, The Android Open Source Project
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions
+## are met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##
+
+LOCAL_SRC_FILES := \
+ API/JSValueRef.cpp \
+ API/JSCallbackConstructor.cpp \
+ API/JSCallbackFunction.cpp \
+ API/JSCallbackObject.cpp \
+ API/JSClassRef.cpp \
+ API/JSObjectRef.cpp \
+ API/JSStringRef.cpp \
+ API/OpaqueJSString.cpp \
+ \
+ assembler/ARMv7Assembler.cpp \
+ \
+ bytecode/CodeBlock.cpp \
+ bytecode/JumpTable.cpp \
+ bytecode/Opcode.cpp \
+ bytecode/SamplingTool.cpp \
+ bytecode/StructureStubInfo.cpp \
+ \
+ bytecompiler/BytecodeGenerator.cpp \
+ bytecompiler/NodesCodegen.cpp \
+ \
+ debugger/Debugger.cpp \
+ debugger/DebuggerActivation.cpp \
+ debugger/DebuggerCallFrame.cpp \
+ \
+ heap/ConservativeRoots.cpp \
+ heap/HandleHeap.cpp \
+ heap/HandleStack.cpp \
+ heap/Heap.cpp \
+ heap/MachineStackMarker.cpp \
+ heap/MarkStack.cpp \
+ heap/MarkStackPosix.cpp \
+ heap/MarkedBlock.cpp \
+ heap/MarkedSpace.cpp \
+ \
+ interpreter/CallFrame.cpp \
+ interpreter/Interpreter.cpp \
+ interpreter/RegisterFile.cpp \
+ \
+ jit/ExecutableAllocator.cpp\
+ jit/ExecutableAllocatorFixedVMPool.cpp \
+ jit/JIT.cpp \
+ jit/JITArithmetic.cpp \
+ jit/JITArithmetic32_64.cpp \
+ jit/JITCall.cpp \
+ jit/JITCall32_64.cpp \
+ jit/JITOpcodes.cpp \
+ jit/JITPropertyAccess.cpp \
+ jit/JITStubs.cpp \
+ jit/ThunkGenerators.cpp \
+ \
+ parser/JSParser.cpp \
+ parser/Lexer.cpp \
+ parser/Nodes.cpp \
+ parser/Parser.cpp \
+ parser/ParserArena.cpp \
+ parser/SourceProviderCache.cpp \
+ \
+ profiler/Profile.cpp \
+ profiler/ProfileGenerator.cpp \
+ profiler/ProfileNode.cpp \
+ profiler/Profiler.cpp \
+ \
+ runtime/ArgList.cpp \
+ runtime/Arguments.cpp \
+ runtime/ArrayConstructor.cpp \
+ runtime/ArrayPrototype.cpp \
+ runtime/BooleanConstructor.cpp \
+ runtime/BooleanObject.cpp \
+ runtime/BooleanPrototype.cpp \
+ runtime/CallData.cpp \
+ runtime/CommonIdentifiers.cpp \
+ runtime/Completion.cpp \
+ runtime/ConstructData.cpp \
+ runtime/DateConstructor.cpp \
+ runtime/DateConversion.cpp \
+ runtime/DateInstance.cpp \
+ runtime/DatePrototype.cpp \
+ runtime/Error.cpp \
+ runtime/ErrorConstructor.cpp \
+ runtime/ErrorInstance.cpp \
+ runtime/ErrorPrototype.cpp \
+ runtime/ExceptionHelpers.cpp \
+ runtime/Executable.cpp \
+ runtime/FunctionConstructor.cpp \
+ runtime/FunctionPrototype.cpp \
+ runtime/GCActivityCallback.cpp \
+ runtime/GetterSetter.cpp \
+ runtime/Identifier.cpp \
+ runtime/InitializeThreading.cpp \
+ runtime/InternalFunction.cpp \
+ runtime/JSAPIValueWrapper.cpp \
+ runtime/JSActivation.cpp \
+ runtime/JSArray.cpp \
+ runtime/JSByteArray.cpp \
+ runtime/JSCell.cpp \
+ runtime/JSChunk.cpp \
+ runtime/JSFunction.cpp \
+ runtime/JSGlobalData.cpp \
+ runtime/JSGlobalObject.cpp \
+ runtime/JSGlobalObjectFunctions.cpp \
+ runtime/JSLock.cpp \
+ runtime/JSNotAnObject.cpp \
+ runtime/JSONObject.cpp \
+ runtime/JSObject.cpp \
+ runtime/JSObjectWithGlobalObject.cpp \
+ runtime/JSPropertyNameIterator.cpp \
+ runtime/JSStaticScopeObject.cpp \
+ runtime/JSString.cpp \
+ runtime/JSValue.cpp \
+ runtime/JSVariableObject.cpp \
+ runtime/JSWrapperObject.cpp \
+ runtime/LiteralParser.cpp \
+ runtime/Lookup.cpp \
+ runtime/MathObject.cpp \
+ runtime/NativeErrorConstructor.cpp \
+ runtime/NativeErrorPrototype.cpp \
+ runtime/NumberConstructor.cpp \
+ runtime/NumberObject.cpp \
+ runtime/NumberPrototype.cpp \
+ runtime/ObjectConstructor.cpp \
+ runtime/ObjectPrototype.cpp \
+ runtime/Operations.cpp \
+ runtime/PropertyDescriptor.cpp \
+ runtime/PropertyNameArray.cpp \
+ runtime/PropertySlot.cpp \
+ runtime/RegExp.cpp \
+ runtime/RegExpCache.cpp \
+ runtime/RegExpConstructor.cpp \
+ runtime/RegExpObject.cpp \
+ runtime/RegExpPrototype.cpp \
+ runtime/RopeImpl.cpp \
+ runtime/ScopeChain.cpp \
+ runtime/SmallStrings.cpp \
+ runtime/StrictEvalActivation.cpp \
+ runtime/StringConstructor.cpp \
+ runtime/StringObject.cpp \
+ runtime/StringPrototype.cpp \
+ runtime/StringRecursionChecker.cpp \
+ runtime/Structure.cpp \
+ runtime/StructureChain.cpp \
+ runtime/TimeoutChecker.cpp \
+ runtime/UString.cpp \
+ \
+ wtf/Assertions.cpp \
+ wtf/ByteArray.cpp \
+ wtf/CryptographicallyRandomNumber.cpp \
+ wtf/CurrentTime.cpp \
+ wtf/DateMath.cpp \
+ wtf/DecimalNumber.cpp \
+ wtf/FastMalloc.cpp \
+ wtf/HashTable.cpp \
+ wtf/MD5.cpp \
+ wtf/MainThread.cpp \
+ wtf/OSAllocatorPosix.cpp \
+ wtf/OSRandomSource.cpp \
+ wtf/PageAllocationAligned.cpp\
+ wtf/PageBlock.cpp\
+ wtf/RandomNumber.cpp \
+ wtf/RefCountedLeakCounter.cpp \
+ wtf/SHA1.cpp \
+ wtf/StackBounds.cpp \
+ wtf/TCSystemAlloc.cpp \
+ wtf/ThreadIdentifierDataPthreads.cpp \
+ wtf/Threading.cpp \
+ wtf/ThreadingPthreads.cpp \
+ wtf/TypeTraits.cpp \
+ wtf/WTFThreadData.cpp \
+ wtf/dtoa.cpp \
+ \
+ wtf/android/MainThreadAndroid.cpp \
+ \
+ wtf/text/AtomicString.cpp \
+ wtf/text/CString.cpp \
+ wtf/text/StringBuilder.cpp \
+ wtf/text/StringImpl.cpp \
+ wtf/text/StringStatics.cpp \
+ wtf/text/WTFString.cpp \
+ \
+ wtf/unicode/CollatorDefault.cpp \
+ wtf/unicode/UTF8.cpp \
+ \
+ wtf/unicode/icu/CollatorICU.cpp \
+ \
+ wtf/url/src/URLCharacterTypes.cpp \
+ wtf/url/src/URLEscape.cpp \
+ wtf/url/src/URLSegments.cpp \
+ \
+ yarr/YarrPattern.cpp \
+ yarr/YarrInterpreter.cpp \
+ yarr/YarrJIT.cpp \
+ yarr/YarrSyntaxChecker.cpp
+
+# generated headers
+JSC_OBJECTS := $(addprefix $(intermediates)/runtime/, \
+ ArrayPrototype.lut.h \
+ DatePrototype.lut.h \
+ JSONObject.lut.h \
+ MathObject.lut.h \
+ NumberConstructor.lut.h \
+ ObjectConstructor.lut.h \
+ RegExpConstructor.lut.h \
+ RegExpObject.lut.h \
+ StringPrototype.lut.h \
+ )
+$(JSC_OBJECTS): PRIVATE_PATH := $(LOCAL_PATH)
+$(JSC_OBJECTS): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/create_hash_table $< -i > $@
+$(JSC_OBJECTS): $(LOCAL_PATH)/create_hash_table
+$(JSC_OBJECTS): $(intermediates)/%.lut.h : $(LOCAL_PATH)/%.cpp
+ $(transform-generated-source)
+
+
+LEXER_HEADER := $(intermediates)/Lexer.lut.h
+$(LEXER_HEADER): PRIVATE_PATH := $(LOCAL_PATH)
+$(LEXER_HEADER): PRIVATE_CUSTOM_TOOL = perl $(PRIVATE_PATH)/create_hash_table $< -i > $@
+$(LEXER_HEADER): $(LOCAL_PATH)/create_hash_table
+$(LEXER_HEADER): $(intermediates)/%.lut.h : $(LOCAL_PATH)/parser/Keywords.table
+ $(transform-generated-source)
+
+REGEXP_JIT_TABLES := $(intermediates)/RegExpJitTables.h
+$(REGEXP_JIT_TABLES): PRIVATE_PATH := $(LOCAL_PATH)
+$(REGEXP_JIT_TABLES): PRIVATE_CUSTOM_TOOL = python $(PRIVATE_PATH)/create_regex_tables > $@
+$(REGEXP_JIT_TABLES): $(LOCAL_PATH)/create_regex_tables
+ $(transform-generated-source)
+
+LOCAL_GENERATED_SOURCES += $(JSC_OBJECTS) $(LEXER_HEADER) $(REGEXP_JIT_TABLES)
diff --git a/Source/WebCore/Android.derived.jscbindings.mk b/Source/WebCore/Android.derived.jscbindings.mk
new file mode 100644
index 0000000..f48fc6a
--- /dev/null
+++ b/Source/WebCore/Android.derived.jscbindings.mk
@@ -0,0 +1,753 @@
+
+##
+## Copyright 2009, The Android Open Source Project
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions
+## are met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##
+
+# lookup tables for old-style JavaScript bindings
+create_hash_table := $(LOCAL_PATH)/../JavaScriptCore/create_hash_table
+
+GEN := $(addprefix $(intermediates)/, \
+ bindings/js/JSDOMWindowBase.lut.h \
+ )
+$(GEN): PRIVATE_CUSTOM_TOOL = perl $(create_hash_table) $< > $@
+$(GEN): $(intermediates)/bindings/js/%.lut.h: $(LOCAL_PATH)/bindings/js/%.cpp $(create_hash_table)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+
+GEN := $(intermediates)/bindings/js/JSHTMLInputElementBaseTable.cpp
+$(GEN): PRIVATE_CUSTOM_TOOL = perl $(create_hash_table) $< > $@
+$(GEN): $(intermediates)/bindings/js/%Table.cpp: $(LOCAL_PATH)/bindings/js/%.cpp $(create_hash_table)
+ $(transform-generated-source)
+$(intermediates)/bindings/js/JSHTMLInputElementBase.o : $(GEN)
+
+# lookup tables for old-style JavaScript bindings
+js_binding_scripts := $(addprefix $(LOCAL_PATH)/,\
+ bindings/scripts/CodeGenerator.pm \
+ bindings/scripts/IDLParser.pm \
+ bindings/scripts/IDLStructure.pm \
+ bindings/scripts/generate-bindings.pl \
+ )
+
+FEATURE_DEFINES := ENABLE_ORIENTATION_EVENTS=1 ENABLE_TOUCH_EVENTS=1 ENABLE_DATABASE=1 ENABLE_OFFLINE_WEB_APPLICATIONS=1 ENABLE_DOM_STORAGE=1 ENABLE_VIDEO=1 ENABLE_GEOLOCATION=1 ENABLE_CONNECTION=1 ENABLE_APPLICATION_INSTALLED=1 ENABLE_XPATH=1 ENABLE_XSLT=1 ENABLE_DEVICE_ORIENTATION=1 ENABLE_FILE_READER=1 ENABLE_BLOB=1 ENABLE_WEB_TIMING=1
+
+ifeq ($(ENABLE_SVG), true)
+ FEATURE_DEFINES += ENABLE_SVG=1
+endif
+
+# CSS
+GEN := \
+ $(intermediates)/css/JSCSSCharsetRule.h \
+ $(intermediates)/css/JSCSSFontFaceRule.h \
+ $(intermediates)/css/JSCSSImportRule.h \
+ $(intermediates)/css/JSCSSMediaRule.h \
+ $(intermediates)/css/JSCSSPageRule.h \
+ $(intermediates)/css/JSCSSPrimitiveValue.h \
+ $(intermediates)/css/JSCSSRule.h \
+ $(intermediates)/css/JSCSSRuleList.h \
+ $(intermediates)/css/JSCSSStyleDeclaration.h \
+ $(intermediates)/css/JSCSSStyleRule.h \
+ $(intermediates)/css/JSCSSStyleSheet.h \
+ $(intermediates)/css/JSCSSValue.h \
+ $(intermediates)/css/JSCSSValueList.h \
+ $(intermediates)/css/JSCounter.h \
+ $(intermediates)/css/JSMediaList.h \
+ $(intermediates)/css/JSMediaQueryList.h \
+ $(intermediates)/css/JSRGBColor.h \
+ $(intermediates)/css/JSRect.h \
+ $(intermediates)/css/JSStyleMedia.h \
+ $(intermediates)/css/JSStyleSheet.h \
+ $(intermediates)/css/JSStyleSheetList.h \
+ $(intermediates)/css/JSWebKitCSSKeyframeRule.h \
+ $(intermediates)/css/JSWebKitCSSKeyframesRule.h \
+ $(intermediates)/css/JSWebKitCSSMatrix.h \
+ $(intermediates)/css/JSWebKitCSSTransformValue.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/css/JS%.h : $(LOCAL_PATH)/css/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/css/%.cpp : $(intermediates)/css/%.h
+
+# DOM
+GEN := \
+ $(intermediates)/dom/JSAttr.h \
+ $(intermediates)/dom/JSBeforeLoadEvent.h \
+ $(intermediates)/dom/JSCDATASection.h \
+ $(intermediates)/dom/JSCharacterData.h \
+ $(intermediates)/dom/JSClientRect.h \
+ $(intermediates)/dom/JSClientRectList.h \
+ $(intermediates)/dom/JSClipboard.h \
+ $(intermediates)/dom/JSComment.h \
+ $(intermediates)/dom/JSCustomEvent.h \
+ $(intermediates)/dom/JSCompositionEvent.h \
+ $(intermediates)/dom/JSDOMCoreException.h \
+ $(intermediates)/dom/JSDOMImplementation.h \
+ $(intermediates)/dom/JSDOMStringList.h \
+ $(intermediates)/dom/JSDOMStringMap.h \
+ $(intermediates)/dom/JSDataTransferItems.h \
+ $(intermediates)/dom/JSDeviceMotionEvent.h \
+ $(intermediates)/dom/JSDeviceOrientationEvent.h \
+ $(intermediates)/dom/JSDocument.h \
+ $(intermediates)/dom/JSDocumentFragment.h \
+ $(intermediates)/dom/JSDocumentType.h \
+ $(intermediates)/dom/JSElement.h \
+ $(intermediates)/dom/JSEntity.h \
+ $(intermediates)/dom/JSEntityReference.h \
+ $(intermediates)/dom/JSErrorEvent.h \
+ $(intermediates)/dom/JSEvent.h \
+ $(intermediates)/dom/JSEventException.h \
+ $(intermediates)/dom/JSHashChangeEvent.h \
+ $(intermediates)/dom/JSKeyboardEvent.h \
+ $(intermediates)/dom/JSMessageChannel.h \
+ $(intermediates)/dom/JSMessageEvent.h \
+ $(intermediates)/dom/JSMessagePort.h \
+ $(intermediates)/dom/JSMouseEvent.h \
+ $(intermediates)/dom/JSMutationEvent.h \
+ $(intermediates)/dom/JSNamedNodeMap.h \
+ $(intermediates)/dom/JSNode.h \
+ $(intermediates)/dom/JSNodeFilter.h \
+ $(intermediates)/dom/JSNodeIterator.h \
+ $(intermediates)/dom/JSNodeList.h \
+ $(intermediates)/dom/JSNotation.h \
+ $(intermediates)/dom/JSOverflowEvent.h \
+ $(intermediates)/dom/JSPageTransitionEvent.h \
+ $(intermediates)/dom/JSPopStateEvent.h \
+ $(intermediates)/dom/JSProcessingInstruction.h \
+ $(intermediates)/dom/JSProgressEvent.h \
+ $(intermediates)/dom/JSRange.h \
+ $(intermediates)/dom/JSRangeException.h \
+ $(intermediates)/dom/JSText.h \
+ $(intermediates)/dom/JSTextEvent.h \
+ $(intermediates)/dom/JSTouch.h \
+ $(intermediates)/dom/JSTouchEvent.h \
+ $(intermediates)/dom/JSTouchList.h \
+ $(intermediates)/dom/JSTreeWalker.h \
+ $(intermediates)/dom/JSUIEvent.h \
+ $(intermediates)/dom/JSWebKitAnimationEvent.h \
+ $(intermediates)/dom/JSWebKitTransitionEvent.h \
+ $(intermediates)/dom/JSWheelEvent.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/dom/JS%.h : $(LOCAL_PATH)/dom/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/dom/%.cpp : $(intermediates)/dom/%.h
+
+# Fileapi
+GEN := \
+ $(intermediates)/fileapi/JSBlob.h \
+ $(intermediates)/fileapi/JSDOMFileSystem.h \
+ $(intermediates)/fileapi/JSDOMFileSystemSync.h \
+ $(intermediates)/fileapi/JSDirectoryEntry.h \
+ $(intermediates)/fileapi/JSDirectoryEntrySync.h \
+ $(intermediates)/fileapi/JSDirectoryReader.h \
+ $(intermediates)/fileapi/JSDirectoryReaderSync.h \
+ $(intermediates)/fileapi/JSEntriesCallback.h \
+ $(intermediates)/fileapi/JSEntry.h \
+ $(intermediates)/fileapi/JSEntryArray.h \
+ $(intermediates)/fileapi/JSEntryArraySync.h \
+ $(intermediates)/fileapi/JSEntryCallback.h \
+ $(intermediates)/fileapi/JSEntrySync.h \
+ $(intermediates)/fileapi/JSErrorCallback.h \
+ $(intermediates)/fileapi/JSFile.h \
+ $(intermediates)/fileapi/JSFileCallback.h \
+ $(intermediates)/fileapi/JSFileEntry.h \
+ $(intermediates)/fileapi/JSFileEntrySync.h \
+ $(intermediates)/fileapi/JSFileError.h \
+ $(intermediates)/fileapi/JSFileException.h \
+ $(intermediates)/fileapi/JSFileList.h \
+ $(intermediates)/fileapi/JSFileReader.h \
+ $(intermediates)/fileapi/JSFileReaderSync.h \
+ $(intermediates)/fileapi/JSFileSystemCallback.h \
+ $(intermediates)/fileapi/JSFileWriter.h \
+ $(intermediates)/fileapi/JSFileWriterCallback.h \
+ $(intermediates)/fileapi/JSMetadata.h \
+ $(intermediates)/fileapi/JSMetadataCallback.h \
+ $(intermediates)/fileapi/JSWebKitBlobBuilder.h \
+ $(intermediates)/fileapi/JSWebKitFlags.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --include fileapi --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/fileapi/JS%.h : $(LOCAL_PATH)/fileapi/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/fileapi/%.cpp : $(intermediates)/fileapi/%.h
+
+# HTML
+GEN := \
+ $(intermediates)/html/JSDOMFormData.h \
+ $(intermediates)/html/JSDOMSettableTokenList.h \
+ $(intermediates)/html/JSDOMTokenList.h \
+ $(intermediates)/html/JSDOMURL.h \
+ $(intermediates)/html/JSDataGridColumn.h \
+ $(intermediates)/html/JSDataGridColumnList.h \
+ $(intermediates)/html/JSHTMLAllCollection.h \
+ $(intermediates)/html/JSHTMLAnchorElement.h \
+ $(intermediates)/html/JSHTMLAppletElement.h \
+ $(intermediates)/html/JSHTMLAreaElement.h \
+ $(intermediates)/html/JSHTMLAudioElement.h \
+ $(intermediates)/html/JSHTMLBRElement.h \
+ $(intermediates)/html/JSHTMLBaseElement.h \
+ $(intermediates)/html/JSHTMLBaseFontElement.h \
+ $(intermediates)/html/JSHTMLBlockquoteElement.h \
+ $(intermediates)/html/JSHTMLBodyElement.h \
+ $(intermediates)/html/JSHTMLButtonElement.h \
+ $(intermediates)/html/JSHTMLCanvasElement.h \
+ $(intermediates)/html/JSHTMLCollection.h \
+ $(intermediates)/html/JSHTMLDataGridElement.h \
+ $(intermediates)/html/JSHTMLDataGridCellElement.h \
+ $(intermediates)/html/JSHTMLDataGridColElement.h \
+ $(intermediates)/html/JSHTMLDataGridRowElement.h \
+ $(intermediates)/html/JSHTMLDataListElement.h \
+ $(intermediates)/html/JSHTMLDetailsElement.h \
+ $(intermediates)/html/JSHTMLDListElement.h \
+ $(intermediates)/html/JSHTMLDirectoryElement.h \
+ $(intermediates)/html/JSHTMLDivElement.h \
+ $(intermediates)/html/JSHTMLDocument.h \
+ $(intermediates)/html/JSHTMLElement.h \
+ $(intermediates)/html/JSHTMLEmbedElement.h \
+ $(intermediates)/html/JSHTMLFieldSetElement.h \
+ $(intermediates)/html/JSHTMLFontElement.h \
+ $(intermediates)/html/JSHTMLFormElement.h \
+ $(intermediates)/html/JSHTMLFrameElement.h \
+ $(intermediates)/html/JSHTMLFrameSetElement.h \
+ $(intermediates)/html/JSHTMLHRElement.h \
+ $(intermediates)/html/JSHTMLHeadElement.h \
+ $(intermediates)/html/JSHTMLHeadingElement.h \
+ $(intermediates)/html/JSHTMLHtmlElement.h \
+ $(intermediates)/html/JSHTMLIFrameElement.h \
+ $(intermediates)/html/JSHTMLImageElement.h \
+ $(intermediates)/html/JSHTMLInputElement.h \
+ $(intermediates)/html/JSHTMLIsIndexElement.h \
+ $(intermediates)/html/JSHTMLKeygenElement.h \
+ $(intermediates)/html/JSHTMLLIElement.h \
+ $(intermediates)/html/JSHTMLLabelElement.h \
+ $(intermediates)/html/JSHTMLLegendElement.h \
+ $(intermediates)/html/JSHTMLLinkElement.h \
+ $(intermediates)/html/JSHTMLMapElement.h \
+ $(intermediates)/html/JSHTMLMarqueeElement.h \
+ $(intermediates)/html/JSHTMLMediaElement.h \
+ $(intermediates)/html/JSHTMLMenuElement.h \
+ $(intermediates)/html/JSHTMLMetaElement.h \
+ $(intermediates)/html/JSHTMLMeterElement.h \
+ $(intermediates)/html/JSHTMLModElement.h \
+ $(intermediates)/html/JSHTMLOListElement.h \
+ $(intermediates)/html/JSHTMLObjectElement.h \
+ $(intermediates)/html/JSHTMLOptGroupElement.h \
+ $(intermediates)/html/JSHTMLOptionElement.h \
+ $(intermediates)/html/JSHTMLOptionsCollection.h \
+ $(intermediates)/html/JSHTMLOutputElement.h \
+ $(intermediates)/html/JSHTMLParagraphElement.h \
+ $(intermediates)/html/JSHTMLParamElement.h \
+ $(intermediates)/html/JSHTMLPreElement.h \
+ $(intermediates)/html/JSHTMLProgressElement.h \
+ $(intermediates)/html/JSHTMLQuoteElement.h \
+ $(intermediates)/html/JSHTMLScriptElement.h \
+ $(intermediates)/html/JSHTMLSelectElement.h \
+ $(intermediates)/html/JSHTMLSourceElement.h \
+ $(intermediates)/html/JSHTMLStyleElement.h \
+ $(intermediates)/html/JSHTMLTableCaptionElement.h \
+ $(intermediates)/html/JSHTMLTableCellElement.h \
+ $(intermediates)/html/JSHTMLTableColElement.h \
+ $(intermediates)/html/JSHTMLTableElement.h \
+ $(intermediates)/html/JSHTMLTableRowElement.h \
+ $(intermediates)/html/JSHTMLTableSectionElement.h \
+ $(intermediates)/html/JSHTMLTextAreaElement.h \
+ $(intermediates)/html/JSHTMLTitleElement.h \
+ $(intermediates)/html/JSHTMLUListElement.h \
+ $(intermediates)/html/JSHTMLVideoElement.h \
+ $(intermediates)/html/JSImageData.h \
+ $(intermediates)/html/JSMediaError.h \
+ $(intermediates)/html/JSTextMetrics.h \
+ $(intermediates)/html/JSTimeRanges.h \
+ $(intermediates)/html/JSValidityState.h \
+ $(intermediates)/html/JSVoidCallback.h
+
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/html/JS%.h : $(LOCAL_PATH)/html/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/html/%.cpp : $(intermediates)/html/%.h
+
+# Canvas
+GEN := \
+ $(intermediates)/html/canvas/JSArrayBuffer.h \
+ $(intermediates)/html/canvas/JSArrayBufferView.h \
+ $(intermediates)/html/canvas/JSCanvasGradient.h \
+ $(intermediates)/html/canvas/JSCanvasPattern.h \
+ $(intermediates)/html/canvas/JSCanvasRenderingContext.h \
+ $(intermediates)/html/canvas/JSCanvasRenderingContext2D.h \
+ $(intermediates)/html/canvas/JSDataView.h \
+ $(intermediates)/html/canvas/JSFloat32Array.h \
+ $(intermediates)/html/canvas/JSFloat64Array.h \
+ $(intermediates)/html/canvas/JSInt8Array.h \
+ $(intermediates)/html/canvas/JSInt16Array.h \
+ $(intermediates)/html/canvas/JSInt32Array.h \
+ $(intermediates)/html/canvas/JSOESTextureFloat.h \
+ $(intermediates)/html/canvas/JSOESVertexArrayObject.h \
+ $(intermediates)/html/canvas/JSUint8Array.h \
+ $(intermediates)/html/canvas/JSUint16Array.h \
+ $(intermediates)/html/canvas/JSUint32Array.h \
+ $(intermediates)/html/canvas/JSWebGLActiveInfo.h \
+ $(intermediates)/html/canvas/JSWebGLBuffer.h \
+ $(intermediates)/html/canvas/JSWebGLFramebuffer.h \
+ $(intermediates)/html/canvas/JSWebGLProgram.h \
+ $(intermediates)/html/canvas/JSWebGLRenderbuffer.h \
+ $(intermediates)/html/canvas/JSWebGLRenderingContext.h \
+ $(intermediates)/html/canvas/JSWebGLShader.h \
+ $(intermediates)/html/canvas/JSWebGLTexture.h \
+ $(intermediates)/html/canvas/JSWebGLUniformLocation.h \
+ $(intermediates)/html/canvas/JSWebGLVertexArrayObjectOES.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/html/canvas/JS%.h : $(LOCAL_PATH)/html/canvas/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/html/canvas/%.cpp : $(intermediates)/html/canvas/%.h
+
+# Appcache
+GEN := \
+ $(intermediates)/loader/appcache/JSDOMApplicationCache.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/loader/appcache/JS%.h : $(LOCAL_PATH)/loader/appcache/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/loader/appcache/%.cpp : $(intermediates)/loader/appcache/%.h
+
+# page
+GEN := \
+ $(intermediates)/page/JSBarInfo.h \
+ $(intermediates)/page/JSConnection.h \
+ $(intermediates)/page/JSConsole.h \
+ $(intermediates)/page/JSCoordinates.h \
+ $(intermediates)/page/JSCrypto.h \
+ $(intermediates)/page/JSDOMSelection.h \
+ $(intermediates)/page/JSDOMWindow.h \
+ $(intermediates)/page/JSEventSource.h \
+ $(intermediates)/page/JSGeolocation.h \
+ $(intermediates)/page/JSGeoposition.h \
+ $(intermediates)/page/JSHistory.h \
+ $(intermediates)/page/JSLocation.h \
+ $(intermediates)/page/JSMemoryInfo.h \
+ $(intermediates)/page/JSNavigator.h \
+ $(intermediates)/page/JSNavigatorUserMediaError.h \
+ $(intermediates)/page/JSNavigatorUserMediaErrorCallback.h \
+ $(intermediates)/page/JSNavigatorUserMediaSuccessCallback.h \
+ $(intermediates)/page/JSPerformance.h \
+ $(intermediates)/page/JSPerformanceNavigation.h \
+ $(intermediates)/page/JSPerformanceTiming.h \
+ $(intermediates)/page/JSPositionError.h \
+ $(intermediates)/page/JSScreen.h \
+ $(intermediates)/page/JSSpeechInputEvent.h \
+ $(intermediates)/page/JSWebKitAnimation.h \
+ $(intermediates)/page/JSWebKitAnimationList.h \
+ $(intermediates)/page/JSWebKitPoint.h \
+ $(intermediates)/page/JSWorkerNavigator.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/page/JS%.h : $(LOCAL_PATH)/page/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/page/%.cpp : $(intermediates)/page/%.h
+
+GEN := \
+ $(intermediates)/plugins/JSDOMMimeType.h \
+ $(intermediates)/plugins/JSDOMMimeTypeArray.h \
+ $(intermediates)/plugins/JSDOMPlugin.h \
+ $(intermediates)/plugins/JSDOMPluginArray.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/plugins/JS%.h : $(LOCAL_PATH)/plugins/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/plugins/%.cpp : $(intermediates)/plugins/%.h
+
+# Database
+GEN := \
+ $(intermediates)/storage/JSDatabase.h \
+ $(intermediates)/storage/JSDatabaseCallback.h \
+ $(intermediates)/storage/JSDatabaseSync.h \
+ $(intermediates)/storage/JSSQLError.h \
+ $(intermediates)/storage/JSSQLException.h \
+ $(intermediates)/storage/JSSQLResultSet.h \
+ $(intermediates)/storage/JSSQLResultSetRowList.h \
+ $(intermediates)/storage/JSSQLStatementCallback.h \
+ $(intermediates)/storage/JSSQLStatementErrorCallback.h \
+ $(intermediates)/storage/JSSQLTransaction.h \
+ $(intermediates)/storage/JSSQLTransactionCallback.h \
+ $(intermediates)/storage/JSSQLTransactionSync.h \
+ $(intermediates)/storage/JSSQLTransactionSyncCallback.h \
+ $(intermediates)/storage/JSSQLTransactionErrorCallback.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --include storage --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/storage/JS%.h : $(LOCAL_PATH)/storage/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/storage/%.cpp : $(intermediates)/storage/%.h
+
+# DOM Storage
+GEN := \
+ $(intermediates)/storage/JSStorage.h \
+ $(intermediates)/storage/JSStorageEvent.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/storage/JS%.h : $(LOCAL_PATH)/storage/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/storage/%.cpp : $(intermediates)/storage/%.h
+
+# Indexed Database
+GEN := \
+ $(intermediates)/storage/JSIDBAny.h \
+ $(intermediates)/storage/JSIDBCursor.h \
+ $(intermediates)/storage/JSIDBCursorWithValue.h \
+ $(intermediates)/storage/JSIDBDatabaseError.h \
+ $(intermediates)/storage/JSIDBDatabaseException.h \
+ $(intermediates)/storage/JSIDBDatabase.h \
+ $(intermediates)/storage/JSIDBFactory.h \
+ $(intermediates)/storage/JSIDBIndex.h \
+ $(intermediates)/storage/JSIDBKey.h \
+ $(intermediates)/storage/JSIDBKeyRange.h \
+ $(intermediates)/storage/JSIDBObjectStore.h \
+ $(intermediates)/storage/JSIDBRequest.h \
+ $(intermediates)/storage/JSIDBTransaction.h \
+ $(intermediates)/storage/JSIDBVersionChangeEvent.h \
+ $(intermediates)/storage/JSIDBVersionChangeRequest.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --include storage --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/storage/JS%.h : $(LOCAL_PATH)/storage/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/storage/%.cpp : $(intermediates)/storage/%.h
+
+# SVG
+ifeq ($(ENABLE_SVG), true)
+GEN := \
+ $(intermediates)/svg/JSSVGAElement.h \
+ $(intermediates)/svg/JSSVGAltGlyphElement.h \
+ $(intermediates)/svg/JSSVGAngle.h \
+ $(intermediates)/svg/JSSVGAnimateColorElement.h \
+ $(intermediates)/svg/JSSVGAnimateElement.h \
+ $(intermediates)/svg/JSSVGAnimateTransformElement.h \
+ $(intermediates)/svg/JSSVGAnimatedAngle.h \
+ $(intermediates)/svg/JSSVGAnimatedBoolean.h \
+ $(intermediates)/svg/JSSVGAnimatedEnumeration.h \
+ $(intermediates)/svg/JSSVGAnimatedInteger.h \
+ $(intermediates)/svg/JSSVGAnimatedLength.h \
+ $(intermediates)/svg/JSSVGAnimatedLengthList.h \
+ $(intermediates)/svg/JSSVGAnimatedNumber.h \
+ $(intermediates)/svg/JSSVGAnimatedNumberList.h \
+ $(intermediates)/svg/JSSVGAnimatedPreserveAspectRatio.h \
+ $(intermediates)/svg/JSSVGAnimatedRect.h \
+ $(intermediates)/svg/JSSVGAnimatedString.h \
+ $(intermediates)/svg/JSSVGAnimatedTransformList.h \
+ $(intermediates)/svg/JSSVGAnimationElement.h \
+ $(intermediates)/svg/JSSVGCircleElement.h \
+ $(intermediates)/svg/JSSVGClipPathElement.h \
+ $(intermediates)/svg/JSSVGColor.h \
+ $(intermediates)/svg/JSSVGComponentTransferFunctionElement.h \
+ $(intermediates)/svg/JSSVGCursorElement.h \
+ $(intermediates)/svg/JSSVGDefsElement.h \
+ $(intermediates)/svg/JSSVGDescElement.h \
+ $(intermediates)/svg/JSSVGDocument.h \
+ $(intermediates)/svg/JSSVGElement.h \
+ $(intermediates)/svg/JSSVGElementInstance.h \
+ $(intermediates)/svg/JSSVGElementInstanceList.h \
+ $(intermediates)/svg/JSSVGEllipseElement.h \
+ $(intermediates)/svg/JSSVGException.h \
+ $(intermediates)/svg/JSSVGFEBlendElement.h \
+ $(intermediates)/svg/JSSVGFEColorMatrixElement.h \
+ $(intermediates)/svg/JSSVGFEComponentTransferElement.h \
+ $(intermediates)/svg/JSSVGFECompositeElement.h \
+ $(intermediates)/svg/JSSVGFEConvolveMatrixElement.h \
+ $(intermediates)/svg/JSSVGFEDiffuseLightingElement.h \
+ $(intermediates)/svg/JSSVGFEDisplacementMapElement.h \
+ $(intermediates)/svg/JSSVGFEDistantLightElement.h \
+ $(intermediates)/svg/JSSVGFEFloodElement.h \
+ $(intermediates)/svg/JSSVGFEFuncAElement.h \
+ $(intermediates)/svg/JSSVGFEFuncBElement.h \
+ $(intermediates)/svg/JSSVGFEFuncGElement.h \
+ $(intermediates)/svg/JSSVGFEFuncRElement.h \
+ $(intermediates)/svg/JSSVGFEGaussianBlurElement.h \
+ $(intermediates)/svg/JSSVGFEImageElement.h \
+ $(intermediates)/svg/JSSVGFEMergeElement.h \
+ $(intermediates)/svg/JSSVGFEMergeNodeElement.h \
+ $(intermediates)/svg/JSSVGFEOffsetElement.h \
+ $(intermediates)/svg/JSSVGFEPointLightElement.h \
+ $(intermediates)/svg/JSSVGFESpecularLightingElement.h \
+ $(intermediates)/svg/JSSVGFESpotLightElement.h \
+ $(intermediates)/svg/JSSVGFETileElement.h \
+ $(intermediates)/svg/JSSVGFETurbulenceElement.h \
+ $(intermediates)/svg/JSSVGFilterElement.h \
+ $(intermediates)/svg/JSSVGFontElement.h \
+ $(intermediates)/svg/JSSVGFontFaceElement.h \
+ $(intermediates)/svg/JSSVGFontFaceFormatElement.h \
+ $(intermediates)/svg/JSSVGFontFaceNameElement.h \
+ $(intermediates)/svg/JSSVGFontFaceSrcElement.h \
+ $(intermediates)/svg/JSSVGFontFaceUriElement.h \
+ $(intermediates)/svg/JSSVGForeignObjectElement.h \
+ $(intermediates)/svg/JSSVGGElement.h \
+ $(intermediates)/svg/JSSVGGlyphElement.h \
+ $(intermediates)/svg/JSSVGGradientElement.h \
+ $(intermediates)/svg/JSSVGHKernElement.h \
+ $(intermediates)/svg/JSSVGImageElement.h \
+ $(intermediates)/svg/JSSVGLength.h \
+ $(intermediates)/svg/JSSVGLengthList.h \
+ $(intermediates)/svg/JSSVGLineElement.h \
+ $(intermediates)/svg/JSSVGLinearGradientElement.h \
+ $(intermediates)/svg/JSSVGMarkerElement.h \
+ $(intermediates)/svg/JSSVGMaskElement.h \
+ $(intermediates)/svg/JSSVGMatrix.h \
+ $(intermediates)/svg/JSSVGMetadataElement.h \
+ $(intermediates)/svg/JSSVGMissingGlyphElement.h \
+ $(intermediates)/svg/JSSVGNumber.h \
+ $(intermediates)/svg/JSSVGNumberList.h \
+ $(intermediates)/svg/JSSVGPaint.h \
+ $(intermediates)/svg/JSSVGPathElement.h \
+ $(intermediates)/svg/JSSVGPathSeg.h \
+ $(intermediates)/svg/JSSVGPathSegArcAbs.h \
+ $(intermediates)/svg/JSSVGPathSegArcRel.h \
+ $(intermediates)/svg/JSSVGPathSegClosePath.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoCubicAbs.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoCubicRel.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoCubicSmoothAbs.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoCubicSmoothRel.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoQuadraticAbs.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoQuadraticRel.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoQuadraticSmoothAbs.h \
+ $(intermediates)/svg/JSSVGPathSegCurvetoQuadraticSmoothRel.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoAbs.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoHorizontalAbs.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoHorizontalRel.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoRel.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoVerticalAbs.h \
+ $(intermediates)/svg/JSSVGPathSegLinetoVerticalRel.h \
+ $(intermediates)/svg/JSSVGPathSegList.h \
+ $(intermediates)/svg/JSSVGPathSegMovetoAbs.h \
+ $(intermediates)/svg/JSSVGPathSegMovetoRel.h \
+ $(intermediates)/svg/JSSVGPatternElement.h \
+ $(intermediates)/svg/JSSVGPoint.h \
+ $(intermediates)/svg/JSSVGPointList.h \
+ $(intermediates)/svg/JSSVGPolygonElement.h \
+ $(intermediates)/svg/JSSVGPolylineElement.h \
+ $(intermediates)/svg/JSSVGPreserveAspectRatio.h \
+ $(intermediates)/svg/JSSVGRadialGradientElement.h \
+ $(intermediates)/svg/JSSVGRect.h \
+ $(intermediates)/svg/JSSVGRectElement.h \
+ $(intermediates)/svg/JSSVGRenderingIntent.h \
+ $(intermediates)/svg/JSSVGSVGElement.h \
+ $(intermediates)/svg/JSSVGScriptElement.h \
+ $(intermediates)/svg/JSSVGSetElement.h \
+ $(intermediates)/svg/JSSVGStopElement.h \
+ $(intermediates)/svg/JSSVGStringList.h \
+ $(intermediates)/svg/JSSVGStyleElement.h \
+ $(intermediates)/svg/JSSVGSwitchElement.h \
+ $(intermediates)/svg/JSSVGSymbolElement.h \
+ $(intermediates)/svg/JSSVGTRefElement.h \
+ $(intermediates)/svg/JSSVGTSpanElement.h \
+ $(intermediates)/svg/JSSVGTextContentElement.h \
+ $(intermediates)/svg/JSSVGTextElement.h \
+ $(intermediates)/svg/JSSVGTextPathElement.h \
+ $(intermediates)/svg/JSSVGTextPositioningElement.h \
+ $(intermediates)/svg/JSSVGTitleElement.h \
+ $(intermediates)/svg/JSSVGTransform.h \
+ $(intermediates)/svg/JSSVGTransformList.h \
+ $(intermediates)/svg/JSSVGUnitTypes.h \
+ $(intermediates)/svg/JSSVGUseElement.h \
+ $(intermediates)/svg/JSSVGViewElement.h \
+ $(intermediates)/svg/JSSVGVKernElement.h \
+ $(intermediates)/svg/JSSVGZoomEvent.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include external/webkit/Source/WebCore/dom --include external/webkit/Source/WebCore/html --include external/webkit/Source/WebCore/svg --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/svg/JS%.h : $(LOCAL_PATH)/svg/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/svg/%.cpp : $(intermediates)/svg/%.h
+endif
+
+# Workers
+GEN := \
+ $(intermediates)/workers/JSAbstractWorker.h \
+ $(intermediates)/workers/JSDedicatedWorkerContext.h \
+ $(intermediates)/workers/JSSharedWorker.h \
+ $(intermediates)/workers/JSSharedWorkerContext.h \
+ $(intermediates)/workers/JSWorker.h \
+ $(intermediates)/workers/JSWorkerContext.h \
+ $(intermediates)/workers/JSWorkerLocation.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/workers/JS%.h : $(LOCAL_PATH)/workers/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/workers/%.cpp : $(intermediates)/workers/%.h
+
+# XML
+GEN := \
+ $(intermediates)/xml/JSDOMParser.h \
+ $(intermediates)/xml/JSXMLHttpRequest.h \
+ $(intermediates)/xml/JSXMLHttpRequestException.h \
+ $(intermediates)/xml/JSXMLHttpRequestProgressEvent.h \
+ $(intermediates)/xml/JSXMLHttpRequestUpload.h \
+ $(intermediates)/xml/JSXMLSerializer.h \
+ $(intermediates)/xml/JSXPathException.h \
+ $(intermediates)/xml/JSXPathExpression.h \
+ $(intermediates)/xml/JSXPathEvaluator.h \
+ $(intermediates)/xml/JSXPathNSResolver.h \
+ $(intermediates)/xml/JSXPathResult.h \
+ $(intermediates)/xml/JSXSLTProcessor.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/xml/JS%.h : $(LOCAL_PATH)/xml/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/xml/%.cpp : $(intermediates)/xml/%.h
+#end
+
+# Inspector
+# These headers are required even when Inspector is disabled.
+# Note that Inspector.idl should not be processed using the JS generator.
+GEN := \
+ $(intermediates)/inspector/JSScriptProfile.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/inspector/JS%.h : $(LOCAL_PATH)/inspector/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/inspector/%.cpp : $(intermediates)/inspector/%.h
+
+# WebAudio
+# These headers are required even when WebAudio is disabled
+GEN := \
+ $(intermediates)/webaudio/JSAudioContext.h \
+ $(intermediates)/webaudio/JSAudioPannerNode.h
+
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I$(PRIVATE_PATH)/bindings/scripts $(PRIVATE_PATH)/bindings/scripts/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --include dom --include html --outputdir $(dir $@) $<
+$(GEN): $(intermediates)/webaudio/JS%.h : $(LOCAL_PATH)/webaudio/%.idl $(js_binding_scripts)
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
+
+# We also need the .cpp files, which are generated as side effects of the
+# above rules. Specifying this explicitly makes -j2 work.
+$(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/webaudio/%.cpp : $(intermediates)/webaudio/%.h
+
+# HTML tag and attribute names
+
+GEN:= $(intermediates)/HTMLNames.cpp $(intermediates)/HTMLNames.h $(intermediates)/HTMLElementFactory.cpp $(intermediates)/HTMLElementFactory.h $(intermediates)/JSHTMLElementWrapperFactory.cpp $(intermediates)/JSHTMLElementWrapperFactory.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --tags $(PRIVATE_PATH)/html/HTMLTagNames.in --attrs $(PRIVATE_PATH)/html/HTMLAttributeNames.in --extraDefines "$(FEATURE_DEFINES)" --factory --wrapperFactory --output $(dir $@)
+$(GEN): $(LOCAL_PATH)/dom/make_names.pl $(LOCAL_PATH)/html/HTMLTagNames.in $(LOCAL_PATH)/html/HTMLAttributeNames.in
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+# SVG tag and attribute names
+
+# Note that if SVG is not used, we still need the headers and SVGNames.cpp as
+# the HTML5 parser still requires these. The factory .cpp files are also
+# generated in this case, but since these are not needed, they are excluded
+# from GEN so that they don't get compiled.
+ifeq ($(ENABLE_SVG), true)
+GEN:= $(intermediates)/SVGNames.cpp $(intermediates)/SVGNames.h $(intermediates)/SVGElementFactory.cpp $(intermediates)/SVGElementFactory.h $(intermediates)/JSSVGElementWrapperFactory.cpp $(intermediates)/JSSVGElementWrapperFactory.h
+else
+GEN:= $(intermediates)/SVGNames.h $(intermediates)/SVGNames.cpp $(intermediates)/SVGElementFactory.h $(intermediates)/JSSVGElementWrapperFactory.h
+endif
+SVG_FLAGS:=ENABLE_SVG_ANIMATION=1 ENABLE_SVG_AS_IMAGE=1 ENABLE_SVG_FILTERS=1 ENABLE_SVG_FONTS=1 ENABLE_SVG_FOREIGN_OBJECT=1 ENABLE_SVG_USE=1
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --tags $(PRIVATE_PATH)/svg/svgtags.in --attrs $(PRIVATE_PATH)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory --output $(dir $@)
+$(GEN): $(LOCAL_PATH)/dom/make_names.pl $(LOCAL_PATH)/svg/svgtags.in $(LOCAL_PATH)/svg/svgattrs.in
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+# MathML tag and attribute names
+
+# Note that MathML is never used but we still need the headers and
+# MathMLames.cpp as the HTML5 parser still requires these. The factory
+# .cpp files are also generated in this case, but since these are not
+# needed, they are excluded from GEN so that they don't get compiled.
+GEN:= $(intermediates)/MathMLNames.h $(intermediates)/MathMLNames.cpp $(intermediates)/MathMLElementFactory.h $(intermediates)/JSMathMLElementWrapperFactory.h
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --tags $(PRIVATE_PATH)/mathml/mathtags.in --attrs $(PRIVATE_PATH)/mathml/mathattrs.in --factory --wrapperFactory --output $(dir $@)
+$(GEN): $(LOCAL_PATH)/dom/make_names.pl $(LOCAL_PATH)/mathml/mathtags.in $(LOCAL_PATH)/mathml/mathattrs.in
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
diff --git a/Source/WebCore/Android.jscbindings.mk b/Source/WebCore/Android.jscbindings.mk
new file mode 100644
index 0000000..09ea61c
--- /dev/null
+++ b/Source/WebCore/Android.jscbindings.mk
@@ -0,0 +1,241 @@
+##
+## Copyright 2009, The Android Open Source Project
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions
+## are met:
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##
+
+BINDING_C_INCLUDES := \
+ $(LOCAL_PATH)/bindings/js \
+ $(LOCAL_PATH)/bindings/js/specialization \
+ $(LOCAL_PATH)/bridge \
+ $(LOCAL_PATH)/bridge/c \
+ $(LOCAL_PATH)/bridge/jni \
+ $(LOCAL_PATH)/bridge/jni/jsc \
+ $(LOCAL_PATH)/bridge/jsc \
+ \
+ $(JAVASCRIPTCORE_PATH)/API \
+ $(JAVASCRIPTCORE_PATH)/assembler \
+ $(JAVASCRIPTCORE_PATH)/bytecode \
+ $(JAVASCRIPTCORE_PATH)/bytecompiler \
+ $(JAVASCRIPTCORE_PATH)/debugger \
+ $(JAVASCRIPTCORE_PATH)/parser \
+ $(JAVASCRIPTCORE_PATH)/jit \
+ $(JAVASCRIPTCORE_PATH)/interpreter \
+ $(JAVASCRIPTCORE_PATH)/profiler \
+ $(JAVASCRIPTCORE_PATH)/runtime \
+ $(JAVASCRIPTCORE_PATH)/yarr \
+ $(JAVASCRIPTCORE_PATH)/ForwardingHeaders \
+ \
+ $(WEBCORE_INTERMEDIATES_PATH)/bindings/js \
+ $(WEBCORE_INTERMEDIATES_PATH)/dom \
+ $(WEBCORE_INTERMEDIATES_PATH)/fileapi \
+ $(WEBCORE_INTERMEDIATES_PATH)/html/canvas \
+ $(WEBCORE_INTERMEDIATES_PATH)/inspector \
+ $(WEBCORE_INTERMEDIATES_PATH)/loader/appcache \
+ $(WEBCORE_INTERMEDIATES_PATH)/page \
+ $(WEBCORE_INTERMEDIATES_PATH)/plugins \
+ $(WEBCORE_INTERMEDIATES_PATH)/storage \
+ $(WEBCORE_INTERMEDIATES_PATH)/svg \
+ $(WEBCORE_INTERMEDIATES_PATH)/webaudio \
+ $(WEBCORE_INTERMEDIATES_PATH)/workers \
+ $(WEBCORE_INTERMEDIATES_PATH)/xml
+
+LOCAL_SRC_FILES += \
+ bindings/js/CallbackFunction.cpp \
+ bindings/js/DOMObjectHashTableMap.cpp \
+ bindings/js/DOMWrapperWorld.cpp \
+ bindings/js/GCController.cpp \
+ bindings/js/IDBBindingUtilities.cpp \
+ bindings/js/JSArrayBufferCustom.cpp \
+ bindings/js/JSAttrCustom.cpp \
+ bindings/js/JSAudioBufferSourceNodeCustom.cpp \
+ bindings/js/JSAudioConstructor.cpp \
+ bindings/js/JSCDATASectionCustom.cpp \
+ bindings/js/JSCSSFontFaceRuleCustom.cpp \
+ bindings/js/JSCSSImportRuleCustom.cpp \
+ bindings/js/JSCSSMediaRuleCustom.cpp \
+ bindings/js/JSCSSPageRuleCustom.cpp \
+ bindings/js/JSCSSRuleCustom.cpp \
+ bindings/js/JSCSSRuleListCustom.cpp \
+ bindings/js/JSCSSStyleDeclarationCustom.cpp \
+ bindings/js/JSCSSStyleRuleCustom.cpp \
+ bindings/js/JSCSSValueCustom.cpp \
+ bindings/js/JSCallbackData.cpp \
+ bindings/js/JSCanvasRenderingContext2DCustom.cpp \
+ bindings/js/JSCanvasRenderingContextCustom.cpp \
+ bindings/js/JSClipboardCustom.cpp \
+ bindings/js/JSConsoleCustom.cpp \
+ bindings/js/JSConvolverNodeCustom.cpp \
+ bindings/js/JSCoordinatesCustom.cpp \
+ bindings/js/JSCustomApplicationInstalledCallback.cpp \
+ bindings/js/JSCustomPositionCallback.cpp \
+ bindings/js/JSCustomPositionErrorCallback.cpp \
+ bindings/js/JSCustomSQLStatementErrorCallback.cpp \
+ bindings/js/JSCustomVoidCallback.cpp \
+ bindings/js/JSDOMApplicationCacheCustom.cpp \
+ bindings/js/JSDOMBinding.cpp \
+ bindings/js/JSDOMFormDataCustom.cpp \
+ bindings/js/JSDOMGlobalObject.cpp \
+ bindings/js/JSDOMImplementationCustom.cpp \
+ bindings/js/JSDOMMimeTypeArrayCustom.cpp \
+ bindings/js/JSDOMPluginArrayCustom.cpp \
+ bindings/js/JSDOMPluginCustom.cpp \
+ bindings/js/JSDOMStringMapCustom.cpp \
+ bindings/js/JSDOMWindowBase.cpp \
+ bindings/js/JSDOMWindowCustom.cpp \
+ bindings/js/JSDOMWindowShell.cpp \
+ bindings/js/JSDOMWrapper.cpp \
+ bindings/js/JSDataGridColumnListCustom.cpp \
+ bindings/js/JSDataGridDataSource.cpp \
+ bindings/js/JSDataViewCustom.cpp \
+ bindings/js/JSDedicatedWorkerContextCustom.cpp \
+ bindings/js/JSDesktopNotificationsCustom.cpp \
+ bindings/js/JSDeviceMotionEventCustom.cpp \
+ bindings/js/JSDeviceOrientationEventCustom.cpp \
+ bindings/js/JSDirectoryEntrySyncCustom.cpp \
+ bindings/js/JSDocumentCustom.cpp \
+ bindings/js/JSElementCustom.cpp \
+ bindings/js/JSEntrySyncCustom.cpp \
+ bindings/js/JSErrorHandler.cpp \
+ bindings/js/JSEventCustom.cpp \
+ bindings/js/JSEventListener.cpp \
+ bindings/js/JSEventTarget.cpp \
+ bindings/js/JSExceptionBase.cpp \
+ bindings/js/JSFloat32ArrayCustom.cpp \
+ bindings/js/JSFloat64ArrayCustom.cpp \
+ bindings/js/JSFileReaderCustom.cpp \
+ bindings/js/JSGeolocationCustom.cpp \
+ bindings/js/JSHTMLAllCollectionCustom.cpp \
+ bindings/js/JSHTMLAppletElementCustom.cpp \
+ bindings/js/JSHTMLCanvasElementCustom.cpp \
+ bindings/js/JSHTMLCollectionCustom.cpp \
+ bindings/js/JSHTMLDataGridElementCustom.cpp \
+ bindings/js/JSHTMLDocumentCustom.cpp \
+ bindings/js/JSHTMLElementCustom.cpp \
+ bindings/js/JSHTMLEmbedElementCustom.cpp \
+ bindings/js/JSHTMLFormElementCustom.cpp \
+ bindings/js/JSHTMLFrameElementCustom.cpp \
+ bindings/js/JSHTMLFrameSetElementCustom.cpp \
+ bindings/js/JSHTMLInputElementCustom.cpp \
+ bindings/js/JSHTMLLinkElementCustom.cpp \
+ bindings/js/JSHTMLObjectElementCustom.cpp \
+ bindings/js/JSHTMLOptionsCollectionCustom.cpp \
+ bindings/js/JSHTMLOutputElementCustom.cpp \
+ bindings/js/JSHTMLSelectElementCustom.cpp \
+ bindings/js/JSHTMLStyleElementCustom.cpp \
+ bindings/js/JSHistoryCustom.cpp \
+ bindings/js/JSIDBAnyCustom.cpp \
+ bindings/js/JSIDBKeyCustom.cpp \
+ bindings/js/JSImageConstructor.cpp \
+ bindings/js/JSImageDataCustom.cpp \
+ bindings/js/JSInt16ArrayCustom.cpp \
+ bindings/js/JSInt32ArrayCustom.cpp \
+ bindings/js/JSInt8ArrayCustom.cpp \
+ bindings/js/JSJavaScriptAudioNodeCustom.cpp \
+ bindings/js/JSLazyEventListener.cpp \
+ bindings/js/JSLocationCustom.cpp \
+ bindings/js/JSMainThreadExecState.cpp \
+ bindings/js/JSMemoryInfoCustom.cpp \
+ bindings/js/JSMessageChannelCustom.cpp \
+ bindings/js/JSMessageEventCustom.cpp \
+ bindings/js/JSMessagePortCustom.cpp \
+ bindings/js/JSNamedNodeMapCustom.cpp \
+ bindings/js/JSNavigatorCustom.cpp \
+ bindings/js/JSNodeCustom.cpp \
+ bindings/js/JSNodeFilterCondition.cpp \
+ bindings/js/JSNodeFilterCustom.cpp \
+ bindings/js/JSNodeIteratorCustom.cpp \
+ bindings/js/JSNodeListCustom.cpp \
+ bindings/js/JSOptionConstructor.cpp \
+ bindings/js/JSPluginElementFunctions.cpp \
+ bindings/js/JSProcessingInstructionCustom.cpp \
+ bindings/js/JSSQLResultSetRowListCustom.cpp \
+ bindings/js/JSSQLTransactionCustom.cpp \
+ bindings/js/JSSQLTransactionSyncCustom.cpp \
+ bindings/js/JSSVGElementInstanceCustom.cpp \
+ bindings/js/JSSVGLengthCustom.cpp \
+ bindings/js/JSSVGPathSegCustom.cpp \
+ bindings/js/JSSharedWorkerCustom.cpp \
+ bindings/js/JSStorageCustom.cpp \
+ bindings/js/JSStyleSheetCustom.cpp \
+ bindings/js/JSStyleSheetListCustom.cpp \
+ bindings/js/JSTextCustom.cpp \
+ bindings/js/JSTouchCustom.cpp \
+ bindings/js/JSTouchListCustom.cpp \
+ bindings/js/JSTreeWalkerCustom.cpp \
+ bindings/js/JSUint16ArrayCustom.cpp \
+ bindings/js/JSUint32ArrayCustom.cpp \
+ bindings/js/JSUint8ArrayCustom.cpp \
+ bindings/js/JSWebKitAnimationCustom.cpp \
+ bindings/js/JSWebKitAnimationListCustom.cpp \
+ bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp \
+ bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp \
+ bindings/js/JSWebKitCSSMatrixCustom.cpp \
+ bindings/js/JSWebKitPointCustom.cpp \
+ bindings/js/JSWorkerContextBase.cpp \
+ bindings/js/JSWorkerContextCustom.cpp \
+ bindings/js/JSWorkerCustom.cpp \
+ bindings/js/JSXMLHttpRequestCustom.cpp \
+ bindings/js/JSXMLHttpRequestUploadCustom.cpp \
+ bindings/js/JSXSLTProcessorCustom.cpp \
+ bindings/js/ScheduledAction.cpp \
+ bindings/js/ScriptCachedFrameData.cpp \
+ bindings/js/ScriptCallStackFactory.cpp \
+ bindings/js/ScriptController.cpp \
+ bindings/js/ScriptControllerAndroid.cpp \
+ bindings/js/ScriptEventListener.cpp \
+ bindings/js/ScriptFunctionCall.cpp \
+ bindings/js/ScriptObject.cpp \
+ bindings/js/ScriptProfile.cpp \
+ bindings/js/ScriptState.cpp \
+ bindings/js/ScriptValue.cpp \
+ bindings/js/SerializedScriptValue.cpp \
+ bindings/js/WorkerScriptController.cpp \
+ \
+ bindings/ScriptControllerBase.cpp \
+ \
+ bridge/IdentifierRep.cpp \
+ bridge/NP_jsobject.cpp \
+ bridge/c/CRuntimeObject.cpp \
+ bridge/c/c_class.cpp \
+ bridge/c/c_instance.cpp \
+ bridge/c/c_runtime.cpp \
+ bridge/c/c_utility.cpp \
+ bridge/jni/JNIUtility.cpp \
+ bridge/jni/JavaMethodJobject.cpp \
+ bridge/jni/JobjectWrapper.cpp \
+ bridge/jni/jsc/JNIUtilityPrivate.cpp \
+ bridge/jni/jsc/JavaArrayJSC.cpp \
+ bridge/jni/jsc/JavaClassJSC.cpp \
+ bridge/jni/jsc/JavaFieldJSC.cpp \
+ bridge/jni/jsc/JavaInstanceJSC.cpp \
+ bridge/jni/jsc/JavaRuntimeObject.cpp \
+ bridge/jsc/BridgeJSC.cpp \
+ bridge/npruntime.cpp \
+ bridge/runtime_array.cpp \
+ bridge/runtime_method.cpp \
+ bridge/runtime_object.cpp \
+ bridge/runtime_root.cpp
+
+# For XPath.
+LOCAL_SRC_FILES += \
+ bindings/js/JSCustomXPathNSResolver.cpp