3676f4131c31dc54c0a9468c73801cb4b9b7f45f
[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 </ol>
17
18 <p>By default, <tt>build-webkit</tt> places build products in WebKit/WebKitBuild. If your Xcode preferences specify a custom build products location, <tt>build-webkit</tt> places build products there.</p>
19 <p>More information about building WebKit is available on the <a href="http://wiki.webkit.org">WebKit Wiki</a>.</p>
20
21 <h2>Running Safari with the WebKit You Built</h2>
22 <ol>
23 <li><p>Type this command to run Safari with the WebKit you built:</p>
24 <p class="code">WebKit/WebKitTools/Scripts/run-safari</p>
25 </li>
26 <p>Use the <tt>--debug</tt> option for a debug build:</p>
27 <p class="code">WebKit/WebKitTools/Scripts/run-safari --debug</p>
28 </ol>
29 <p>The <tt>run-safari</tt> script sets the <tt>DYLD_FRAMEWORK_PATH</tt> environment variable to point to your build products, 
30 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>
31
32 <h2>Setting a Default</h2>
33 <ol>
34 <li><p>To set a default build configuration for <tt>build-webkit</tt> and other scripts, use the <tt>set-webkit-configuration</tt> script:</p>
35 <p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --debug</p>
36 <p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --release</p>
37 </li>
38 </ol>
39
40 <h2>Debugging the WebKit You Built in Xcode</h2>
41 <ol>
42 <li><p>Open a project</p>
43 <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>
44 </li>
45 <li><p>Set the project's build products location</p>
46 <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>
47 <img src="info-tab.png"></img>
48 </li>
49 <li><p>Set the project's active build configuration</p>
50 <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>
51 <img src="build-window.png"></img>
52 </li>
53 <li><p>Add a custom executable to the project</p>
54 <p>Choose any WebKit application you want to use for debugging. To use Safari, select /Applications/Safari.app.</p>
55 <img src="custom-executable.png"></img>
56 </li>
57 <li><p>Set the project's active executable</p>
58 <p>You can set the active executable from the project's Build window. Choose the executable you just added.</p>
59 </li>
60 <li><p>Close and re-open the project</p>
61 <p>This will force Xcode to discover generated source files, which output to your build products location, allowing you to set breakpoints in them.</p>
62 </li>
63 <li><p>Launch the debugger</p>
64 <p>In the Debugger window, click the "Debug" button.</p>
65 <img src="debug.png"></img>
66 </li>
67 </ol>
68
69 <hr>
70 <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>
71
72
73 <?php
74         include("../footer.inc");
75 ?>