<!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>Building LLDB</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">
                <h1 class ="postheader">Continuous Integraton</h1>
                <div class="postcontent">
                        <p> The following LLVM buildbots build and test LLDB trunk:
                        <ul>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang">LLDB Linux x86_64 build with Clang (automake)</a>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-linux">LLDB Linux x86_64 build with GCC 4.6 (automake)</a>
                                <li> <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-darwin11">LLDB Mac OS X x86_64 build with Clang (XCode)</a>
                        </ul>
                </div>
                <div class="postfooter"></div>
    		<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>
                </div>
                <div class="postcontent">
                    <h2>Preliminaries</h2>
                    <ul>
                        <li>XCode 4.3 or newer requires the "Command Line Tools" component (XCode->Preferences->Downloads->Components).</li>
                        <li>Mac OS X Lion or newer requires installing <a href="http://swig.org">Swig</a>.</li>
                    </ul>
                    <h2>Building LLDB</h2>
    			    <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>Supported compilers for building LLDB on Linux include:</p>
                <ul>
                  <li>Clang 3.2</li>
                  <li><a href="http://gcc.gnu.org">GCC</a> 4.6.2 (later versions should work as well)</li>
                </ul>
                <p>It is recommended to use libstdc++ 4.6 (or higher) to build LLDB on Linux, but using libc++ is also known to work.</p>
                <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 run:</p>
                <code>&gt; yum install swig python-devel libedit-devel</code>
                <p>On an Ubuntu system one might run:</p>
                <code>&gt; sudo apt-get install build-essential subversion swig python-dev libedit-dev </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, building the LLDB trunk revision requires trunk revisions of both 
                LLVM and Clang.
                <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>.  A typical build procedure
                might be:</p>
                <code>&gt; cd $llvm/..
                  <br>&gt; mkdir build
                  <br>&gt; cd build
                </code>
                <h2>To build with CMake</h2>
                <p>Using CMake is documented on the <a href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a>
                   page. Building LLDB is possible using one of the following generators:
                </p>
                <ul>
                  <li> Ninja </li>
                  <li> Unix Makefiles </li>
                </ul>
                <h3>Using CMake + Ninja</h3>
                <p>Ninja is the fastest way to build LLDB! In order to use ninja, you need to have recent versions of CMake and
                   ninja on your system. To build using ninja:
                </p>
                <code>
                  <br>&gt; cmake -C .. -G Ninja
                  <br>&gt; ninja lldb
                  <br>&gt; ninja check-lldb
                </code>
                <h3>Using CMake + Unix Makefiles</h3>
                <p>If you do not have Ninja, you can still use CMake to generate Unix Makefiles that build LLDB:</p>
                <code>
                  <br>&gt; cmake -C ..
                  <br>&gt; make
                  <br>&gt; make check-lldb
                </code>
                <h2>To build with autoconf</h2>
                <p>If you do not have CMake, it is still possible to build LLDB using the autoconf build system. If you are using
                   Clang or GCC 4.7+, run:</p>
                <code>
                  <br>&gt; $llvm/configure --enable-cxx11
                  <br>&gt; make </code>
                <p>Or, if you are using a version of GCC that does not support the <tt>-std=c++11</tt> option:</p>
                <code>
                  <br>&gt; $llvm/configure
                  <br>&gt; make CXXFLAGS=-std=c++0x</code>
                <p> To run the LLDB test suite, run:</p>
                <code>
                  <br>&gt; make -C tools/lldb/test</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 run <tt>make</tt> from the <tt>build/tools/lldb</tt> subdirectory as well.</p>
                <p> If you wish to build with libc++ instead of libstdc++ (the default), run configure with the
                <tt>--enable-libcpp</tt> flag.</p>
                <p> If you wish to build a release version of LLDB, run configure with the <tt>--enable-optimized</tt> flag.</p>

                <h2>Additional Notes</h2>
                <p>LLDB has a Python scripting capability and supplies its own Python module named <tt>lldb</tt>.
                If a script is run inside the command line <tt>lldb</tt> application, the Python module
                is made available automatically.  However, if a script is to be run by a Python interpreter
                outside the command line application, the <tt>PYTHONPATH</tt> environment variable can be used
                to let the Python interpreter find the <tt>lldb</tt> module. 
                <p>The correct path can be obtained by invoking the command line <tt>lldb</tt> tool with the -P flag:</p>
                <code>&gt; export PYTHONPATH=`$llvm/build/Debug+Asserts/bin/lldb -P`</code>
                <p>If you used a different build directory or made a release build, you may need to adjust the
                above to suit your needs. To test that the lldb Python module
                is built correctly and is available to the default Python interpreter, run:</p>
                <code>&gt; python -c 'import lldb'</code></p>
                </div>
              	<div class="postfooter"></div>
          	</div>
      	</div>
	</div>
</div>
</body>
</html>
