X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FProjects.rst;h=095b87a65a10ec61ad15e75e1fe37e2da642da5c;hb=c8ed0db5aa876d82ee26d2caf082d3e548513aec;hp=ea94ffd928e496baa8612a838f5c89e09a79db80;hpb=6573c996b89bf64f206010059e6b63f7e65d7deb;p=oota-llvm.git diff --git a/docs/Projects.rst b/docs/Projects.rst index ea94ffd928e..095b87a65a1 100644 --- a/docs/Projects.rst +++ b/docs/Projects.rst @@ -1,5 +1,3 @@ -.. _projects: - ======================== Creating an LLVM Project ======================== @@ -39,82 +37,16 @@ There are two ways that you can set all of these variables: of LLVM, and the ability to support multiple object directories from a single source directory. -This document assumes that you will base your project on the LLVM sample project -found in ``llvm/projects/sample``. 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``. - -Create a Project from the Sample Project -======================================== - -Follow these simple steps to start your project: - -1. Copy the ``llvm/projects/sample`` directory to any place of your choosing. - You can place it anywhere you like. Rename the directory to match the name - of your project. - -2. 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 - ``llvm/trunk/projects/sample``. - -3. Add your source code and Makefiles to your source tree. - -4. If you want your project to be configured with the ``configure`` script then - you need to edit ``autoconf/configure.ac`` as follows: - - * **AC_INIT** - Place the name of your project, its version number and a - contact email address for your project as the arguments to this macro - - * **AC_CONFIG_AUX_DIR** - If your project isn't in the ``llvm/projects`` - directory then you might need to adjust this so that it specifies a - relative path to the ``llvm/autoconf`` directory. - - * **LLVM_CONFIG_PROJECT** - Just leave this alone. - - * **AC_CONFIG_SRCDIR** - Specify a path to a file name that identifies your - project; or just leave it at ``Makefile.common.in``. - - * **AC_CONFIG_FILES** - Do not change. - - * **AC_CONFIG_MAKEFILE** - 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. - -5. After updating ``autoconf/configure.ac``, regenerate the configure script - 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 - - % 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: - - ``--with-llvmsrc=`` - Tell your project where the LLVM source tree is located. - - ``--with-llvmobj=`` - Tell your project where the LLVM object tree is located. - - ``--prefix=`` - 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 -GNU/Linux system) in the root of your object directory, and your project should -build. +If you want to devise your own build system, studying other projects and LLVM +``Makefiles`` will probably provide enough information on how to write your own +``Makefiles``. Source Tree Layout ================== 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 -``llvm/projects/sample`` and modify it to meet your needs, but you can certainly -add to it if you want. +your source tree layout to look similar to the LLVM source tree layout. Underneath your top level directory, you should have the following directories: @@ -153,12 +85,10 @@ Underneath your top level directory, you should have the following directories: 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 ` testing tool. This test procedure uses ``RUN`` lines in the actual test case to determine how to run the test. See the - `TestingGuide `_ 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 @@ -280,7 +210,7 @@ Variables for Building Programs For example, to link ``libsample.so``, you would have the following line in your ``Makefile``: - .. code-block:: Makefile + .. code-block:: makefile LIBS += -lsample