Bug 21392 - [GTK] Auto-generate JS DOM binding sources list
Summary: [GTK] Auto-generate JS DOM binding sources list
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: Gtk
Depends on:
Blocks: 16401
  Show dependency treegraph
 
Reported: 2008-10-05 16:21 PDT by Alp Toker
Modified: 2008-10-07 17:46 PDT (History)
0 users

See Also:


Attachments
Automatically derive the lists (36.19 KB, patch)
2008-10-05 16:40 PDT, Alp Toker
mrowe: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alp Toker 2008-10-05 16:21:13 PDT
The autotools build system currently has long lists of generated JavaScript DOM binding sources and headers. This is redundant since we already maintain lists of IDL files and it's a pain to maintain whenever WebCore changes.

These lists are set to become even more unwieldy when we start to add new DOM language bindings (GObject, COM?).

Patch coming up.
Comment 1 Alp Toker 2008-10-05 16:40:08 PDT
Created attachment 24105 [details]
Automatically derive the lists

 ChangeLog              |   17 +
 GNUmakefile.am         |    3 
 WebCore/ChangeLog      |   17 +
 WebCore/GNUmakefile.am |  691 ++++---------------------------------------------
 4 files changed, 95 insertions(+), 633 deletions(-)

The interesting part of this patch is around line 900.

I've tested this with different versions of automake (including 1.10) and it works well without any regressions in dependency tracking or dist support.
Comment 2 Luke Kenneth Casson Leighton 2008-10-06 01:15:42 PDT
webcore_built_nosources += $(patsubst %.idl,DerivedSources/JS%.h,$(notdir $(IDL_BINDINGS)))

hooraaaaay.

now if _only_ if was possible to do a translation of upper-case names to decamelized lower-case-plus-hypen-names.... in Gnumake "%" substitutions,
one of the requests of having the dom bindings header files as gdom-xxx-xxx-xxx.h
could be fulfilled.

Comment 3 Mark Rowe (bdash) 2008-10-07 11:10:57 PDT
Comment on attachment 24105 [details]
Automatically derive the lists

r=me
Comment 4 Alp Toker 2008-10-07 11:30:13 PDT
Landed in r37382.

lkcl: In theory you could even call out to a perl/shell script using the same technique now if necessary!
Comment 5 Darin Adler 2008-10-07 11:59:38 PDT
Why are we still doing this entirely separately for automake and non-automake platforms? Can we get this merged with DerivedSources.make some day soon?
Comment 6 Alp Toker 2008-10-07 13:53:25 PDT
This broke the buildbot:

(cd .libs && rm -f libJavaScriptCore.la && ln -s ../libJavaScriptCore.la libJavaScriptCore.la)
if ./doltcompile g++ -DHAVE_CONFIG_H -I. -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build -I.   -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/ -DWTF_USE_ICU_UNICODE=1 -DBUILDING_CAIRO__=1 -DBUILDING_GTK__=1 -DWTF_CHANGES  -DXP_UNIX -DNDEBUG    -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/bindings/js -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/bridge -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/bridge/c -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/css -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/dom -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/editing -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/history -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/html -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/inspector -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/loader -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/loader/appcache -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/loader/archive -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/loader/icon -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/page -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/page/animation -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/graphics -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/graphics/filters -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/bmp -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/gif -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/ico -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/jpeg -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/png -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/image-decoders/xbm -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/network -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/text -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/plugins -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/rendering -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/rendering/style -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/xml -I./WebCore/bindings/js -DWTF_USE_CURL=1 -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/network/curl  -DENABLE_OFFLINE_WEB_APPLICATIONS=1 -DENABLE_DASHBOARD_SUPPORT=1 -DENABLE_DATABASE=1 -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/sql -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/storage -DENABLE_DOM_STORAGE=1 -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/storage -DENABLE_ICONDATABASE=1   -DENABLE_XPATH=1 -DENABLE_XSLT=1 -DENABLE_SVG=1 -I\/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/svg -I\/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/svg/animation -I\/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/svg/graphics -I\/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/svg/graphics/filters -DENABLE_SVG_USE=1 -DENABLE_SVG_FOREIGN_OBJECT=1 -DENABLE_SVG_FONTS=1  -DENABLE_SVG_AS_IMAGE=1 -DENABLE_SVG_ANIMATION=1 -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/ForwardingHeaders -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/wtf -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/kjs -I./DerivedSources -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/API -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/ForwardingHeaders -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/VM -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/profiler -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/JavaScriptCore/wtf/unicode -I./JavaScriptCore/pcre -I./JavaScriptCore/kjs  -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/loader/gtk -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/page/gtk -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/graphics/cairo -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/graphics/gtk -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/platform/gtk -DUSE_FREETYPE=1  -I/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebCore/svg/graphics/cairo   -fvisibility-inlines-hidden -fno-rtti -fno-strict-aliasing -O2 -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -fvisibility=hidden -pthread -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/glib-2.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/lib/glib-2.0/include   -isystem/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include -D_REENTRANT -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/libxml2   -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/cairo -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/freetype2 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/ -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/libpng12   -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/pango-1.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/glib-2.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/lib/glib-2.0/include   -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/gtk-2.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/lib/gtk-2.0/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/atk-1.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/cairo -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/pango-1.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/glib-2.0 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/lib/glib-2.0/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/freetype2 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/ -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/libpng12      -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/cairo -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/freetype2 -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/include -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/ -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/libpng12     -I/home/oe/webkit/deps/tmp/staging/i686-angstrom-linux/usr/include/libxml2     -MT DerivedSources/JSCSSCharsetRule.lo -MD -MP -MF ".deps/DerivedSources/JSCSSCharsetRule.Tpo" \
	  -c -o DerivedSources/JSCSSCharsetRule.lo `test -f 'DerivedSources/JSCSSCharsetRule.cpp' || echo '/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/'`DerivedSources/JSCSSCharsetRule.cpp; \
	then mv -f ".deps/DerivedSources/JSCSSCharsetRule.Tpo" ".deps/DerivedSources/JSCSSCharsetRule.Plo"; \
	else rm -f ".deps/DerivedSources/JSCSSCharsetRule.Tpo"; exit 1; \
	fi
DerivedSources/JSCSSCharsetRule.cpp:144: fatal error: opening dependency file .deps/DerivedSources/JSCSSCharsetRule.Tpo: No such file or directory
compilation terminated.
make[2]: *** [DerivedSources/JSCSSCharsetRule.lo] Error 1
make[2]: Leaving directory `/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebKitBuild/Release'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/oe/webkit/source/WebKit-BuildSlave/trunk-gtk-linux-release/build/WebKitBuild/Release'

Failed to build WebKit using 'make'!


I'm going to try fixing it in a little while rather than rolling back (though I can't reproduce this locally, works fine on several systems).
Comment 7 Alp Toker 2008-10-07 16:07:38 PDT
Can now reproduce the problem with automake-1.7. Problem is that the dependency information output directory looks wrong and gcc complains because it hasn't been created yet. Possibly a bad interaction with dolt. Investigating further.
Comment 8 Alp Toker 2008-10-07 16:38:29 PDT
Not a dolt issue, happens without it too. Seems to be a quirk in older automake that was fixed in later versions.
Comment 9 Alp Toker 2008-10-07 17:46:23 PDT
Hopefully fixed in r37403.