<!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$
</address>

</body>
</html>
