[Lldb-commits] [lldb] r128116 - in /lldb/trunk/www: build.html sidebar.incl

Greg Clayton gclayton at apple.com
Tue Mar 22 15:39:26 PDT 2011

Author: gclayton
Date: Tue Mar 22 17:39:26 2011
New Revision: 128116

URL: http://llvm.org/viewvc/llvm-project?rev=128116&view=rev
Added Mac OS X build instructions and included the Linux build instructions
that Stephen Wilson sent out.

    lldb/trunk/www/build.html   (with props)

Added: lldb/trunk/www/build.html
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/build.html?rev=128116&view=auto
--- lldb/trunk/www/build.html (added)
+++ lldb/trunk/www/build.html Tue Mar 22 17:39:26 2011
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<link href="style.css" rel="stylesheet" type="text/css" />
+<title>LLDB FAQ</title>
+    <div class="www_title">
+      The <strong>LLDB</strong> Debugger
+    </div>
+<div id="container">
+	<div id="content">
+  <!--#include virtual="sidebar.incl"-->
+		<div id="middle">
+    		<div class="post">
+    			<h1 class ="postheader">Building LLDB on Mac OS X</h1>
+    			<div class="postcontent">
+    			    <p>Building on Mac OS X is as easy as downloading the code and building the Xcode project or workspace:</p>
+    			    <ul>
+                        <li><a href="download.html">Download</a> the lldb sources.</li>
+                        <li>Follow the code signing instructions in <b>lldb/docs/code-signing.txt</b></li>
+                        <li>In Xcode 3.x: <b>lldb/lldb.xcodeproj</b>, select the <b>lldb-tool</b> target, and build.</li>
+                        <li>In Xcode 4.x: <b>lldb/lldb.xcworkspace</b>, select the <b>lldb-tool</b> scheme, and build.</li>
+    			    </ul>
+    			</div>
+              	<div class="postfooter"></div>
+          	</div>
+    		<div class="post">
+    			<h1 class ="postheader">Building LLDB on Linux</h1>
+    			<div class="postcontent">
+    			    <p>This document describes the steps needed to compile LLDB on most Linux systems.</a></p>
+    			</div>
+    			<div class="postcontent">
+                <h2>Preliminaries</h2>
+                <p>LLDB relies on many of the technologies developed by the larger LLVM project.
+                In particular, it requires both Clang and LLVM itself in order to build.  Due to
+                this tight integration the <em>Getting Started</em> guides for both of these projects
+                come as prerequisite reading:</p>
+			    <ul>
+                    <li><a href="http://llvm.org/docs/GettingStarted.html">LLVM</a></li>
+                    <li><a href="http://clang.llvm.org/get_started.html">Clang</a></li>
+                </ul>
+                <p>In addition to any dependencies required by LLVM and Clang, LLDB needs a few
+                development packages that may also need to be installed depending on your
+                system.  The current list of dependencies are:</p>
+    			<ul>
+                    <li><a href="http://swig.org">Swig</a></li>
+                    <li><a href="http://www.thrysoee.dk/editline">libedit</a></li>
+                    <li><a href="http://www.python.org">Python</a></li>
+                </ul>
+                <p>So for example, on a Fedora system one might say:</p>
+                <code>> yum install swig python-devel libedit-devel</code>
+                <h2 >Building LLDB</h2>
+                <p>We first need to checkout the source trees into the appropriate locations.  Both
+                Clang and LLDB build as subprojects of LLVM.  This means we will be checking out
+                the source for both Clang and LLDB into the <tt>tools</tt> subdirectory of LLVM.  We
+                will be setting up a directory hierarchy looking something like this:</p>
+                <p>
+                <pre><tt>  
+                  llvm
+                  |
+                  `-- tools
+                      |
+                      +-- clang
+                      |
+                      `-- lldb
+                </tt></pre>
+                </p>
+                <p>For reference, we will call the root of the LLVM project tree <tt>$llvm</tt>, and the
+                roots of the Clang and LLDB source trees <tt>$clang</tt> and <tt>$lldb</tt> respectively.</p>
+                <p>Change to the directory where you want to do development work and checkout LLVM:</p>
+                <code>> svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</code>
+                <p>Now switch to LLVM’s tools subdirectory and checkout both Clang and LLDB:</p>
+                <code>> cd $llvm/tools
+                <br>> svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
+                <br>> svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb
+                </code>
+                <p>In general, LLDB requires specific revisions of both LLVM and Clang in order to
+                build.  This requirement insulates LLDB a bit from the constant development
+                happening in both of these projects.  The required revision can be discovered by
+                consulting the Perl script <tt>$lldb/scripts/build-llvm.pl</tt> and locating the
+                <tt>$llvm_revision</tt> variable.  At the time of this writing, the required revision
+                is <tt>r127682</tt>, so we might check and revert our LLVM and Clang trees to the
+                required state as follows:</p>
+                <code>> grep -m 1 llvm_revision $lldb/scripts/build-llvm.pl
+                  <br>our $llvm_revision = "127682";
+                  <br>> cd $clang
+                  <br>> svn update -r 127682
+                  <br>> cd $llvm
+                  <br>> svn update -r 127682</code>
+                <p>It is highly recommended that you build the system out of tree.  Create a second
+                build directory and configure the LLVM project tree to your specifications as
+                outlined in LLVM’s <em>Getting Started Guide</em>.  For Linux development the x86
+                backend and JIT compiler should be enabled.  A typical build procedure might be:</p>
+                <code>> cd $llvm/..
+                  <br>> mkdir build
+                  <br>> cd build
+                  <br>> $llvm/configure --enable-targets=x86 --enable-jit
+                  <br>> make</code>
+                <p>Note that once both LLVM and Clang have been configured and built it is not
+                necessary to perform a top-level <tt>make</tt> to rebuild changes made only to LLDB.
+                You can build from the <tt>build/tools/lldb</tt> subdirectory as well.</p>
+                <h2>Additional Notes</h2>
+                <p>LLDB has a Python scripting capability and supplies it’s own Python module,
+                <tt>lldb.py</tt>, built alongside the <tt>lldb</tt> binary.  Python needs to know where to
+                look for this module when LLDB starts up.  There are two options available:</p>
+                <ol class="arabic">
+                <li>
+                    <p>Keep a copy of <tt>lldb.py</tt> in the current working directory when starting lldb.</p>
+                </li>
+                <li>
+                    <p>Set <tt>PYTHONPATH</tt> to point to the directory holding <tt>lldb.py</tt>.</p>
+                </li>
+                </ol>
+                </div>
+              	<div class="postfooter"></div>
+          	</div>
+      	</div>
+	</div>
\ No newline at end of file

Propchange: lldb/trunk/www/build.html
    svn:executable = *

Modified: lldb/trunk/www/sidebar.incl
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/sidebar.incl?rev=128116&r1=128115&r2=128116&view=diff
--- lldb/trunk/www/sidebar.incl (original)
+++ lldb/trunk/www/sidebar.incl Tue Mar 22 17:39:26 2011
@@ -34,6 +34,7 @@
     <h1 class="headerbar">Source</h1>
       <li><a href="download.html">Download</a></li>
+      <li><a href="build.html">Build</a></li>
       <li><a href="http://llvm.org/bugs">Bug Reports</a></li>
       <li><a href="http://llvm.org/svn/llvm-project/lldb/trunk">Browse SVN</a></li>
       <li><a href="http://llvm.org/viewvc/llvm-project/lldb/trunk">Browse ViewVC</a></li>

More information about the lldb-commits mailing list