Use errs() instead of std::cerr.
[oota-llvm.git] / docs / CMake.html
index 921264fd7a355e9b2a55f4ffd6eda64ea054d3c3..1f50d397f006d628c3fea68ceae058b3131a8d17 100644 (file)
   <li><a href="#quickstart">Quick start</a></li>
   <li><a href="#usage">Basic CMake usage</a>
   <li><a href="#options">Options and variables</a>
-  <ul>
+    <ul>
     <li><a href="#freccmake">Frequently-used CMake variables</a></li>
     <li><a href="#llvmvars">LLVM-specific variables</a></li>
   </ul></li>
   <li><a href="#testing">Executing the test suite</a>
   <li><a href="#cross">Cross compiling</a>
   <li><a href="#embedding">Embedding LLVM in your project</a>
+  <li><a href="#specifics">Compiler/Platform specific topics</a>
+    <ul>
+    <li><a href="#msvc">Microsoft Visual C++</a></li>
+  </ul></li>
 </ul>
 
 <div class="doc_author">
 <p>Here are listed some of the CMake variables that are used often,
   along with a brief explanation and LLVM-specific notes. For full
   documentation, check the CMake docs or execute <i>cmake
-  --help-variable VARIABLE_NAME</i>.
+  --help-variable VARIABLE_NAME</i>.</p>
 
 <dl>
   <dt><b>CMAKE_BUILD_TYPE</b>:STRING</dt>
   <dd>Path where LLVM will be installed if "make install" is invoked
     or the "INSTALL" target is built.</dd>
 
+  <dt><b>LLVM_LIBDIR_SUFFIX</b>:STRING</dt>
+  <dd>Extra suffix to append to the directory where libraries are to
+    be installed. On a 64-bit architecture, one could use
+    -DLLVM_LIBDIR_SUFFIX=64 to install libraries to /usr/lib64.</dd>
+
   <dt><b>CMAKE_C_FLAGS</b>:STRING</dt>
   <dd>Extra flags to use when compiling C source files.</dd>
 
   <dt><b>LLVM_ENABLE_THREADS</b>:BOOL</dt>
   <dd>Build with threads support, if available. Defaults to ON.</dd>
 
+  <dt><b>LLVM_ENABLE_ASSERTIONS</b>:BOOL</dt>
+  <dd>Enables code assertions. Defaults to ON if and only if
+    CMAKE_BUILD_TYPE is <i>Release</i>.</dd>
+
   <dt><b>LLVM_ENABLE_PIC</b>:BOOL</dt>
   <dd>Add the <i>-fPIC</i> flag to the compiler command-line, if the
     compiler supports this flag. Some systems, like Windows, does not
 
 <div class="doc_text">
 
-<p>TODO</p>
+<p>See <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling">this
+    wiki page</a> for generic instructions on how to cross-compile
+    with CMake. It goes into detailed explanations and may seem
+    daunting, but it is not. On the wiki page there are several
+    examples including toolchain files. Go directly to
+    <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling#Information_how_to_set_up_various_cross_compiling_toolchains">this
+    section</a> for a quick solution.</p>
 
 </div>
 
 
 <!-- *********************************************************************** -->
 
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="specifics">Compiler/Platform specific topics</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>Notes for specific compilers and/or platforms.</p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="doc_subsection">
+  <a name="msvc">Microsoft Visual C++</a>
+</div>
+
+<div class="doc_text">
+
+  <p>For linking the JIT into your executable, add</p>
+
+  <div class="doc_code">
+    <p><tt>/INCLUDE:_X86TargetMachineModule</tt></p>
+  </div>
+
+  <p>to your linker options. This is required for adding the relevant
+    LLVM object code to the executable. Not doing this will result on
+    some methods returning NULL (<i>ExecutionEngine::create</i>, for
+    instance).</p>
+
+</div>
+
+<!-- *********************************************************************** -->
+
 <hr>
 <address>
   <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
 
   <a href="mailto:ofv@wanadoo.es">Oscar Fuentes</a><br>
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2008-10-27 00:59:36 +0100 (Mon, 27 Oct 2008) $
+  Last modified: $Date: 2008-12-31 03:59:36 +0100 (Wed, 31 Dec 2008) $
 </address>
 
 </body>