diff options
Diffstat (limited to 'docs/Projects.html')
-rw-r--r-- | docs/Projects.html | 62 |
1 files changed, 45 insertions, 17 deletions
diff --git a/docs/Projects.html b/docs/Projects.html index 3c6d4ad..068acde 100644 --- a/docs/Projects.html +++ b/docs/Projects.html @@ -49,7 +49,7 @@ these facilities, a Makefile from a project must do the following things:</p> <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 + <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> @@ -59,9 +59,9 @@ these facilities, a Makefile from a project must do the following things:</p> <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 + <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> @@ -88,9 +88,9 @@ 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 +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> @@ -139,7 +139,7 @@ can find LLVM: </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 +if your on a GNU/Linux system) in the root of your object directory, and your project should build.</p> </div> @@ -209,7 +209,7 @@ directories:</p> 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 + 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> @@ -339,16 +339,41 @@ do:</p> <dt>USEDLIBS <dd> - This variable holds a space separated list of libraries that - should be linked into the program. These libraries must either - be LLVM libraries or libraries that come from your <b>lib</b> - directory. The libraries must be specified by their base name. - For example, to link libsample.a, you would set USEDLIBS to - <tt>sample</tt>. + 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<library base name></tt> to @@ -361,6 +386,9 @@ do:</p> <tt> LIBS += -lsample </tt> + <p> + Note that LIBS must occur in the Makefile after the inclusion of Makefile.common. + <p> </dl> </div> @@ -441,7 +469,7 @@ href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM Developers Mailing List</a>.</p> </div> - + <!-- *********************************************************************** --> <hr> <address> @@ -453,7 +481,7 @@ Mailing List</a>.</p> <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-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $ + Last modified: $Date: 2011-06-03 04:20:48 +0200 (Fri, 03 Jun 2011) $ </address> </body> |