|
1 WebKit Bakefile Docs |
|
2 |
|
3 The files in this folder are used to auto-generate project files in GNU |
|
4 Make and Microsoft Visual Studio 6 (can be used in 7 and 8 too). Support |
|
5 for many other formats are available, including eVC (for PocketPC), |
|
6 autoconf, and Symbian project formats, so most future ports would be |
|
7 able to take advantage of Bakefile support for their projects. (XCode |
|
8 also has a partial backend in place, but it's not in a usable state for |
|
9 this project.) |
|
10 |
|
11 The project files generated using Bakefile currently reside in the |
|
12 WebCore/Projects/<Project Name> folder. There are not any JavaScriptCore |
|
13 Bakefiles yet as it build successfully pretty much everywhere already. |
|
14 However, a Bakefile-based project management system might reduce the |
|
15 maintenance burden of maintaining the JavaScriptCore project files too, |
|
16 eventually. |
|
17 |
|
18 |
|
19 Preparing the build environment |
|
20 -------------------------------- |
|
21 |
|
22 Right now, the prepartion steps are not totally automated. Here are the steps |
|
23 that need to be taken at present before you build. |
|
24 |
|
25 IMPORTANT: If you already have a copy of Bakefile 0.2.0 installed, you need to |
|
26 update your version to a modified 0.2.0 release with MSVS 2005 support. (If you |
|
27 haven't installed it, regenerate-makefiles will take care of it for you.) You can |
|
28 get the release from here: |
|
29 |
|
30 http://kevino.theolliviers.com/bakefile-0.2.0-msvs2005.tar.gz |
|
31 |
|
32 This support will be officially in a future Bakefile release. |
|
33 |
|
34 --- On Unix, do the following: |
|
35 |
|
36 cd WebKitTools/Scripts |
|
37 sudo ./install-unix-extras # or su, needed for make install |
|
38 |
|
39 --- On Windows, do the following: |
|
40 |
|
41 cd WebKitTools/Scripts |
|
42 ./install-win-extras |
|
43 |
|
44 |
|
45 Building the projects |
|
46 ---------------------- |
|
47 |
|
48 cd into the project directory (WebKit/JavaScriptCore and |
|
49 WebKit/WebCore/Projects/wx, respectively) and run the following: |
|
50 |
|
51 -- On Unix: |
|
52 |
|
53 make |
|
54 |
|
55 -- On Windows, you should open and build the .sln projects. |
|
56 |
|
57 Windows Note: Sometimes, the files generated by the pre-build step don't get |
|
58 built and you get an error during linking. However, a subsequent build resolves |
|
59 the issue. |
|
60 |
|
61 |
|
62 Regenerating the Makefiles |
|
63 --------------------------- |
|
64 |
|
65 cd into the WebCore/WebKitTools/Scripts directory and run the |
|
66 ./regenerate-makefiles script to recreate the makefiles. This will download |
|
67 and install Bakefile if you don't have it installed already. (You may need to |
|
68 authenticate if it needs to install Bakefile.) |
|
69 |
|
70 |
|
71 Regenerating the source file lists |
|
72 ------------------------------------ |
|
73 Currently, WebCoreSources.bkl and JavaScriptCore.bkl files are |
|
74 autogenerated by reading the .vcproj files and extracting the file lists |
|
75 from them, using update-file-lists.py. Whenever files are added/removed, |
|
76 you should re-run 'python update-file-lists.py' to put the *Sources.bkl back in |
|
77 sync with TOT. When the script is run, however, there are also currently two |
|
78 source files that need to be manually removed: |
|
79 |
|
80 In JavaScriptCoreSources.bkl |
|
81 - ./grammarWrapper.cpp |
|
82 |
|
83 In WebCoreSources.bkl |
|
84 - $(SRCDIR)/rendering/RenderThemeWin.cpp |
|
85 |
|
86 Eventually, we need a way to ensure that these files get included only for |
|
87 Win builds. Either we find a solution so that we no longer need to autogenerate |
|
88 the source file list, or we move them in the vcproj to some sort of 'win' |
|
89 subfolder, which would automatically keep them from being added to the Bakefiles. |
|
90 |
|
91 |
|
92 Bakefile formats |
|
93 ----------------- |
|
94 |
|
95 For those of you curious about what other types of project files Bakefile can |
|
96 generate, a list can be found here: |
|
97 |
|
98 http://bakefile.sourceforge.net/doc/html/rn01re01.html |
|
99 |