aboutsummaryrefslogtreecommitdiff
path: root/www/build.html
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-03-22 22:39:26 +0000
committerGreg Clayton <gclayton@apple.com>2011-03-22 22:39:26 +0000
commit41d8a5c64189c3af179f33b586e4dde2f88085a5 (patch)
treed366569d18928d2a66faf17272919539a49dd9f0 /www/build.html
parente221288aff8b6b97fb39a121f62233eae791295e (diff)
downloadlldb-41d8a5c64189c3af179f33b586e4dde2f88085a5.tar.gz
Added Mac OS X build instructions and included the Linux build instructions
that Stephen Wilson sent out. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128116 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'www/build.html')
-rwxr-xr-xwww/build.html132
1 files changed, 132 insertions, 0 deletions
diff --git a/www/build.html b/www/build.html
new file mode 100755
index 000000000..67980a2fb
--- /dev/null
+++ b/www/build.html
@@ -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">
+<head>
+<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>
+</head>
+
+<body>
+ <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>&gt; 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>&gt; svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm</code>
+
+ <p>Now switch to LLVM&#8217;s tools subdirectory and checkout both Clang and LLDB:</p>
+ <code>&gt; cd $llvm/tools
+ <br>&gt; svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
+ <br>&gt; 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>&gt; grep -m 1 llvm_revision $lldb/scripts/build-llvm.pl
+ <br>our $llvm_revision = "127682";
+ <br>&gt; cd $clang
+ <br>&gt; svn update -r 127682
+ <br>&gt; cd $llvm
+ <br>&gt; 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&#8217;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>&gt; cd $llvm/..
+ <br>&gt; mkdir build
+ <br>&gt; cd build
+ <br>&gt; $llvm/configure --enable-targets=x86 --enable-jit
+ <br>&gt; 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&#8217;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>
+</div>
+</body>
+</html> \ No newline at end of file