<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Creating an LLVM Project</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>

<h1>Creating an LLVM Project</h1>

<ol>
<li><a href="#overview">Overview</a></li>
<li><a href="#create">Create a project from the Sample Project</a></li>
<li><a href="#source">Source tree layout</a></li>
<li><a href="#makefiles">Writing LLVM-style Makefiles</a>
  <ol>
  <li><a href="#reqVars">Required Variables</a></li>
  <li><a href="#varsBuildDir">Variables for Building Subdirectories</a></li>
  <li><a href="#varsBuildLib">Variables for Building Libraries</a></li>
  <li><a href="#varsBuildProg">Variables for Building Programs</a></li>
  <li><a href="#miscVars">Miscellaneous Variables</a></li>
  </ol></li>
<li><a href="#objcode">Placement of object code</a></li>
<li><a href="#help">Further help</a></li>
</ol>

<div class="doc_author">
  <p>Written by John Criswell</p>
</div>

<!-- *********************************************************************** -->
<h2><a name="overview">Overview</a></h2>
<!-- *********************************************************************** -->

<div>

<p>The LLVM build system is designed to facilitate the building of third party
projects that use LLVM header files, libraries, and tools.  In order to use
these facilities, a Makefile from a project must do the following things:</p>

<ol>
  <li>Set <tt>make</tt> variables. There are several variables that a Makefile
  needs to set to use the LLVM build system:
  <ul>
    <li><tt>PROJECT_NAME</tt> - The name by which your project is known.</li>
    <li><tt>LLVM_SRC_ROOT</tt> - The root of the LLVM source tree.</li>
    <li><tt>LLVM_OBJ_ROOT</tt> - The root of the LLVM object tree.</li>
    <li><tt>PROJ_SRC_ROOT</tt> - The root of the project's source tree.</li>
    <li><tt>PROJ_OBJ_ROOT</tt> - The root of the project's object tree.</li>
    <li><tt>PROJ_INSTALL_ROOT</tt> - The root installation directory.</li>
    <li><tt>LEVEL</tt> - The relative path from the current directory to the
    project's root ($PROJ_OBJ_ROOT).</li>
  </ul></li>
  <li>Include <tt>Makefile.config</tt> from <tt>$(LLVM_OBJ_ROOT)</tt>.</li>
  <li>Include <tt>Makefile.rules</tt> from <tt>$(LLVM_SRC_ROOT)</tt>.</li>
</ol>

<p>There are two ways that you can set all of these variables:</p>
<ol>
  <li>You can write your own Makefiles which hard-code these values.</li>
  <li>You can use the pre-made LLVM sample project. This sample project
  includes Makefiles, a configure script that can be used to configure the
  location of LLVM, and the ability to support multiple object directories
  from a single source directory.</li>
</ol>

<p>This document assumes that you will base your project on the LLVM sample
project found in <tt>llvm/projects/sample</tt>.  If you want to devise your own
build system, studying the sample project and LLVM Makefiles will probably
provide enough information on how to write your own Makefiles.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="create">Create a Project from the Sample Project</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>Follow these simple steps to start your project:</p>

<ol>
<li>Copy the <tt>llvm/projects/sample</tt> directory to any place of your
choosing.  You can place it anywhere you like.  Rename the directory to match
the name of your project.</li>

<li>
If you downloaded LLVM using Subversion, remove all the directories named .svn
(and all the files therein) from your project's new source tree.  This will
keep Subversion from thinking that your project is inside
<tt>llvm/trunk/projects/sample</tt>.</li>

<li>Add your source code and Makefiles to your source tree.</li>

<li>If you want your project to be configured with the <tt>configure</tt> script
then you need to edit <tt>autoconf/configure.ac</tt> as follows:
  <ul>
    <li><b>AC_INIT</b>. Place the name of your project, its version number and
    a contact email address for your project as the arguments to this macro</li>
    <li><b>AC_CONFIG_AUX_DIR</b>. If your project isn't in the
    <tt>llvm/projects</tt> directory then you might need to adjust this so that
    it specifies a relative path to the <tt>llvm/autoconf</tt> directory.</li>
    <li><b>LLVM_CONFIG_PROJECT</b>. Just leave this alone.</li>
    <li><b>AC_CONFIG_SRCDIR</b>. Specify a path to a file name that identifies
    your project; or just leave it at <tt>Makefile.common.in</tt></li>
    <li><b>AC_CONFIG_FILES</b>. Do not change.</li>
    <li><b>AC_CONFIG_MAKEFILE</b>. Use one of these macros for each Makefile
    that your project uses. This macro arranges for your makefiles to be copied
    from the source directory, unmodified, to the build directory.</li>
  </ul>
</li>

<li>After updating <tt>autoconf/configure.ac</tt>, regenerate the
configure script with these commands:

<div class="doc_code">
<p><tt>% cd autoconf<br>
       % ./AutoRegen.sh</tt></p>
</div>

<p>You must be using Autoconf version 2.59 or later and your aclocal version
should be 1.9 or later.</p></li>

<li>Run <tt>configure</tt> in the directory in which you want to place
object code.  Use the following options to tell your project where it
can find LLVM:

  <dl>
    <dt><tt>--with-llvmsrc=&lt;directory&gt;</tt></dt>
    <dd>Tell your project where the LLVM source tree is located.</dd>
    <dt><br><tt>--with-llvmobj=&lt;directory&gt;</tt></dt>
    <dd>Tell your project where the LLVM object tree is located.</dd>
    <dt><br><tt>--prefix=&lt;directory&gt;</tt></dt>
    <dd>Tell your project where it should get installed.</dd>
  </dl>
</ol>

<p>That's it!  Now all you have to do is type <tt>gmake</tt> (or <tt>make</tt>
if your on a GNU/Linux system) in the root of your object directory, and your
project should build.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="source">Source Tree Layout</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>In order to use the LLVM build system, you will want to organize your
source code so that it can benefit from the build system's features.
Mainly, you want your source tree layout to look similar to the LLVM
source tree layout.  The best way to do this is to just copy the
project tree from <tt>llvm/projects/sample</tt> and modify it to meet
your needs, but you can certainly add to it if you want.</p>

<p>Underneath your top level directory, you should have the following
directories:</p>

<dl>
  <dt><b>lib</b>
  <dd>
  This subdirectory should contain all of your library source
  code.  For each library that you build, you will have one
  directory in <b>lib</b> that will contain that library's source
  code.

  <p>
  Libraries can be object files, archives, or dynamic libraries.
  The <b>lib</b> directory is just a convenient place for libraries
  as it places them all in a directory from which they can be linked
  later.

  <dt><b>include</b>
  <dd>
  This subdirectory should contain any header files that are
  global to your project.  By global, we mean that they are used
  by more than one library or executable of your project.
  <p>
  By placing your header files in <b>include</b>, they will be
  found automatically by the LLVM build system.  For example, if
  you have a file <b>include/jazz/note.h</b>, then your source
  files can include it simply with <b>#include "jazz/note.h"</b>.

  <dt><b>tools</b>
  <dd>
  This subdirectory should contain all of your source
  code for executables.  For each program that you build, you
  will have one directory in <b>tools</b> that will contain that
  program's source code.
  <p>

  <dt><b>test</b>
  <dd>
  This subdirectory should contain tests that verify that your code
  works correctly.  Automated tests are especially useful.
  <p>
  Currently, the LLVM build system provides basic support for tests.
  The LLVM system provides the following:
  <ul>
    <li>
    LLVM provides a tcl procedure that is used by Dejagnu to run
    tests.  It can be found in <tt>llvm/lib/llvm-dg.exp</tt>.  This
    test procedure uses RUN lines in the actual test case to determine
    how to run the test.  See the <a
    href="TestingGuide.html">TestingGuide</a> for more details. You
    can easily write Makefile support similar to the Makefiles in
    <tt>llvm/test</tt> to use Dejagnu to run your project's tests.<br></li>
    <li>
    LLVM contains an optional package called <tt>llvm-test</tt>
    which provides benchmarks and programs that are known to compile with the
    LLVM GCC front ends.  You can use these
    programs to test your code, gather statistics information, and
    compare it to the current LLVM performance statistics.
    <br>Currently, there is no way to hook your tests directly into the
    <tt>llvm/test</tt> testing harness.  You will simply
    need to find a way to use the source provided within that directory
    on your own.
  </ul>
</dl>

<p>Typically, you will want to build your <b>lib</b> directory first followed by
your <b>tools</b> directory.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="makefiles">Writing LLVM Style Makefiles</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>The LLVM build system provides a convenient way to build libraries and
executables.  Most of your project Makefiles will only need to define a few
variables.  Below is a list of the variables one can set and what they can
do:</p>

<!-- ======================================================================= -->
<h3>
  <a name="reqVars">Required Variables</a>
</h3>

<div>

<dl>
  <dt>LEVEL
  <dd>
  This variable is the relative path from this Makefile to the
  top directory of your project's source code.  For example, if
  your source code is in <tt>/tmp/src</tt>, then the Makefile in
  <tt>/tmp/src/jump/high</tt> would set <tt>LEVEL</tt> to <tt>"../.."</tt>.
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="varsBuildDir">Variables for Building Subdirectories</a>
</h3>

<div>

<dl>
  <dt>DIRS
  <dd>
  This is a space separated list of subdirectories that should be
  built.  They will be built, one at a time, in the order
  specified.
  <p>

  <dt>PARALLEL_DIRS
  <dd>
  This is a list of directories that can be built in parallel.
  These will be built after the directories in DIRS have been
  built.
  <p>

  <dt>OPTIONAL_DIRS
  <dd>
  This is a list of directories that can be built if they exist,
  but will not cause an error if they do not exist.  They are
  built serially in the order in which they are listed.
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="varsBuildLib">Variables for Building Libraries</a>
</h3>

<div>

<dl>
  <dt>LIBRARYNAME
  <dd>
  This variable contains the base name of the library that will
  be built.  For example, to build a library named
  <tt>libsample.a</tt>, LIBRARYNAME should be set to
  <tt>sample</tt>.
  <p>

  <dt>BUILD_ARCHIVE
  <dd>
  By default, a library is a <tt>.o</tt> file that is linked
  directly into a program.  To build an archive (also known as
  a static library), set the BUILD_ARCHIVE variable.
  <p>

  <dt>SHARED_LIBRARY
  <dd>
  If SHARED_LIBRARY is defined in your Makefile, a shared
  (or dynamic) library will be built.
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="varsBuildProg">Variables for Building Programs</a>
</h3>

<div>

<dl>
  <dt>TOOLNAME
  <dd>
  This variable contains the name of the program that will
  be built.  For example, to build an executable named
  <tt>sample</tt>, TOOLNAME should be set to <tt>sample</tt>.
  <p>

  <dt>USEDLIBS
  <dd>
  This variable holds a space separated list of libraries that should
  be linked into the program.  These libraries must be libraries that
  come from your <b>lib</b> directory.  The libraries must be
  specified without their "lib" prefix.  For example, to link
  libsample.a, you would set USEDLIBS to
  <tt>sample.a</tt>.
  <p>
  Note that this works only for statically linked libraries.
  <p>

  <dt>LLVMLIBS
  <dd>
  This variable holds a space separated list of libraries that should
  be linked into the program.  These libraries must be LLVM libraries.
  The libraries must be specified without their "lib" prefix.  For
  example, to link with a driver that performs an IR transformation
  you might set LLVMLIBS to this minimal set of libraries
  <tt>LLVMSupport.a LLVMCore.a LLVMBitReader.a LLVMAsmParser.a LLVMAnalysis.a LLVMTransformUtils.a LLVMScalarOpts.a LLVMTarget.a</tt>.
  <p>
  Note that this works only for statically linked libraries. LLVM is
  split into a large number of static libraries, and the list of libraries you
  require may be much longer than the list above. To see a full list
  of libraries use:
  <tt>llvm-config --libs all</tt>.
  Using LINK_COMPONENTS as described below, obviates the need to set LLVMLIBS.
  <p>

  <dt>LINK_COMPONENTS
  <dd>This variable holds a space separated list of components that
  the LLVM Makefiles pass to the <tt>llvm-config</tt> tool to generate
  a link line for the program. For example, to link with all LLVM
  libraries use
  <tt>LINK_COMPONENTS = all</tt>.
  <p>

  <dt>LIBS
  <dd>
  To link dynamic libraries, add <tt>-l&lt;library base name&gt;</tt> to
  the LIBS variable.  The LLVM build system will look in the same places
  for dynamic libraries as it does for static libraries.
  <p>
  For example, to link <tt>libsample.so</tt>, you would have the
  following line in your <tt>Makefile</tt>:
  <p>
  <tt>
  LIBS += -lsample
  </tt>
  <p>
  Note that LIBS must occur in the Makefile after the inclusion of Makefile.common.
  <p>
</dl>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="miscVars">Miscellaneous Variables</a>
</h3>

<div>

<dl>
  <dt>ExtraSource
  <dd>
  This variable contains a space separated list of extra source
  files that need to be built.  It is useful for including the
  output of Lex and Yacc programs.
  <p>

  <dt>CFLAGS
  <dt>CPPFLAGS
  <dd>
  This variable can be used to add options to the C and C++
  compiler, respectively.  It is typically used to add options
  that tell the compiler the location of additional directories
  to search for header files.
  <p>
  It is highly suggested that you append to CFLAGS and CPPFLAGS as
  opposed to overwriting them.  The master Makefiles may already
  have useful options in them that you may not want to overwrite.
  <p>
</dl>

</div>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="objcode">Placement of Object Code</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>The final location of built libraries and executables will depend upon
whether you do a Debug, Release, or Profile build.</p>

<dl>
  <dt>Libraries
  <dd>
  All libraries (static and dynamic) will be stored in
  <tt>PROJ_OBJ_ROOT/&lt;type&gt;/lib</tt>, where type is <tt>Debug</tt>,
  <tt>Release</tt>, or <tt>Profile</tt> for a debug, optimized, or
  profiled build, respectively.<p>

  <dt>Executables
  <dd>All executables will be stored in
  <tt>PROJ_OBJ_ROOT/&lt;type&gt;/bin</tt>, where type is <tt>Debug</tt>,
  <tt>Release</tt>, or <tt>Profile</tt> for a debug, optimized, or profiled
  build, respectively.
</dl>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="help">Further Help</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>If you have any questions or need any help creating an LLVM project,
the LLVM team would be more than happy to help.  You can always post your
questions to the <a
href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM Developers
Mailing List</a>.</p>

</div>

<!-- *********************************************************************** -->
<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>

  <a href="mailto:criswell@uiuc.edu">John Criswell</a><br>
  <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
  <br>
  Last modified: $Date: 2011-06-02 22:20:48 -0400 (Thu, 02 Jun 2011) $
</address>

</body>
</html>
