[llvm-commits] CVS: llvm/www/docs/GettingStarted.html

Christopher Lattner lattner at cs.uiuc.edu
Fri Sep 6 11:27:01 PDT 2002


Changes in directory llvm/www/docs:

GettingStarted.html updated: 1.5 -> 1.6

---
Log message:

Commit Vikram's changes for 426 class


---
Diffs of the changes:

Index: llvm/www/docs/GettingStarted.html
diff -u llvm/www/docs/GettingStarted.html:1.5 llvm/www/docs/GettingStarted.html:1.6
--- llvm/www/docs/GettingStarted.html:1.5	Tue Aug 13 16:10:30 2002
+++ llvm/www/docs/GettingStarted.html	Fri Sep  6 11:26:13 2002
@@ -5,17 +5,27 @@
   </head>
 
   <body bgcolor=white>
-    <h1>Getting Started with the LLVM System<br><font size=3>By: <a
-    href="mailto:gshi1 at uiuc.edu">Guochun Shi</a> and <a 
-    href="mailto:sabre at nondot.org">Chris Lattner</a></font></h1>
+    <center><h1>Getting Started with the LLVM System<br><font size=3>By: <a
+    href="mailto:gshi1 at uiuc.edu">Guochun Shi</a>,
+    <a href="mailto:sabre at nondot.org">Chris Lattner</a> and
+    <a href="http://www.cs.uiuc.edu/~vadve">Vikram Adve</a>
+    </font></h1></center>
+
+    <!--=====================================================================-->
+    <h2><a name="Contents">Contents</a></h2>
+    <!--=====================================================================-->
 
     <ul>
-      <li><a href="#quickstart">Getting started with LLVM</a>
+      <li><a href="#overview">Overview</a>
+      <li><a href="#starting">Getting started with LLVM</a>
         <ol>
-          <li><a href="#cvs">Checkout LLVM from CVS</a>
-          <li><a href="#shared">Access to <tt>/shared</tt></a>
-          <li><a href="#environment">Set up your environment</a>
-          <li><a href="#compile">Compiling the Source Code</a>
+          <li><a href="#quickstart">Getting started quickly (a summary)</a>
+          <li><a href="#checkout">Checkout LLVM from CVS</a>
+          <li><a href="#terminology">Terminology and Notation</tt></a>
+          <li><a href="#objfiles">The location for object files</tt></a>
+	  <li><a href="#config">Local Configuration Options</tt></a>
+          <li><a href="#environment">Setting up your environment</a>
+          <li><a href="#compile">Compiling the source code</a>
         </ol>
       <li><a href="#layout">Program layout</a>
 	<ol>
@@ -32,84 +42,149 @@
     </ul>
 
 
+    <!--=====================================================================-->
+    <center>
+    <h2><a name="overview"><b>Overview</b></a></h2>
+    </center>
+    <!--=====================================================================-->
+
+    <p>The <a href"starting">next section</a> of this guide is meant to get
+    you up and running with LLVM, and to give you some basic information about
+    the LLVM environment.  The <a href"#quickstart">first subsection</a> gives
+    a short summary for those who are already familiar with the system and
+    want to get started as quickly as possible.
+
+    <p>The later sections of this guide describe the <a
+    href"#layout">general layout</a> of the the llvm source tree, a <a
+    href="#tutorial">simple example</a> using the LLVM tool chain, and <a
+    href="#links">links</a> to find more information about LLVM or to get
+    help via e-mail.
 
     <!--=====================================================================-->
-    <h2><a name="quickstart">Getting Started with LLVM</a></h2>
+    <center>
+    <h2><a name="starting"><b>Getting Started</b></a></h2>
+    </center>
     <!--=====================================================================-->
 
-    <p>This guide is meant to get you up and running with LLVM as quickly as
-    possible.  Once you get the basic system running you can choose an area to
-    dive into and learn more about.  If you get stuck or something is missing
-    from this document, please email <a
-    href="mailto:sabre at nondot.org">Chris</a>.</p>
-    
+
+    <!--=====================================================================-->
+    <h3><a name="quickstart"><b>Getting Started Quickly (A Summary)</b></a></h3>
+    <!--=====================================================================-->
+
+    Here's the short story for getting up and running quickly with LLVM:
+    <ul>
+    <li>Find the path to the CVS repository containing LLVM (we'll call this <i>CVSROOTDIR</i>).
+    <li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
+    <li><tt>cvs -d <i>CVSROOTDIR</i> checkout llvm</tt>
+    <li>Edit <tt>llvm/Makefile.config</tt> to set local paths if necessary.
+    <li><tt>cd llvm</tt>
+    <li><tt>gmake -k |& tee gnumake.out
+	       # this is csh or tcsh syntax</tt>
+    </ul>
+
+    <p>See <a href="#environment">Setting up your environment</a> on tips to
+    simplify working with the llvm front-end and compiled tools.  See the
+    other sub-sections below for other useful details in working with LLVM,
+    or go straight to <a href="#layout">Program Layout</a> to learn about the
+    layout of the source code tree.
+
+    <!------------------------------------------------------------------------->
+    <h3><a name="terminology">Terminology and Notation</a></h3>
+    <!------------------------------------------------------------------------->
+
+    <p>Through this manual, the following names are used to denote paths
+    specific to the local system and working environment.  <i>These are not
+    environment variables you need to set, but just strings used in the rest
+    of this document below.</i>.  In any of the examples below, simply replace
+    each of these names with the appropriate pathname on your local system.
+    All these paths are absolute:</p>
+    <ul>
+    </ul>
 
     <!------------------------------------------------------------------------->
-    <h3><a name="tools">Checkout LLVM from CVS</a></h3>
+    <h3><a name="checkout">Checkout LLVM from CVS</a></h3>
     <!------------------------------------------------------------------------->
 
-    <p>First step is to get the actual source code.  To do this, all you need to
-    do is check it out from CVS.  From your home directory, just enter:</p>
+    <p>Before checking out the source code, you will need to know the path to
+    CVS repository containing LLVM source code (we'll call this
+    <i>CVSROOTDIR</i> below).  Ask the person responsible for your local LLVM
+    installation to give you this path.
 
-    <p><tt>cvs -d /home/vadve/vadve/Research/DynOpt/CVSRepository checkout
-    llvm</tt></p>
-
-    <p>This will create an '<tt>llvm</tt>' directory in your home directory and
-    fully populate it with the source code for LLVM.</p>
+    <p>To get a fresh copy of the entire source code, all you
+    need to do is check it out from CVS as follows:
+    <ul>
+    <li><tt>cd <i>where-you-want-llvm-to-live</i></tt>
+    <li><tt>cvs -d <i>CVSROOTDIR</i> checkout llvm</tt></p>
+    </ul>
 
+    <p>This will create an '<tt>llvm</tt>' directory in the current
+    directory and fully populate it with the LLVM source code, Makefiles,
+    test directories, and local copies of documentation files.</p>
 
     <!------------------------------------------------------------------------->
-    <h3><a name="shared">Access to <tt>/shared</tt></a></h3>
+    <h3><a name="config">Local Configuration Options</a></h3>
     <!------------------------------------------------------------------------->
 
-    By default, LLVM is configured to send all compiled files into the
-    <tt>/shared/[yourloginname]/</tt> directory.  The idea is that this
-    directory is local to the machine you're working on, so the huge libraries
-    and <tt>.o</tt> files you will be compiling will not have to be sent over
-    NFS.  If you are in a situation where this setup is correct, you don't have
-    to do anything.  If you don't have a <tt>/shared</tt> directory, you will
-    have to make a couple of modifications to your setup.<p>
- 
-    The first modification is that you need to enable the "<tt>BUILD_ROOT =
-    .</tt> line in the top level <tt>Makefile.common</tt>.  This will instruct
-    LLVM to build into the current directory tree instead of
-    <tt>/shared</tt>.<p>
+    <p>The file <tt>llvm/Makefile.config</tt>
+    defines the following path variables,
+    which are specific to a particular installation of LLVM.
+    These should need to be modified only once after checking out a copy
+    of LLVM (if the default values do not already match your system):
 
+    <ul>
+    <p><li><i>LLVM_OBJ_DIR</i> = Path to the llvm directory where
+				 object files should be placed.
+				 (See the Section on <a href=#objfiles>
+				 The location for LLVM object files</a>
+				 for more information.)
+    <p><li><i>LLVMGCCDIR</i>   = Path to the location of the LLVM front-end
+				 binaries and associated libraries.
+    <p><li><i>BURG</i>         = Path to the burg program used for instruction
+				 selection. 
+    <p><li><i>PURIFY</i>       = Path to the purify program.
+    </ul>
 
     <!------------------------------------------------------------------------->
-    <h3><a name="tools">Set up your environment</a></h3>
+    <h3><a name="objfiles">The location for LLVM object files</a></h3>
     <!------------------------------------------------------------------------->
-    
-    <p>Now that you have the source code available, you should set up your
-    environment to be able to use the LLVM tools (once compiled) with as little
-    hassle as possible.  To do this, we recommend that you add the following
-    lines to your <tt>.cshrc</tt> (or the corresponding lines to your
-    <tt>.profile</tt> if you use a bourne shell derivative):
 
-    <pre>
-       # Make the C frontend easy to use...
-       alias llvmgcc /home/vadve/lattner/cvs/gcc_install/bin/gcc
+    <p>The LLVM make system sends most output files generated during the build
+    into the directory defined by the variable LLVM_OBJ_DIR in
+    <tt>llvm/Makefile.config</tt>.
+    This can be either just your normal </tt>llvm</tt> source tree or some
+    other directory writable by you.  You may wish to put object files on a
+    different filesystem either to keep them from being backed up or to speed
+    up local builds.
 
-       # Make the LLVM tools easy to use...
-       setenv PATH /shared/[yourloginname]/llvm/tools/Debug:${PATH}
-    </pre>
+    <p>If you do not wish to use a different location for object files,
+    just set this variable to ".".
 
-    <p>The C compiler is not included in the CVS tree you just checked out, so
-    we just point to the cannonical location, and access it with the
-    <tt>llvmgcc</tt> command.  The rest of the <a href="#tools">LLVM tools</a>
-    will be built into the <tt>llvm/tools/Debug</tt> directory.  If you do not
-    have access to <tt>/shared</tt>, use this line instead:</p>
+    <!------------------------------------------------------------------------->
+    <h3><a name="environment">Setting up your environment</a></h3>
+    <!------------------------------------------------------------------------->
 
-    <pre>
-       setenv PATH ~/llvm/tools/Debug:${PATH}
-    </pre>
+    <i>NOTE: This step is optional but will set up your environment so you
+    can use the compiled LLVM tools with as little hassle as possible.</i>)
+
+    <p>Add the following lines to your <tt>.cshrc</tt> (or the corresponding
+    lines to your <tt>.profile</tt> if you use a bourne shell derivative).
 
-    Adding these two lines to your path will make it much easier to use the LLVM
-    tools.</p>
+    <pre>
+       # Make the C front end easy to use...
+       alias llvmgcc <i>LLVMGCCDIR</i><tt>/bin/gcc</tt>
 
+       # Make the LLVM tools easy to use...
+       setenv PATH <i>LLVM_OBJ_DIR</i>/tools/Debug:${PATH}
+    </pre>
+    The <tt>llvmgcc</tt> alias is useful because the C compiler is not
+    included in the CVS tree you just checked out.
+    
+    <p>The other LLVM <a href="#tools">LLVM tools</a> are part of the LLVM
+    source base, and built when compiling LLVM.  They will be built into the
+    <tt><i>LLVM_OBJ_DIR</i>/tools/Debug</tt> directory.</p>
 
     <!------------------------------------------------------------------------->
-    <h3><a name="compile">Compiling the Source Code</a></h3>
+    <h3><a name="compile">Compiling the source code</a></h3>
     <!------------------------------------------------------------------------->
 
     <p>Every directory in the LLVM source tree includes a Makefile to build it,
@@ -121,17 +196,16 @@
     in <tt>llvm/tools/Debug</tt>.  If you want to look at the libraries that
     were compiled, look in <tt>llvm/lib/Debug</tt>.</p>
 
-    <p>By default, the LLVM build process sends all temporary (<tt>.o</tt>,
-    <tt>.so</tt>, <tt>.a</tt>) files into a <tt>/shared/[your login
-    name]/...</tt> directory, which is supposed to be on a disk local to the
-    current machine.  If you get an error talking about a <tt>/shared</tt>
-    directory, follow the instructions in the <a href="#shared">section about
-    <tt>/shared</tt></a>.<p>
+    If you get an error talking about a <tt>/shared</tt> directory, follow the
+    instructions in the section about <a href="#environment">Setting Up Your
+    Environment.</a>
 
 
 
     <!--=====================================================================-->
-    <h2><a name="layout">Program Layout</a></h2>
+    <center>
+    <h2><a name="layout"><b>Program Layout</b></a></h2>
+    </center>
     <!--=====================================================================-->
 
     <p>One useful source of infomation about the LLVM sourcebase is the LLVM <a
@@ -274,9 +348,10 @@
       because it is quite large and not very interesting.<p>
 
       <ol>
-        <dt><tt><b>gccas</b></tt><dd> This took is invoked by the
+        <dt><tt><b>gccas</b></tt><dd> This tool is invoked by the
         <tt>llvmgcc</tt> frontend as the "assembler" part of the compiler.  This
-        tool actually assembles its input, performs a variety of optimizations,
+        tool actually assembles LLVM assembly to LLVM bytecode,
+	performs a variety of optimizations,
         and outputs LLVM bytecode.  Thus when you invoke <tt>llvmgcc -c x.c -o
         x.o</tt>, you are causing <tt>gccas</tt> to be run, which writes the
         <tt>x.o</tt> file (which is an LLVM bytecode file that can be
@@ -380,9 +455,9 @@
     <hr>
 
     If you have any questions or run into any snags (or you have any
-    additions...), please send an email to <a
-    href="mailto:sabre at nondot.org">Chris Lattner</a> or <a
-    href="mailto:gshi1 at uiuc.edu">Guochun Shi</a>. <p>
+    additions...), please send an email to
+    <a href="mailto:hldnbrnd at uiuc.edu">Nicholas Hildenbrandt</a> or
+    <a href="mailto:sabre at nondot.org">Chris Lattner</a>.</p>
 
 	    <!-- Created: Mon Jul  1 02:29:02 CDT 2002 -->
 	    <!-- hhmts start -->





More information about the llvm-commits mailing list