Bug 33810
Summary: | Refactor of Makefiles into Modular design | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Emmel <mike.emmel> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | evan, gustavo, mario.bensi, mrobinson |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | OS X 10.5 |
Michael Emmel
In Bug 32452 and attempt was made to integrate the V8 JS engine into Gtk/WebKit.
The current monolithic design of the Makefiles made adding such and invasive module very difficult requiring a number of changes with a large number if ifdefs. My orignal comment of the V8 bug
is new but this should be a new bug.
I set to work refactoring the makefiles to make them modular enough to add
large and different submodules aka v8 vs JavascriptCore.
It turned out to be a very involved task.
The work can be downloaded at:
http://repo.or.cz/w/webbrowser.git
git clone ssh://repo.or.cz/srv/git/webbrowser.git
The branch is makefile
It would still need quite a bit of clean up and several reviews.
I've not tested out of tree builds I suspect they are broken.
However nothing particularly major is left.
The basic idea is that the monolithic solution is simply becoming unmanageable
and does not fit the way most large project using autotools.
Several modular makefiles are already included in the main one so its already a
multi file solution.
What I have done is move all the processor flag setting into configure and
split the makefiles so they are standalone not included in the main build.
What this does is make it much simpler to split out submodules especially and
refactor a bit if needed. Right now its very close to what I would need to
easily add V8.
It was quite a bit of work and more needs to be done to finish but its to the
point that the basic idea can be accepted or rejected.
When the build finished GtkLauncher is now in WebKit/WebKitTools/Programs
In doing the work I found a lot of interesting issues several features for
example did not have switches and thus could not be turned on even if they
existed in the Makefile. I suspect in several cases these are bugs highlighting
the issue of maintainability.
With all the includes and flags now resolved in configure adding new modular
standalone makefiles is fairly easy. And it would not be hard to make the final
link a bit more modular if needed.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Martin Robinson
The GTK+ build no longer uses makefiles.