| WebKit Bakefile Docs |
| |
| The files in this folder are used to auto-generate project files in GNU |
| Make and Microsoft Visual Studio 6 (can be used in 7 and 8 too). Support |
| for many other formats are available, including eVC (for PocketPC), |
| autoconf, and Symbian project formats, so most future ports would be |
| able to take advantage of Bakefile support for their projects. (XCode |
| also has a partial backend in place, but it's not in a usable state for |
| this project.) |
| |
| The project files generated using Bakefile currently reside in the |
| WebCore/Projects/<Project Name> folder. There are not any JavaScriptCore |
| Bakefiles yet as it build successfully pretty much everywhere already. |
| However, a Bakefile-based project management system might reduce the |
| maintenance burden of maintaining the JavaScriptCore project files too, |
| eventually. |
| |
| |
| Preparing the build environment |
| -------------------------------- |
| |
| Right now, the prepartion steps are not totally automated. Here are the steps |
| that need to be taken at present before you build. |
| |
| IMPORTANT: If you already have a copy of Bakefile 0.2.0 installed, you need to |
| update your version to a modified 0.2.0 release with MSVS 2005 support. (If you |
| haven't installed it, regenerate-makefiles will take care of it for you.) You can |
| get the release from here: |
| |
| http://kevino.theolliviers.com/bakefile-0.2.0-msvs2005.tar.gz |
| |
| This support will be officially in a future Bakefile release. |
| |
| --- On Unix, do the following: |
| |
| cd WebKitTools/Scripts |
| sudo ./install-unix-extras # or su, needed for make install |
| |
| --- On Windows, do the following: |
| |
| cd WebKitTools/Scripts |
| ./install-win-extras |
| |
| |
| Building the projects |
| ---------------------- |
| |
| cd into the project directory (WebKit/JavaScriptCore and |
| WebKit/WebCore/Projects/wx, respectively) and run the following: |
| |
| -- On Unix: |
| |
| make |
| |
| -- On Windows, you should open and build the .sln projects. |
| |
| Windows Note: Sometimes, the files generated by the pre-build step don't get |
| built and you get an error during linking. However, a subsequent build resolves |
| the issue. |
| |
| |
| Regenerating the Makefiles |
| --------------------------- |
| |
| cd into the WebCore/WebKitTools/Scripts directory and run the |
| ./regenerate-makefiles script to recreate the makefiles. This will download |
| and install Bakefile if you don't have it installed already. (You may need to |
| authenticate if it needs to install Bakefile.) |
| |
| |
| Regenerating the source file lists |
| ------------------------------------ |
| Currently, WebCoreSources.bkl and JavaScriptCore.bkl files are |
| autogenerated by reading the .vcproj files and extracting the file lists |
| from them, using update-file-lists.py. Whenever files are added/removed, |
| you should re-run 'python update-file-lists.py' to put the *Sources.bkl back in |
| sync with TOT. When the script is run, however, there are also currently two |
| source files that need to be manually removed: |
| |
| In JavaScriptCoreSources.bkl |
| - ./grammarWrapper.cpp |
| |
| In WebCoreSources.bkl |
| - $(SRCDIR)/rendering/RenderThemeWin.cpp |
| |
| Eventually, we need a way to ensure that these files get included only for |
| Win builds. Either we find a solution so that we no longer need to autogenerate |
| the source file list, or we move them in the vcproj to some sort of 'win' |
| subfolder, which would automatically keep them from being added to the Bakefiles. |
| |
| |
| Bakefile formats |
| ----------------- |
| |
| For those of you curious about what other types of project files Bakefile can |
| generate, a list can be found here: |
| |
| http://bakefile.sourceforge.net/doc/html/rn01re01.html |
| |