Reviewed by Beth.
[WebKit-https.git] / WebKitSite / building / build.html
1 <?php
2         $title = "Building WebKit";
3         include("../header.inc");
4 ?>
5
6 <h2>Building WebKit</h2>
7
8 <p>Building WebKit requires a <a href="checkout.html">WebKit source tree</a> and <a href="http://developer.apple.com/tools/xcode/">Xcode</a> version 2.3 or greater.<p>
9
10 <ol>
11 <li><p>Type this command to build WebKit:</p>
12 <p class="code">WebKit/WebKitTools/Scripts/build-webkit</p>
13 <p>Use the <tt>--debug</tt> option for a debug build, which includes debugging symbols and assertions:</p>
14 <p class="code">WebKit/WebKitTools/Scripts/build-webkit --debug</p>
15 </li>
16 <li><p>To set a default build configuration for <tt>build-webkit</tt>, use the <tt>set-webkit-configuration</tt> script:</p>
17 <p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --debug</p>
18 <p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --release</p>
19 </li>
20 </ol>
21
22 <p>By default, <tt>build-webkit</tt> places build products in WebKit/WebKitBuild. If your Xcode preferences specify a custom build products location, <tt>webkit-build</tt> places build products there.</p>
23 <p>More information about building WebKit is available on the <a href="http://www.opendarwin.org/wiki/index.php/WebKit">WebKit Wiki</a>.</p>
24
25 <h2>Running Safari with the WebKit You Built</h2>
26 <ol>
27 <li><p>Type this command to run Safari with the WebKit you built:</p>
28 <p class="code">WebKit/WebKitTools/Scripts/run-safari</p>
29 </li>
30 </ol>
31 <p>The <tt>run-safari</tt> script sets the <tt>DYLD_FRAMEWORK_PATH</tt> environment variable to point to your build products, 
32 and then launches /Applications/Safari.app. <tt>DYLD_FRAMEWORK_PATH</tt> tells the system loader to prefer your build products over the frameworks installed in /System/Library/Frameworks.</p>
33
34 <h2>Debugging the WebKit You Built in Xcode</h2>
35 <ol>
36 <li><p>Open a project</p>
37 <p>Each WebKit component -- JavaScriptCore, WebCore, and WebKit -- contains its own Xcode project. Open the project belonging to the component you want to debug.</p>
38 </li>
39 <li><p>Set the project's build products location</p>
40 <p>To find the WebKit you built, Xcode needs to know the build products location that <tt>build-webkit</tt> used. You can set the build products location from the project's Info window.</p>
41 <img src="info-tab.png"></img>
42 </li>
43 <li><p>Set the project's active build configuration</p>
44 <p>Xcode also needs to know the build configuration you used. You can set the active build configuration from the project's Build window.</p>
45 <img src="build-window.png"></img>
46 </li>
47 <li><p>Add a custom executable to the project</p>
48 <p>Choose any WebKit application you want to use for debugging. To use Safari, select /Applications/Safari.app.</p>
49 <img src="custom-executable.png"></img>
50 </li>
51 <li><p>Set the project's active executable</p>
52 <p>Choose the executable you just added. You can set the active build configuration from the project's Build window, pictured above.</p>
53 </li>
54 <li><p>Close and re-open the project</p>
55 <p>This will force Xcode to discover generated source files, which output to your build products location.</p>
56 </li>
57 </ol>
58
59 <hr>
60 <p>It's handy to put <tt>WebKit/WebKitTools/Scripts</tt> in your shell path so you can type commands like <tt>build-webkit</tt> without specifying a full path.</p>
61
62
63 <?php
64         include("../footer.inc");
65 ?>