On 6/10/05, Maciej Stachowiak <mjs@apple.com> wrote:
This is a question that some of us on the Safari/WebKit team have thought about, but we're not sure which way to go yet. As I see it, there's two basic options:
A) Use autotools on every possible platform, even Mac OS X. We used to do this way long ago towards the start of the project, and over time we converted to Xcode because of all the nice things we get from it. So in some ways this would be more of a pain for the existing WebKit developers at Apple.
B) Use Xcode projects on OS X, and autotools for ports to more traditional unix systems (Linux, FreeBSD, etc). The major downside to this is that to make any kind of build change (even just adding a new file), you would have to do it twice. And not only that you would really need a Mac even if that is not your primary dev platform, since the Xcode project file format is not really human-editable.
We're really not sure yet which of these is better. I think it might be best to start with B, and consider converting to A someday if there are enough active developers on non-Mac platforms.
Yes, that makes sense. The issue indeed is to keep these two build systems in sync, especially in cases where a developer does not have access to a Mac platform for updating the Xcode projects... The qmake tool from Trolltech also used to be able to export from a canonical build-rule format to Makefiles and Xcode project files (at least when I worked on the Mac side over at Trolltech, don't know how well they support XCode 2.0/2.1 today.. might work fine). So that's an option. qmake and SCons are examples of starting from a meta-level description and build platform-dependent Makefile and project environments. I don't know of any good and reliable ways to convert back and forth between GNU automake and XCode projects. --Kent PS: I'm looking at porting WebCore on top of DirectFB/LiTE (www.directfb.org), been working on LiTE recently to make it a very quick way to build toolkits on top of DirecDB, especially for embedded systems, and WebCore/KWQ would be a nice test ground for it, would be interesting to look at Qt code for the conversion part, too -- been a while since I last hacked Qt.