RESOLVED FIXED 16390
Use autotools or GNU make as the build system for the GTK port
https://bugs.webkit.org/show_bug.cgi?id=16390
Summary Use autotools or GNU make as the build system for the GTK port
Jan Alonzo
Reported 2007-12-10 15:00:25 PST
The mailing list thread can be found at [0]. Currently we have two issues: 1. how should we go about non-recursive make? 2. The directory has a few Makefiles lying around for the mac port. How are going to deal with this? Can we put our build artifacts in a separate build directory? cheers, [0] http://lists.webkit.org/pipermail/webkit-dev/2007-November/002787.html
Attachments
initial configure.ac implementation (9.59 KB, patch)
2007-12-10 15:06 PST, Jan Alonzo
no flags
build config for JavaScriptCore (18.03 KB, patch)
2007-12-14 20:56 PST, Jan Alonzo
no flags
configure requirements (443 bytes, patch)
2007-12-15 01:18 PST, Luca Bruno
no flags
0001-Lower-even-more-the-requirements.patch (2.06 KB, patch)
2007-12-15 06:20 PST, Xan Lopez
no flags
support build directories and merge GNUmakefile.ams (16.67 KB, patch)
2007-12-15 21:08 PST, Jan Alonzo
no flags
JSC and WebKitGtk+ library builds (82.47 KB, patch)
2007-12-21 17:39 PST, Jan Alonzo
no flags
updated patch without a commented BUILT_SOURCES (82.47 KB, patch)
2007-12-21 17:53 PST, Jan Alonzo
no flags
Updated patch (108.31 KB, patch)
2007-12-26 14:16 PST, Jan Alonzo
no flags
updated patch to fix the ChangeLogs and code coverage flag (108.05 KB, patch)
2007-12-26 18:12 PST, Jan Alonzo
no flags
indentation and cleanups (108.65 KB, patch)
2007-12-26 19:54 PST, Jan Alonzo
alp: review+
Jan Alonzo
Comment 1 2007-12-10 15:06:34 PST
Created attachment 17830 [details] initial configure.ac implementation initial implementation based on gtk-webcore's configure.ac.
Luca Bruno
Comment 2 2007-12-11 02:06:32 PST
I think naming our ac makefiles with a gtk suffix, like you did in the configure is enough. Did you write any Makefile.gtk.ac also?
Jan Alonzo
Comment 3 2007-12-12 12:41:08 PST
We should probably enable *_DISABLE_DEPRECATED when in --maintainer-mode as per bug #16353.
Jan Alonzo
Comment 4 2007-12-14 20:56:11 PST
Created attachment 17902 [details] build config for JavaScriptCore This patch will allow one to build JavaScriptCore (as part of 'all' instead of a target). This patch also puts GNUmakefile.am's in bindings, kjs, wtf, pcre, and JavaScriptCore for building the components of JSC. I don't know if this is ideal but comment away if you prefer a single GNUmakefile.am in JSC. I also named it GNUmakefile.am instead of Makefile.am to avoid overwriting the (mac) 'Makefile's. If you are using GNU Make in mac but want to use the mac Makefile, make sure you use '-f Makefile' as GNUmakefile takes precedence over Makefile. Appreciate any feedback or suggestion you might have. Cheers!
Luca Bruno
Comment 5 2007-12-15 01:18:22 PST
Created attachment 17907 [details] configure requirements Everything works fine with freetype2 9.15.3 and fontconfig 2.4.2, we can lower the requirements. What about numbering next patches without making previous obsolete?
Xan Lopez
Comment 6 2007-12-15 06:20:44 PST
Created attachment 17914 [details] 0001-Lower-even-more-the-requirements.patch Subject: [PATCH] Lower even more the requirements. Explicitely use automake-1.9 if available. Do not call autoreconf in autogen.sh (!?). --- autogen.sh | 31 ++++++++++++++++++++++++++++--- configure.ac | 4 ++-- 2 files changed, 30 insertions(+), 5 deletions(-)
Jan Alonzo
Comment 7 2007-12-15 21:08:16 PST
Created attachment 17925 [details] support build directories and merge GNUmakefile.ams This updated patch should allow one to build JSC (atm) in a build directory. You have to 'cd' in the build tree and call autogen.sh and configure from there though. It also merges all GNUmakefile.am in JSC into one JSC/GNUmakefile.am.
Alp Toker
Comment 8 2007-12-17 06:39:44 PST
I should point to the jsc-modular build system that is a fixed up out-of-tree autotools build system for jsc with no gtk+ etc. dependency: http://git.ndesk.org/?p=javascriptcore-modular;a=shortlog;h=clr
Jan Alonzo
Comment 9 2007-12-21 17:39:59 PST
Created attachment 18054 [details] JSC and WebKitGtk+ library builds This patch builds JavaScriptCore, WebCore and WebKit/gtk as well as the pkgconfig file. Things that are not done yet (appreciate any help to speed up things a bit): 1. GtkLauncher and DRT build 2. make install, dist, clean, and possibly check 3. DirectFB, win32, and GtK/OSX builds 4. build-webkit and at least run-webkit-tests (DRT?) autotool support Also, I haven't tested the different features. One more issue is that since we have a lot of autogenerated sources, IDL/JS bindings in particular, it would be nice if we can timestamp those files to avoid rebuilding the whole thing in "make all". Appreciate any feedback or patch you might have. Cheers.
Jan Alonzo
Comment 10 2007-12-21 17:43:55 PST
Also just use --srcdir in configure and point it to the webkit tree if you want to build in a different directory (build/ dir for example). e.g., /path/to/configure --srcdir=../WebKit cheers
Jan Alonzo
Comment 11 2007-12-21 17:53:16 PST
Created attachment 18055 [details] updated patch without a commented BUILT_SOURCES accidentally uploaded a commented BUILT_SOURCES. this is an updated patch. to workaround the "build everything in make all", just put a comment on BUILT_SOURCES in WebCore/GNUmakefile and JavaScriptCore/GNUmakefile.am.
Mark Rowe (bdash)
Comment 12 2007-12-21 18:21:37 PST
It'd be great to eventually have the autotools system building into WebKitBuild/{Debug,Release} by default. On the Mac with Xcode, WebKitBuild/{Debug,Release} is used for the built products while WebKitBuild/{JavaScriptCore,WebCore,WebKit}.build/{Debug,Release} are used for intermediate files (.o, generated sources, etc). Either of these approaches feels nicer to me than the deeply-nested WebKitBuild hierarchy that qmake creates in some cases.
Jan Alonzo
Comment 13 2007-12-26 14:16:06 PST
Created attachment 18118 [details] Updated patch Updated patch includes GtkLauncher and DRT build configs. All features (incl. SVG features) were tested except for XBL and Coverage support. Appreciate any feedback you might have here. Also, to install a stripped down library, use install-strip instead of install. Cheers
Jan Alonzo
Comment 14 2007-12-26 18:12:20 PST
Created attachment 18122 [details] updated patch to fix the ChangeLogs and code coverage flag This patch fixes the redundancy in the ChangeLogs from the previous patch. Also fixes the coverage flag errors detected by autoconf and make.
Jan Alonzo
Comment 15 2007-12-26 19:54:31 PST
Created attachment 18123 [details] indentation and cleanups As per suggestions by alp: Indentation fixes and removal of some header/func checks and credit/copyright in configure.ac. Also fix generation of webkitgtk.pc and Changelog fixes.
Alp Toker
Comment 16 2007-12-26 22:01:48 PST
Comment on attachment 18123 [details] indentation and cleanups r=me Will remove some of the verbose comments as discussed (and a couple of minor typofixes) before landing. Thanks!
Alp Toker
Comment 17 2007-12-26 22:06:21 PST
Landed in r28997.
Note You need to log in before you can comment on or make changes to this bug.