summaryrefslogtreecommitdiffstats
path: root/webkit/build/JSConfig/create-config.sh
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/build/JSConfig/create-config.sh')
-rwxr-xr-xwebkit/build/JSConfig/create-config.sh103
1 files changed, 103 insertions, 0 deletions
diff --git a/webkit/build/JSConfig/create-config.sh b/webkit/build/JSConfig/create-config.sh
new file mode 100755
index 0000000..8a673cc
--- /dev/null
+++ b/webkit/build/JSConfig/create-config.sh
@@ -0,0 +1,103 @@
+#!/usr/bin/bash -x
+
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# In order to build KJS or V8 versions of Chrome, we need to create
+# a custom configuration header. This script creates it.
+#
+# Input
+# create-config.sh <OutputDir> <kjs|v8>
+#
+# Output
+# in the $Output\WebCore directory, creates a config.h
+# custom to the desired build setup
+#
+set -ex
+#
+# Step 1: Create the webkit config.h which is appropriate for our
+# JavaScript engine.
+#
+if [[ "${OS}" != "Windows_NT" ]]
+then
+ WebCoreObjDir="$1/WebCore"
+ JSHeadersDir="$1/WebCore/JavaScriptHeaders"
+ CP="cp -p"
+else
+ WebCoreObjDir="$1\obj\WebCore"
+ JSHeadersDir="$1\obj\WebCore\JavaScriptHeaders"
+ CP="cp"
+fi
+mkdir -p "$WebCoreObjDir"
+rm -f $WebCoreObjDir/definitions.h 2> /dev/null
+
+
+if [[ "$2" = "kjs" ]]
+then
+ SubDir=/kjs
+ cat > $WebCoreObjDir/definitions.h << -=EOF=-
+#define WTF_USE_JAVASCRIPTCORE_BINDINGS 1
+#define WTF_USE_NPOBJECT 1
+-=EOF=-
+else
+ SubDir=/v8
+ cat > $WebCoreObjDir/definitions.h << -=EOF=-
+#define WTF_USE_V8_BINDING 1
+#define WTF_USE_NPOBJECT 1
+-=EOF=-
+fi
+
+if [[ "${OS}" = "Windows_NT" ]]
+then
+ SubDir=
+fi
+
+mkdir -p "${WebCoreObjDir}${SubDir}"
+
+pwd
+cat ../../config.h.in $WebCoreObjDir/definitions.h > $WebCoreObjDir$SubDir/config.h.new
+if [[ "${OS}" = "Windows_NT" ]] || \
+ ! diff -q $WebCoreObjDir$SubDir/config.h.new $WebCoreObjDir$SubDir/config.h >& /dev/null
+then
+ mv $WebCoreObjDir$SubDir/config.h.new $WebCoreObjDir$SubDir/config.h
+else
+ rm $WebCoreObjDir$SubDir/config.h.new
+fi
+
+rm -f "${WebCoreObjDir}/definitions.h"
+
+#
+# Step 2: Populate the JavaScriptHeaders based on the selected
+# JavaScript engine.
+#
+JSHeadersDir="${JSHeadersDir}${SubDir}"
+mkdir -p $JSHeadersDir
+JavaScriptCoreSrcDir="../../../third_party/WebKit/JavaScriptCore"
+WebCoreSrcDir="../../../third_party/WebKit/WebCore"
+if [[ "$2" = "kjs" ]]
+then
+ mkdir -p $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/APICast.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JavaScript.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSBase.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSContextRef.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSObjectRef.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSStringRef.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSStringRefCF.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSStringRefBSTR.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSValueRef.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JavaScriptCore.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/JSRetainPtr.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/OpaqueJSString.h $JSHeadersDir/JavaScriptCore
+ $CP $JavaScriptCoreSrcDir/API/WebKitAvailability.h $JSHeadersDir/JavaScriptCore
+else
+ $CP $WebCoreSrcDir/bridge/npapi.h $JSHeadersDir
+ $CP $WebCoreSrcDir/bridge/npruntime.h $JSHeadersDir
+ $CP ../../../webkit/port/bindings/v8/npruntime_priv.h $JSHeadersDir
+fi
+
+if [[ "${OS}" = "Windows_NT" ]]
+then
+ $CP $JavaScriptCoreSrcDir/os-win32/stdint.h $JSHeadersDir
+fi