Give packagers some advice about how to build LLVM so it's useful to
[oota-llvm.git] / docs / Packaging.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2                       "http://www.w3.org/TR/html4/strict.dtd">
3 <html>
4 <head>
5   <title>Advice on Packaging LLVM</title>
6   <link rel="stylesheet" href="llvm.css" type="text/css">
7 </head>
8 <body>
9
10 <div class="doc_title">Advice on Packaging LLVM</div>
11 <ol>
12   <li><a href="#overview">Overview</a></li>
13   <li><a href="#cxx-features">C++ Features</a></li>
14   <li><a href="#shared-library">Shared Library</a></li>
15 </ol>
16
17 <!--=========================================================================-->
18 <div class="doc_section"><a name="overview">Overview</a></div>
19 <!--=========================================================================-->
20 <div class="doc_text">
21
22 <p>LLVM sets certain default configure options to make sure our developers don't
23 break things for constrained platforms.  These settings are not optimal for most
24 desktop systems, and we hope that packagers (i.e., Redhat, Debian, MacPorts,
25 etc.) will tweak them.  This document lists settings we suggest you tweak.
26 </p>
27 </div>
28
29 <!--=========================================================================-->
30 <div class="doc_section"><a name="cxx-features">C++ Features</a></div>
31 <!--=========================================================================-->
32 <div class="doc_text">
33
34 <dl>
35   <dt>RTTI</dt><dd>LLVM disables RTTI by default.  Add <tt>REQUIRES_RTTI=1</tt>
36   to your environment while running <tt>make</tt> to re-enable it.  This will
37   allow users to build with RTTI enabled and inherit from LLVM classes.</dd>
38   <dt>Exceptions</dt><dd>LLVM disables exceptions by default.  Add
39   <tt>REQUIRES_EH=1</tt> to your environment while running <tt>make</tt> to
40   re-enable them.  This will allow users to link LLVM and exception-using code.
41   It also re-enables RTTI.</dd>
42 </dl>
43 </div>
44
45 <!--=========================================================================-->
46 <div class="doc_section"><a name="shared-library">Shared Library</a></div>
47 <!--=========================================================================-->
48 <div class="doc_text">
49
50 <p>Configure with <tt>--enable-shared</tt> to build
51 <tt>libLLVM-<var>major</var>.<var>minor</var>.(so|dylib)</tt> and link the tools
52 against it.  This saves lots of binary size at the cost of some startup time.
53 </p>
54 </div>
55
56 <!-- *********************************************************************** -->
57 <hr>
58 <address>
59   <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
60   src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
61   <a href="http://validator.w3.org/check/referer"><img
62   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
63   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
64   Last modified: $Date: 2009-01-01 23:10:51 -0800 (Thu, 01 Jan 2009) $
65 </address>
66 </body>
67 </html>