diff options
-rw-r--r-- | conf/distro/include/sane-srcrevs.inc | 2 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/GNUmakefile.am | 56 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/WebKit.pri | 148 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/WebKit.pro | 21 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/acinclude.m4 | 356 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/configure.ac | 24 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk/symbols.filter | 5 | ||||
-rw-r--r-- | packages/webkit/webkit-gtk_svn.bb | 5 |
8 files changed, 489 insertions, 128 deletions
diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 5c4a23764c..ff9bfb42d6 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -178,7 +178,7 @@ SRCREV_pn-u-boot-openmoko ?= "ba029a1426bfca169572bf80d50a8b190a6b0e19" SRCREV_pn-u-boot-openmoko-devel ?= "ba029a1426bfca169572bf80d50a8b190a6b0e19" SRCREV_pn-usbpath ?= "3172" SRCREV_pn-usbpath-native ?= "3172" -SRCREV_pn-webkit-gtk ?= "35533" +SRCREV_pn-webkit-gtk ?= "35977" SRCREV_pn-webkit-qt ?= "28656" SRCREV_pn-webkit-qtopia ?= "28656" SRCREV_pn-wesnoth ?= "22021" diff --git a/packages/webkit/webkit-gtk/GNUmakefile.am b/packages/webkit/webkit-gtk/GNUmakefile.am index 9b2f06f88d..50149563ac 100644 --- a/packages/webkit/webkit-gtk/GNUmakefile.am +++ b/packages/webkit/webkit-gtk/GNUmakefile.am @@ -5,7 +5,6 @@ # _h_api = API headers that will be installed and included in the distribution # _cppflags = flags that will be passed to the C/CXX Preprocessor # _sources = sources that will be compiled and included in the distribution -# _headers = header files that will be part of the distribution # _built_sources = files that will be autogenerated by the build system and # will be part of the _SOURCES primary # _built_nosources = files that are autogenerated but are not part of the @@ -42,13 +41,12 @@ bin_PROGRAMS := noinst_PROGRAMS := +noinst_HEADERS := + lib_LIBRARIES := IDL_BINDINGS := -# Files that will be distributed -EXTRA_DIST := - # Global flags to CPP global_cppflags := @@ -96,6 +94,7 @@ javascriptcore_cppflags:= javascriptcore_sources := javascriptcore_built_sources := javascriptcore_built_nosources := +javascriptcore_dist := javascriptcore_cppflags += \ -I$(srcdir)/JavaScriptCore \ @@ -146,21 +145,18 @@ libJavaScriptCore_la_CPPFLAGS = \ # WebCore webcore_cppflags := webcore_sources := -webcore_headers := webcore_libadd := webcore_built_sources := webcore_built_nosources := +webcore_dist := webcoregtk_cppflags := webcoregtk_sources := -webcoregtk_headers := nodist_libWebCore_la_SOURCES = \ $(webcore_built_sources) libWebCore_la_SOURCES = \ - $(webcore_headers) \ $(webcore_sources) \ - $(webcoregtk_headers) \ $(webcoregtk_sources) libWebCore_la_CXXFLAGS = \ @@ -171,6 +167,7 @@ libWebCore_la_CXXFLAGS = \ $(GLOBALDEPS_CFLAGS) \ $(UNICODE_CFLAGS) \ $(WEBKITDEPS_CFLAGS) \ + $(XT_CFLAGS) \ $(LIBCURL_CFLAGS) \ $(LIBSOUP_CFLAGS) \ $(FREETYPE_CFLAGS) \ @@ -187,6 +184,7 @@ libWebCore_la_CFLAGS = \ $(GLOBALDEPS_CFLAGS) \ $(UNICODE_CFLAGS) \ $(WEBKITDEPS_CFLAGS) \ + $(XT_CFLAGS) \ $(LIBCURL_CFLAGS) \ $(LIBSOUP_CFLAGS) \ $(FREETYPE_CFLAGS) \ @@ -208,6 +206,7 @@ libWebCore_la_LIBADD = \ $(webcore_libadd) \ $(GLOBALDEPS_LIBS) \ $(WEBKITDEPS_LIBS) \ + $(XT_LIBS) \ $(LIBCURL_LIBS) \ $(LIBSOUP_LIBS) \ $(FREETYPE_LIBS) \ @@ -221,7 +220,6 @@ libWebCore_la_LIBADD = \ # WebKit webkitgtk_h_api := -webkitgtk_headers := webkitgtk_sources := webkitgtk_cppflags := webkitgtk_built_sources := @@ -237,7 +235,6 @@ libwebkit_1_0_la_HEADERS = \ WebKit/gtk/webkit/webkitenumtypes.h libwebkit_1_0_la_SOURCES = \ - $(webkitgtk_headers) \ $(webkitgtk_sources) libwebkit_1_0_la_CXXFLAGS = \ @@ -253,6 +250,7 @@ libwebkit_1_0_la_CPPFLAGS = \ libwebkit_1_0_la_LDFLAGS = \ $(COVERAGE_LDFLAGS) \ -version-info @LIBWEBKITGTK_VERSION@ \ + -Wl,--version-script,$(srcdir)/symbols.filter \ $(no_undefined) libwebkit_1_0_la_LIBADD = \ @@ -272,7 +270,6 @@ endif if TARGET_X11 global_cppflags += -DXP_UNIX -webcore_libadd += -lXt endif if !ENABLE_DEBUG @@ -320,37 +317,35 @@ webkitgtk_h_api += \ WebKit/gtk/webkit/webkitwebview.h webkitgtk_built_sources += \ - DerivedSources/webkitmarshal.h \ - DerivedSources/webkitmarshal.cpp \ DerivedSources/webkitenumtypes.cpp \ + DerivedSources/webkitmarshal.cpp \ + DerivedSources/webkitmarshal.h \ WebKit/gtk/webkit/webkitenumtypes.h -webkitgtk_headers += \ - WebKit/gtk/webkit/webkitprivate.h \ +webkitgtk_sources += \ + WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \ + WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \ WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \ + WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \ WebKit/gtk/WebCoreSupport/DragClientGtk.h \ + WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \ WebKit/gtk/WebCoreSupport/EditorClientGtk.h \ + WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \ WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h \ + WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ WebKit/gtk/WebCoreSupport/InspectorClientGtk.h \ - WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h - -webkitgtk_sources += \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp \ + WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h \ WebKit/gtk/webkit/webkitnetworkrequest.cpp \ WebKit/gtk/webkit/webkitprivate.cpp \ + WebKit/gtk/webkit/webkitprivate.h \ WebKit/gtk/webkit/webkitversion.cpp \ WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \ WebKit/gtk/webkit/webkitwebframe.cpp \ WebKit/gtk/webkit/webkitwebhistoryitem.cpp \ WebKit/gtk/webkit/webkitwebsettings.cpp \ - WebKit/gtk/webkit/webkitwebview.cpp \ - WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ - WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp + WebKit/gtk/webkit/webkitwebview.cpp webkitgtk_cppflags += \ -DBUILDING_WEBKIT \ @@ -403,7 +398,7 @@ stamp-webkitmarshal.h: $(WEBKIT_MARSHAL_LIST) WebKit/gtk/webkit/webkitenumtypes.h: stamp-webkitenumtypes.h @true -stamp-webkitenumtypes.h: $(webkitgtk_h_api) Makefile +stamp-webkitenumtypes.h: $(webkitgtk_h_api) GNUmakefile (cd $(srcdir) \ && glib-mkenums \ --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \ @@ -425,7 +420,7 @@ stamp-webkitenumtypes.h: $(webkitgtk_h_api) Makefile && rm -f xgen-gth \ && echo timestamp > $(@F) -DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) Makefile +DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) GNUmakefile (cd $(srcdir) \ && glib-mkenums \ --fhead "#include <config.h>\n" \ @@ -449,6 +444,11 @@ DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) Makefile && rm -f xgen-gtc # END WEBKIT GTK+ +# +# Files that will be distributed +EXTRA_DIST = \ + $(javascriptcore_dist) \ + $(webcore_dist) # Files that will be cleaned MAINTAINERCLEANFILES := $(stamp_files) $(BUILT_SOURCES) diff --git a/packages/webkit/webkit-gtk/WebKit.pri b/packages/webkit/webkit-gtk/WebKit.pri index d12423beb2..a869906288 100644 --- a/packages/webkit/webkit-gtk/WebKit.pri +++ b/packages/webkit/webkit-gtk/WebKit.pri @@ -6,102 +6,84 @@ isEmpty(OUTPUT_DIR) { CONFIG(debug):OUTPUT_DIR=$$PWD/WebKitBuild/Debug } -!gtk-port:CONFIG += qt-port -qt-port:DEFINES += BUILDING_QT__=1 -qt-port:!building-libs { +DEFINES += BUILDING_QT__=1 +building-libs { + win32-msvc*: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32 +} else { QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR LIBS += -lQtWebKit DEPENDPATH += $$PWD/WebKit/qt/Api } -gtk-port:!building-libs { - QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR - LIBS += -lWebKitGtk - DEPENDPATH += $$PWD/WebKit/gtk $$PWD/WebKit/gtk/WebCoreSupport $$PWD/WebKit/gtk/webkit +DEFINES += USE_SYSTEM_MALLOC +CONFIG(release) { + DEFINES += NDEBUG } -gtk-port { - CONFIG += link_pkgconfig - - DEFINES += BUILDING_CAIRO__=1 BUILDING_GTK__=1 - - # We use FreeType directly with Cairo - PKGCONFIG += cairo-ft - - directfb: PKGCONFIG += cairo-directfb gtk+-directfb-2.0 - else: PKGCONFIG += cairo gtk+-2.0 - - # Set a CONFIG flag for the GTK+ target (x11, quartz, win32, directfb) - CONFIG += $$system(pkg-config --variable=target $$PKGCONFIG) - - # We use the curl http backend on all platforms - PKGCONFIG += libcurl - DEFINES += WTF_USE_CURL=1 +BASE_DIR = $$PWD +INCLUDEPATH += $$PWD/WebKit/qt/Api + +# +# For builds inside Qt we interpret the output rule and the input of each extra compiler manually +# and add the resulting sources to the SOURCES variable, because the build inside Qt contains already +# all the generated files. We do not need to generate any extra compiler rules in that case. +# +# In addition this function adds a new target called 'generated_files' that allows manually calling +# all the extra compilers to generate all the necessary files for the build using 'make generated_files' +# +defineTest(addExtraCompiler) { + CONFIG(QTDIR_build) { + outputRule = $$eval($${1}.output) + + input = $$eval($${1}.input) + input = $$eval($$input) + + for(file,input) { + base = $$basename(file) + base ~= s/\..+// + newfile=$$replace(outputRule,\\$\\{QMAKE_FILE_BASE\\},$$base) + SOURCES += $$newfile + } + + export(SOURCES) + } else { + QMAKE_EXTRA_COMPILERS += $$1 + generated_files.depends += compiler_$${1}_make_all + export(QMAKE_EXTRA_COMPILERS) + export(generated_files.depends) + } + return(true) +} - LIBS += -lWebKitGtk -ljpeg -lpng +defineTest(addExtraCompilerWithHeader) { + addExtraCompiler($$1) - QMAKE_CXXFLAGS += $$system(icu-config --cppflags) - QMAKE_LIBS += $$system(icu-config --ldflags) + eval(headerFile = $${2}) + isEmpty(headerFile) { + eval($${1}_header.output = $$eval($${1}.output)) + eval($${1}_header.output ~= s/\.cpp/.h/) + eval($${1}_header.output ~= s/\.c/.h/) + } else { + eval($${1}_header.output = $$headerFile) + } - # This set of warnings is borrowed from the Mac build - QMAKE_CXXFLAGS += -Wall -W -Wcast-align -Wchar-subscripts -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-format-y2k -Wno-unused-parameter -Wundef + eval($${1}_header.input = $$eval($${1}.input)) + eval($${1}_header.commands = @echo -n '') + eval($${1}_header.depends = compiler_$${1}_make_all) + eval($${1}_header.variable_out = GENERATED_FILES) - # These flags are based on optimization experience from the Mac port: - # Helps code size significantly and speed a little - QMAKE_CXXFLAGS += -fno-exceptions -fno-rtti + export($${1}_header.output) + export($${1}_header.input) + export($${1}_header.commands) + export($${1}_header.depends) + export($${1}_header.variable_out) - DEPENDPATH += $$PWD/JavaScriptCore/API - INCLUDEPATH += $$PWD -} + !CONFIG(QTDIR_build): QMAKE_EXTRA_COMPILERS += $${1}_header -DEFINES += USE_SYSTEM_MALLOC -CONFIG(release) { - DEFINES += NDEBUG -} + export(QMAKE_EXTRA_COMPILERS) + export(generated_files.depends) + export(SOURCES) -gtk-port:CONFIG(debug) { - DEFINES += G_DISABLE_DEPRECATED GDK_PIXBUF_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED GTK_DISABLE_DEPRECATED PANGO_DISABLE_DEPRECATED -# maybe useful for debugging DEFINES += GDK_MULTIHEAD_SAFE GTK_MULTIHEAD_SAFE + return(true) } -BASE_DIR = $$PWD -qt-port:INCLUDEPATH += \ - $$PWD/WebKit/qt/Api -gtk-port:INCLUDEPATH += \ - $$BASE_DIR/WebCore/platform/gtk \ - $$BASE_DIR/WebCore/platform/network/curl \ - $$BASE_DIR/WebCore/platform/graphics/cairo \ - $$BASE_DIR/WebCore/loader/gtk \ - $$BASE_DIR/WebCore/page/gtk \ - $$BASE_DIR/WebKit/gtk \ - $$BASE_DIR/WebKit/gtk/WebCoreSupport \ - $$BASE_DIR/WebKit/gtk/webkit -INCLUDEPATH += \ - $$BASE_DIR/JavaScriptCore/ \ - $$BASE_DIR/JavaScriptCore/kjs \ - $$BASE_DIR/JavaScriptCore/bindings \ - $$BASE_DIR/JavaScriptCore/bindings/c \ - $$BASE_DIR/JavaScriptCore/wtf \ - $$BASE_DIR/JavaScriptCore/ForwardingHeaders \ - $$BASE_DIR/WebCore \ - $$BASE_DIR/WebCore/ForwardingHeaders \ - $$BASE_DIR/WebCore/platform \ - $$BASE_DIR/WebCore/platform/network \ - $$BASE_DIR/WebCore/platform/graphics \ - $$BASE_DIR/WebCore/loader \ - $$BASE_DIR/WebCore/page \ - $$BASE_DIR/WebCore/css \ - $$BASE_DIR/WebCore/dom \ - $$BASE_DIR/WebCore/bridge \ - $$BASE_DIR/WebCore/editing \ - $$BASE_DIR/WebCore/rendering \ - $$BASE_DIR/WebCore/history \ - $$BASE_DIR/WebCore/xml \ - $$BASE_DIR/WebCore/html \ - $$BASE_DIR/WebCore/plugins - - -macx { - INCLUDEPATH += /usr/include/libxml2 - LIBS += -lxml2 -lxslt -} diff --git a/packages/webkit/webkit-gtk/WebKit.pro b/packages/webkit/webkit-gtk/WebKit.pro index bc14feb5f6..035f73aa3f 100644 --- a/packages/webkit/webkit-gtk/WebKit.pro +++ b/packages/webkit/webkit-gtk/WebKit.pro @@ -1,21 +1,12 @@ TEMPLATE = subdirs CONFIG += ordered -!gtk-port:CONFIG += qt-port -qt-port { - lessThan(QT_MINOR_VERSION, 4) { - !win32-*:SUBDIRS += WebKit/qt/Plugins - } -} + SUBDIRS += \ + JavaScriptCore \ WebCore \ - JavaScriptCore/kjs/testkjs.pro - -qt-port { - SUBDIRS += WebKit/qt/QtLauncher + JavaScriptCore/kjs/jsc.pro \ + WebKit/qt/QtLauncher \ + WebKit/qt/tests - !win32-*: SUBDIRS += WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro -} +!win32-*: SUBDIRS += WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro -gtk-port:SUBDIRS += \ - WebKitTools/GtkLauncher \ - WebKitTools/DumpRenderTree/gtk/DumpRenderTree.pro diff --git a/packages/webkit/webkit-gtk/acinclude.m4 b/packages/webkit/webkit-gtk/acinclude.m4 new file mode 100644 index 0000000000..e0083b9dd1 --- /dev/null +++ b/packages/webkit/webkit-gtk/acinclude.m4 @@ -0,0 +1,356 @@ +dnl dolt, a replacement for libtool +dnl Copyright © 2007-2008 Josh Triplett <josh@freedesktop.org> +dnl Copying and distribution of this file, with or without modification, +dnl are permitted in any medium without royalty provided the copyright +dnl notice and this notice are preserved. +dnl +dnl To use dolt, invoke the DOLT macro immediately after the libtool macros. +dnl Optionally, copy this file into acinclude.m4, to avoid the need to have it +dnl installed when running autoconf on your project. + +AC_DEFUN([DOLT], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +# dolt, a replacement for libtool +# Josh Triplett <josh@freedesktop.org> +AC_PATH_PROG(DOLT_BASH, bash) +AC_MSG_CHECKING([if dolt supports this host]) +dolt_supported=yes +if test x$DOLT_BASH = x; then + dolt_supported=no +fi +if test x$GCC != xyes; then + dolt_supported=no +fi +case $host in +i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \ +|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*) + pic_options='-fPIC' + ;; +i?86-apple-darwin*) + pic_options='-fno-common' + ;; +*) + dolt_supported=no + ;; +esac +if test x$dolt_supported = xno ; then + AC_MSG_RESULT([no, falling back to libtool]) + LTCOMPILE='$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(COMPILE)' + LTCXXCOMPILE='$(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXXCOMPILE)' +else + AC_MSG_RESULT([yes, replacing libtool]) + +dnl Start writing out doltcompile. + cat <<__DOLTCOMPILE__EOF__ >doltcompile +#!$DOLT_BASH +__DOLTCOMPILE__EOF__ + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +args=("$[]@") +for ((arg=0; arg<${#args@<:@@@:>@}; arg++)) ; do + if test x"${args@<:@$arg@:>@}" = x-o ; then + objarg=$((arg+1)) + break + fi +done +if test x$objarg = x ; then + echo 'Error: no -o on compiler command line' 1>&2 + exit 1 +fi +lo="${args@<:@$objarg@:>@}" +obj="${lo%.lo}" +if test x"$lo" = x"$obj" ; then + echo "Error: libtool object file name \"$lo\" does not end in .lo" 1>&2 + exit 1 +fi +objbase="${obj##*/}" +__DOLTCOMPILE__EOF__ + +dnl Write out shared compilation code. + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +libobjdir="${obj%$objbase}.libs" +if test ! -d "$libobjdir" ; then + mkdir_out="$(mkdir "$libobjdir" 2>&1)" + mkdir_ret=$? + if test "$mkdir_ret" -ne 0 && test ! -d "$libobjdir" ; then + echo "$mkdir_out" 1>&2 + exit $mkdir_ret + fi +fi +pic_object="$libobjdir/$objbase.o" +args@<:@$objarg@:>@="$pic_object" +__DOLTCOMPILE__EOF__ + cat <<__DOLTCOMPILE__EOF__ >>doltcompile +"\${args@<:@@@:>@}" $pic_options -DPIC || exit \$? +__DOLTCOMPILE__EOF__ + fi + +dnl Write out static compilation code. +dnl Avoid duplicate compiler output if also building shared objects. + if test x$enable_static = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +non_pic_object="$obj.o" +args@<:@$objarg@:>@="$non_pic_object" +__DOLTCOMPILE__EOF__ + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +"${args@<:@@@:>@}" >/dev/null 2>&1 || exit $? +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +"${args@<:@@@:>@}" || exit $? +__DOLTCOMPILE__EOF__ + fi + fi + +dnl Write out the code to write the .lo file. +dnl The second line of the .lo file must match "^# Generated by .*libtool" + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +{ +echo "# $lo - a libtool object file" +echo "# Generated by doltcompile, not libtool" +__DOLTCOMPILE__EOF__ + + if test x$enable_shared = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo "pic_object='.libs/${objbase}.o'" +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo pic_object=none +__DOLTCOMPILE__EOF__ + fi + + if test x$enable_static = xyes; then + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo "non_pic_object='${objbase}.o'" +__DOLTCOMPILE__EOF__ + else + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +echo non_pic_object=none +__DOLTCOMPILE__EOF__ + fi + + cat <<'__DOLTCOMPILE__EOF__' >>doltcompile +} > "$lo" +__DOLTCOMPILE__EOF__ + +dnl Done writing out doltcompile; substitute it for libtool compilation. + chmod +x doltcompile + LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)' + LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)' + +dnl automake ignores LTCOMPILE and LTCXXCOMPILE when it has separate CFLAGS for +dnl a target, so write out a libtool wrapper to handle that case. +dnl Note that doltlibtool does not handle inferred tags or option arguments +dnl without '=', because automake does not use them. + cat <<__DOLTLIBTOOL__EOF__ > doltlibtool +#!$DOLT_BASH +__DOLTLIBTOOL__EOF__ + cat <<'__DOLTLIBTOOL__EOF__' >>doltlibtool +top_builddir_slash="${0%%doltlibtool}" +: ${top_builddir_slash:=./} +args=() +modeok=false +tagok=false +for arg in "$[]@"; do + case "$arg" in + --mode=compile) modeok=true ;; + --tag=CC|--tag=CXX) tagok=true ;; + *) args+=("$arg") + esac +done +if $modeok && $tagok ; then + . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}" +else + exec ${top_builddir_slash}libtool "$[]@" +fi +__DOLTLIBTOOL__EOF__ + +dnl Done writing out doltlibtool; substitute it for libtool. + chmod +x doltlibtool + LIBTOOL='$(top_builddir)/doltlibtool' +fi +AC_SUBST(LTCOMPILE) +AC_SUBST(LTCXXCOMPILE) +# end dolt +]) + +# =========================================================================== +# http://autoconf-archive.cryp.to/ax_compare_version.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# +# DESCRIPTION +# +# This macro compares two version strings. Due to the various number of +# minor-version numbers that can exist, and the fact that string +# comparisons are not compatible with numeric comparisons, this is not +# necessarily trivial to do in a autoconf script. This macro makes doing +# these comparisons easy. +# +# The six basic comparisons are available, as well as checking equality +# limited to a certain number of minor-version levels. +# +# The operator OP determines what type of comparison to do, and can be one +# of: +# +# eq - equal (test A == B) +# ne - not equal (test A != B) +# le - less than or equal (test A <= B) +# ge - greater than or equal (test A >= B) +# lt - less than (test A < B) +# gt - greater than (test A > B) +# +# Additionally, the eq and ne operator can have a number after it to limit +# the test to that number of minor versions. +# +# eq0 - equal up to the length of the shorter version +# ne0 - not equal up to the length of the shorter version +# eqN - equal up to N sub-version levels +# neN - not equal up to N sub-version levels +# +# When the condition is true, shell commands ACTION-IF-TRUE are run, +# otherwise shell commands ACTION-IF-FALSE are run. The environment +# variable 'ax_compare_version' is always set to either 'true' or 'false' +# as well. +# +# Examples: +# +# AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8]) +# AX_COMPARE_VERSION([3.15],[lt],[3.15.8]) +# +# would both be true. +# +# AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8]) +# AX_COMPARE_VERSION([3.15],[gt],[3.15.8]) +# +# would both be false. +# +# AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8]) +# +# would be true because it is only comparing two minor versions. +# +# AX_COMPARE_VERSION([3.15.7],[eq0],[3.15]) +# +# would be true because it is only comparing the lesser number of minor +# versions of the two values. +# +# Note: The characters that separate the version numbers do not matter. An +# empty string is the same as version 0. OP is evaluated by autoconf, not +# configure, so must be a string, not a variable. +# +# The author would like to acknowledge Guido Draheim whose advice about +# the m4_case and m4_ifvaln functions make this macro only include the +# portions necessary to perform the specific comparison specified by the +# OP argument in the final configure script. +# +# LAST MODIFICATION +# +# 2008-04-12 +# +# COPYLEFT +# +# Copyright (c) 2008 Tim Toolan <toolan@ele.uri.edu> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +dnl ######################################################################### +AC_DEFUN([AX_COMPARE_VERSION], [ + AC_PROG_AWK + + # Used to indicate true or false condition + ax_compare_version=false + + # Convert the two version strings to be compared into a format that + # allows a simple string comparison. The end result is that a version + # string of the form 1.12.5-r617 will be converted to the form + # 0001001200050617. In other words, each number is zero padded to four + # digits, and non digits are removed. + AS_VAR_PUSHDEF([A],[ax_compare_version_A]) + A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \ + -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + AS_VAR_PUSHDEF([B],[ax_compare_version_B]) + B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \ + -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary + dnl # then the first line is used to determine if the condition is true. + dnl # The sed right after the echo is to remove any indented white space. + m4_case(m4_tolower($2), + [lt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [gt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [le],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ], + [ge],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ],[ + dnl Split the operator from the subversion count if present. + m4_bmatch(m4_substr($2,2), + [0],[ + # A count of zero means use the length of the shorter version. + # Determine the number of characters in A and B. + ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'` + ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'` + + # Set A to no more than B's length and B to no more than A's length. + A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"` + B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"` + ], + [[0-9]+],[ + # A count greater than zero means use only that many subversions + A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"` + B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"` + ], + [.+],[ + AC_WARNING( + [illegal OP numeric parameter: $2]) + ],[]) + + # Pad zeros at end of numbers to make same length. + ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`" + B="$B`echo $A | sed 's/./0/g'`" + A="$ax_compare_version_tmp_A" + + # Check for equality or inequality as necessary. + m4_case(m4_tolower(m4_substr($2,0,2)), + [eq],[ + test "x$A" = "x$B" && ax_compare_version=true + ], + [ne],[ + test "x$A" != "x$B" && ax_compare_version=true + ],[ + AC_WARNING([illegal OP parameter: $2]) + ]) + ]) + + AS_VAR_POPDEF([A])dnl + AS_VAR_POPDEF([B])dnl + + dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE. + if test "$ax_compare_version" = "true" ; then + m4_ifvaln([$4],[$4],[:])dnl + m4_ifvaln([$5],[else $5])dnl + fi +]) dnl AX_COMPARE_VERSION diff --git a/packages/webkit/webkit-gtk/configure.ac b/packages/webkit/webkit-gtk/configure.ac index 768ae9f9f2..21f72661ec 100644 --- a/packages/webkit/webkit-gtk/configure.ac +++ b/packages/webkit/webkit-gtk/configure.ac @@ -95,6 +95,10 @@ fi AC_PATH_PROG(FLEX, flex) if test -z "$FLEX"; then AC_MSG_ERROR([You need the 'flex' lexer generator to compile WebKit]) +else + FLEX_VERSION=`$FLEX --version | sed 's,.*\ \([0-9]*\.[0-9]*\.[0-9]*\)$,\1,'` + AX_COMPARE_VERSION([2.5.33],[gt],[$FLEX_VERSION], + AC_MSG_WARN([You need at least version 2.5.33 of the 'flex' lexer generator to compile WebKit correctly])) fi AC_PATH_PROG(GPERF, gperf) @@ -284,6 +288,26 @@ PKG_CHECK_MODULES([WEBKITDEPS], AC_SUBST([WEBKITDEPS_CFLAGS]) AC_SUBST([WEBKITDEPS_LIBS]) +# check for Xt if the target is X11 +if test "$with_target" = "x11"; then + PKG_CHECK_MODULES([XT], + [xt], + [xt_has_pkg_config=yes], + [xt_has_pkg_config=no]) + # some old versions of Xt do not provide xt.pc, so try to link against Xt + # and if it's installed fall back to just adding -lXt + if test "$xt_has_pkg_config" = "no"; then + # using AC_CHECK_LIB instead of AC_SEARCH_LIB is fine in this case as + # we don't care about the XtOpenDisplay symbol but only about the + # existence of libXt + AC_CHECK_LIB([Xt], [XtOpenDisplay], + [XT_CFLAGS=""; XT_LIBS="-lXt"], + [AC_MSG_ERROR([X Toolkit Intrinsics library (libXt) not found])]) + fi + AC_SUBST([XT_CFLAGS]) + AC_SUBST([XT_LIBS]) +fi + # check whether to build with debugging enabled AC_MSG_CHECKING([whether to do a debug build]) AC_ARG_ENABLE(debug, diff --git a/packages/webkit/webkit-gtk/symbols.filter b/packages/webkit/webkit-gtk/symbols.filter new file mode 100644 index 0000000000..f5af6bac90 --- /dev/null +++ b/packages/webkit/webkit-gtk/symbols.filter @@ -0,0 +1,5 @@ +{ +local: +_ZSt*; +_ZNSt*; +}; diff --git a/packages/webkit/webkit-gtk_svn.bb b/packages/webkit/webkit-gtk_svn.bb index 06f869ef48..b78844fc53 100644 --- a/packages/webkit/webkit-gtk_svn.bb +++ b/packages/webkit/webkit-gtk_svn.bb @@ -1,5 +1,5 @@ DESCRIPTION = "WebKit browser engine, GTK+ edition" -DEPENDS = "curl icu libxml2 cairo libxslt libxt libidn gnutls gtk+ gstreamer gst-plugins-base gnome-vfs flex-native gperf-native perl-native sqlite3" +DEPENDS = "curl icu libxml2 cairo libxslt libxt libidn gnutls gtk+ gstreamer gst-plugins-base gnome-vfs bison-native flex-native gperf-native perl-native sqlite3" SRCREV_FORMAT = "webcore-rwebkit" @@ -19,6 +19,7 @@ SRC_URI = "\ file://Makefile.shared \ file://autogen.sh \ file://configure.ac \ + file://symbols.filter \ file://GNUmakefile.am \ " @@ -26,10 +27,12 @@ S = "${WORKDIR}/" inherit autotools pkgconfig lib_package +# FIXME: Segfaulting without --with-http-backend=curl EXTRA_OECONF = "\ --enable-debug=no \ --enable-svg \ --enable-icon-database=yes \ + --with-http-backend=curl \ " do_compile_prepend() { |