[webkit-dev] Build system for ports

Kevin Ollivier kevino at theolliviers.com
Sat Apr 15 15:08:25 PDT 2006


Hi all,

As Mike Emmel and I have both decided to use Bakefile for our ports,  
we decided to work together and create a build system that works for  
both our ports. As a start, my focus has been on taking Mike's  
project files and creating a basic project that builds the cross- 
platform WebCore sources on Win, Mac and Linux that any port would  
need. This way any new ports that are created can actually just  
"derive" from the webcore_base project and only have to add includes/ 
sources/etc. specific to their platform or port.

I've mostly completed that step. For those interested, here's some  
brief docs on the system:

How to build using Bakefile:
http://kevino.theolliviers.com/webkit/bakefile-build.txt

(Most of those steps will eventually be scripted, hopefully as part  
of build-webkit, but I wanted to give people an overview of the  
process.)

Here are the changes I needed to make to WebCore for this to work,  
and also any unresolved issues on various ports:
http://kevino.theolliviers.com/webkit/bakefile-changes.txt

Using the Bakefile-generated projects, I've built the cross-platform  
sources (excluding Cairo, which won't build on OS X...) successfully  
on Intel Mac OS X 10.4.6 and WinXP SP2/MSVS8, and hopefully once a  
few more changes are made, Linux (FC4) will build fine as well.

But there's still one major question before I can put together a  
draft to show people. How exactly should build systems for ports be  
incorporated into the webkit tree? For example, when you think of  
Win32, wx, etc. there may be multiple MSVS7/8 project files. So do we  
create one project file and allow people to select a port when they  
build (with an intelligent default, of course) or do we put project  
files for ports in separate files/dirs? If the latter (which I'm  
personally leaning towards), what should the directory scheme for  
ports be? Do we do, for example,

<WebCore>/ports/wx/WebCore.dsw

Or just:

<WebCore>/wxwebcore.dsw

Or a combination, like:

<WebCore>/ports/wxwebcore.dsw

Ideas? Thoughts?

Thanks,

Kevin



More information about the webkit-dev mailing list