-.. _projects:
-
========================
Creating an LLVM Project
========================
with these commands. (You must be using ``Autoconf`` version 2.59 or later
and your ``aclocal`` version should be 1.9 or later.)
-.. code-block:: bash
+ .. code-block:: bash
- % cd autoconf
- % ./AutoRegen.sh
+ % cd autoconf
+ % ./AutoRegen.sh
6. Run ``configure`` in the directory in which you want to place object code.
Use the following options to tell your project where it can find LLVM:
``--prefix=<directory>``
Tell your project where it should get installed.
-That's it! Now all you have to do is type ``gmake`` (or ``make`` if your on a
+That's it! Now all you have to do is type ``gmake`` (or ``make`` if you're on a
GNU/Linux system) in the root of your object directory, and your project should
build.
Currently, the LLVM build system provides basic support for tests. The LLVM
system provides the following:
-* LLVM provides a ``tcl`` procedure that is used by ``Dejagnu`` to run tests.
- It can be found in ``llvm/lib/llvm-dg.exp``. This test procedure uses ``RUN``
+* LLVM contains regression tests in ``llvm/test``. These tests are run by the
+ :doc:`Lit <CommandGuide/lit>` testing tool. This test procedure uses ``RUN``
lines in the actual test case to determine how to run the test. See the
- `TestingGuide <TestingGuide.html>`_ for more details. You can easily write
- Makefile support similar to the Makefiles in ``llvm/test`` to use ``Dejagnu``
- to run your project's tests.
+ :doc:`TestingGuide` for more details.
* LLVM contains an optional package called ``llvm-test``, which provides
benchmarks and programs that are known to compile with the Clang front
``LIBS``
- To link dynamic libraries, add <tt>-l<library base name></tt> to the
- ``LIBS`` variable. The LLVM build system will look in the same places for
- dynamic libraries as it does for static libraries.
+ To link dynamic libraries, add ``-l<library base name>`` to the ``LIBS``
+ variable. The LLVM build system will look in the same places for dynamic
+ libraries as it does for static libraries.
For example, to link ``libsample.so``, you would have the following line in
your ``Makefile``:
-.. code-block: Makefile
+ .. code-block:: makefile
- LIBS += -lsample
+ LIBS += -lsample
Note that ``LIBS`` must occur in the Makefile after the inclusion of
``Makefile.common``.
Miscellaneous Variables
-----------------------
-``CFLAGS``
-``CPPFLAGS``
+``CFLAGS`` & ``CPPFLAGS``
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
Libraries
All libraries (static and dynamic) will be stored in
- ``PROJ_OBJ_ROOT/<type>/lib``, where *``type``* is ``Debug``, ``Release``, or
+ ``PROJ_OBJ_ROOT/<type>/lib``, where *type* is ``Debug``, ``Release``, or
``Profile`` for a debug, optimized, or profiled build, respectively.
Executables
- All executables will be stored in ``PROJ_OBJ_ROOT/<type>/bin``, where
- *``type``* is ``Debug``, ``Release``, or ``Profile`` for a debug, optimized,
- or profiled build, respectively.
+ All executables will be stored in ``PROJ_OBJ_ROOT/<type>/bin``, where *type*
+ is ``Debug``, ``Release``, or ``Profile`` for a debug, optimized, or
+ profiled build, respectively.
Further Help
============
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 `LLVM Developers Mailing List
-<http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev>`_.
+<http://lists.cs.uiuc.edu/pipermail/llvmdev/>`_.