Stamped by Maciej.
[WebKit-https.git] / WebKitSite / building / build.html
index b6e9de85641de3da9e1a1119b51d334d760391a5..3676f4131c31dc54c0a9468c73801cb4b9b7f45f 100644 (file)
@@ -1,50 +1,75 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-<html>
-<head>
-  <meta content="text/html; charset=ISO-8859-1"
- http-equiv="content-type">
-  <title>Building WebKit</title>
-  <link rel=stylesheet href="../webkitdev.css">
-</head>
-<body>
-<!--begin sidebar -->
-<iframe id="sidebar" src="../sidebar.html"></iframe>
-<!--end sidebar -->
-
-<div id="banner">
-Building WebKit
-</div>
-
-<div id="content">
-
-<p>Before you build WebKit, you'll need to <a href="checkout.html">check out</a> sources.<p>
+<?php
+       $title = "Building WebKit";
+       include("../header.inc");
+?>
+
+<h2>Building WebKit</h2>
+
+<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>
 
 <ol>
 
 <ol>
+<li><p>Type this command to build WebKit:</p>
+<p class="code">WebKit/WebKitTools/Scripts/build-webkit</p>
+<p>Use the <tt>--debug</tt> option for a debug build, which includes debugging symbols and assertions:</p>
+<p class="code">WebKit/WebKitTools/Scripts/build-webkit --debug</p>
+</li>
+</ol>
+
+<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>
+<p>More information about building WebKit is available on the <a href="http://wiki.webkit.org">WebKit Wiki</a>.</p>
 
 
-<li><p>To start a build, use the <tt>build-webkit</tt> script.</p>
-<p class="code">WebKitTools/Scripts/build-webkit</p>
-<p>It's handy to put the <tt>WebKitTools/Scripts</tt> directory in your shell path so you can type commands like <tt>build-webkit</tt> without specifying the path to the script.</p>
+<h2>Running Safari with the WebKit You Built</h2>
+<ol>
+<li><p>Type this command to run Safari with the WebKit you built:</p>
+<p class="code">WebKit/WebKitTools/Scripts/run-safari</p>
 </li>
 </li>
+<p>Use the <tt>--debug</tt> option for a debug build:</p>
+<p class="code">WebKit/WebKitTools/Scripts/run-safari --debug</p>
+</ol>
+<p>The <tt>run-safari</tt> script sets the <tt>DYLD_FRAMEWORK_PATH</tt> environment variable to point to your build products, 
+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>
 
 
-<li><p>Once the frameworks are built, you'll probably want to run Safari using the newly-built WebKit. To do that, use the <tt>run-safari</tt> script.</p>
-<p class="code">WebKitTools/Scripts/run-safari</p>
-<p>This script sets up the <tt>DYLD_FRAMEWORK_PATH</tt> environment variable, which will cause the system loader to use the
-frameworks you built from your Xcode build products directory instead of the ones installed in /System/Library/Frameworks,
-so it will start the version of Safari from the Applications directory with the WebKit frameworks you just built.</p>
+<h2>Setting a Default</h2>
+<ol>
+<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>
+<p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --debug</p>
+<p class="code">WebKit/WebKitTools/Scripts/set-webkit-configuration --release</p>
 </li>
 </li>
+</ol>
 
 
+<h2>Debugging the WebKit You Built in Xcode</h2>
+<ol>
+<li><p>Open a project</p>
+<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>
+</li>
+<li><p>Set the project's build products location</p>
+<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>
+<img src="info-tab.png"></img>
+</li>
+<li><p>Set the project's active build configuration</p>
+<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>
+<img src="build-window.png"></img>
+</li>
+<li><p>Add a custom executable to the project</p>
+<p>Choose any WebKit application you want to use for debugging. To use Safari, select /Applications/Safari.app.</p>
+<img src="custom-executable.png"></img>
+</li>
+<li><p>Set the project's active executable</p>
+<p>You can set the active executable from the project's Build window. Choose the executable you just added.</p>
+</li>
+<li><p>Close and re-open the project</p>
+<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>
+</li>
+<li><p>Launch the debugger</p>
+<p>In the Debugger window, click the "Debug" button.</p>
+<img src="debug.png"></img>
+</li>
 </ol>
 
 </ol>
 
-<p>If you have specified custom location for the build products directory in Xcode preferences, the frameworks will be built in that directory.
-If you haven't, the build products will be put in a directory named WebKitBuild alongside the source code directories.</p>
-<p>By default, the scripts will do a Deployment build, which is optimized and doesn't have development-only code, like assertions, compiled in.
-If you're prefer to do a Development build, then do execute this command:</p>
-<p class="code">WebKitTools/Scripts/set-webkit-configuration --development</p>
-<p>You can also pass the configuration on the command line to any of the build commands.
-If you're using Xcode 2.0 you'll need to blow away your build products directory each time you switch configurations.</p>
-<p>More information about building WebKit can be found on its <a href="http://www.opendarwin.org/wiki/index.php/WebKit">wiki</a>.</p>
-<p>[TODO: Talk about how to replace your system WebKit.framework, and why you probably don't want to, once we have scripts that help you do that.]</p>
-
-</div>
-</body>
-</html>
+<hr>
+<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>
+
+
+<?php
+       include("../footer.inc");
+?>