[llvm-commits] [hlvm] r38008 - in /hlvm/trunk/docs: GettingStarted.html hlvm.css img/ img/lines.png index.html index.shtml
Reid Spencer
reid at x10sys.com
Sat Jul 7 16:58:54 PDT 2007
Author: reid
Date: Sat Jul 7 18:58:54 2007
New Revision: 38008
URL: http://llvm.org/viewvc/llvm-project?rev=38008&view=rev
Log:
Initial cut at the GettingStarted guide, with css formatting to match the
format the HLVM main web site.
Added:
hlvm/trunk/docs/GettingStarted.html
hlvm/trunk/docs/hlvm.css
hlvm/trunk/docs/img/
hlvm/trunk/docs/img/lines.png (with props)
hlvm/trunk/docs/index.html
- copied unchanged from r37997, hlvm/trunk/docs/index.shtml
Removed:
hlvm/trunk/docs/index.shtml
Added: hlvm/trunk/docs/GettingStarted.html
URL: http://llvm.org/viewvc/llvm-project/hlvm/trunk/docs/GettingStarted.html?rev=38008&view=auto
==============================================================================
--- hlvm/trunk/docs/GettingStarted.html (added)
+++ hlvm/trunk/docs/GettingStarted.html Sat Jul 7 18:58:54 2007
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Getting Started with HLVM</title>
+ <link rel="stylesheet" href="hlvm.css" type="text/css">
+</head>
+<body>
+<div class="title">Getting Started with the HLVM System</div>
+<ol>
+ <li><a href="#quickstart">Quick Start (For The Impatient)</a>
+ <li><a href="#overview">Overview</a>
+ <li><a href="#requirements">Requirements</a>
+ <ol>
+ <li><a href="#hardware">Hardware</a>
+ <li><a href="#software">Software</a>
+ <li><a href="#brokengcc">Broken versions of GCC</a>
+ </ol></li>
+
+ <li><a href="#starting">Getting Started with LLVM</a>
+ <ol>
+ <li><a href="#terminology">Terminology and Notation</a>
+ <li><a href="#environment">Setting Up Your Environment</a>
+ <li><a href="#unpack">Unpacking the LLVM Archives</a>
+ <li><a href="#checkout">Checkout LLVM from CVS</a>
+ <li><a href="#installcf">Install the GCC Front End</a>
+ <li><a href="#config">Local LLVM Configuration</a>
+ <li><a href="#compile">Compiling the LLVM Suite Source Code</a>
+ <li><a href="#objfiles">The Location of LLVM Object Files</a>
+ <li><a href="#optionalconfig">Optional Configuration Items</a>
+ </ol></li>
+
+ <li><a href="#layout">Program layout</a>
+ <ol>
+ <li><a href="#cvsdir"><tt>CVS</tt> directories</a>
+ <li><a href="#examples"><tt>llvm/examples</tt></a>
+ <li><a href="#include"><tt>llvm/include</tt></a>
+ <li><a href="#lib"><tt>llvm/lib</tt></a>
+ <li><a href="#projects"><tt>llvm/projects</tt></a>
+ <li><a href="#runtime"><tt>llvm/runtime</tt></a>
+ <li><a href="#test"><tt>llvm/test</tt></a>
+ <li><a href="#tools"><tt>llvm/tools</tt></a>
+ <li><a href="#utils"><tt>llvm/utils</tt></a>
+ <li><a href="#win32"><tt>llvm/win32</tt></a>
+ </ol></li>
+
+ <li><a href="#problems">Common Problems</a>
+ <li><a href="#links">Links</a>
+</ol>
+
+<div class="author">
+ <p>Author:<a href="mailto:rspencer at reidspencer.com">Reid Spencer</a>.</p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="section">
+ <a name="quickstart"><b>Quick Start (For The Impatient)</b></a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="text">
+<p>Here's the quick start for getting up and running quickly with HLVM. Note
+that this is for experts and the impatient only.</p>
+<ol>
+ <li>Read the documentation.</li>
+ <li>Read the documentation.</li>
+ <li>Remember that you were warned twice about reading the documentation.</li>
+ <li>Obtain, build, and install the dependent packages. You need LLVM, APR,
+ APR-Utils, expat, GCC, Gnu Make, and the Gnu C Library</li>
+ <li>Obtain the HLVM Source Code (svn://hlvm.org/hlvm).</li>
+ <li>Configure the HLVM Build Environment. There's two ways to do this. Either
+ run the <tt>build.sh</tt> script (read the top of it to find out how) or:
+ <ol>
+ <li><tt>cd <i>where-you-want-to-build-llvm</i></tt></li>
+ <li><tt><i>/path/to/hlvm/</i>configure [options]</tt><br/>
+ Some common options:
+ <ul>
+ <li><tt>--prefix=<i>directory</i></tt><br/>
+ Specify for <i>directory</i> the full pathname of where you
+ want the HLVM tools and libraries to be installed (default
+ <tt>/usr/local</tt>).</li>
+ <li><tt>--with-llvm-src=<i>directory</i></tt><br/>Specify source location
+ for LLVM.</li>
+ <li><tt>--with-llvm-obj=<i>directory</i></tt><br/>Specify object location
+ for LLVM.</li>
+ <li><tt>--with-APR=<i>directory</i></tt><br/>Specify installed location
+ for APR.</li>
+ <li><tt>--with-APRU=<i>directory</i></tt><br/>Specify installed location
+ for APR Utils.</li>
+ <li><tt>--with-EXPAT=<i>directory</i></tt><br/>Specify installed location
+ for Expat XML Parser.</li>
+ <li><tt>--with-SYCK=<i>directory</i></tt><br/>Specify installed location
+ for Syck library.</li>
+ </ul>
+ </ol></li>
+
+ <li>Build HLVM. If you already ran build.sh, skip this step,
+ otherwise just run <tt>make</tt> or <tt>gmake</tt></li>
+ <li>Install HLVM. If you already ran build.sh, skip this step, otherwise just
+ run <tt>make install</tt> or <tt>gmake install</tt></li>
+</ol>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="section"><a name="overview"><b>Overview</b></a></div>
+<!-- *********************************************************************** -->
+<div class="text">
+<p>Welcome to HLVM! This document shows you how to get started with the High
+Level Virtual Machine. Before you do that, lets get some questions answered up
+front to make sure you actually want to get started with HLVM.</p>
+<dl>
+ <dt>What is HLVM?</dt>
+ <dd>HLVM is a toolkit for building virtual machines for dynamic languages. Its
+ not something everyone is going to want to mess with. Generally, it is highly
+ technical and doesn't really do much for an end user. On the other hand, if
+ you're developing your own dynamic programming language, HLVM is <em>just</em>
+ the ticket.</dd>
+ <dt>Who uses HLVM?</dt>
+ <dd>Generally, programming language researchers and software tool vendors
+ use HLVM.</dd>
+ <dt>What does HLVM do?</dt>
+ <dd>HLVM doesn't really <em>do</em> anything. While it provides a few
+ executables, these are ancillary in nature. Most of HLVM's capabilities are
+ provided through a set of code libraries that can be incorporated into other
+ programs. HLVM does provide a virtual machine executable but without a program
+ to run (one that has been compiled by HLVM based tools), the virtual machine
+ won't do anything. So, if you're an end use of software, HLVM probably isn't
+ for you. If you're a developer, however, we think you'll find HLVM quite
+ spiffy.</dd>
+ <dt>How hard is HLVM to build?</dt>
+ <dd>Although we've tried to make building HLVM dead simple, it is a
+ complicated system and you must understand some of those complexities to get
+ it right. One of its major complexities is that it incorporates many other
+ packages that are not distributed with HLVM. You must build and install those
+ packages yourself.</dd>
+</dl>
+<p>Okay, if you're still interested in HLVM, then we have a few more
+introductory things to cover:</p>
+<ol>
+ <li>HLVM provides a suite of libraries and a few tools. These are statically
+ linked (archive files and object files) so that you can incorporate the
+ appropriate pieces into your project. This was done purposefully since we
+ don't believe that creating a monolithic shared library (DLL) is particularly
+ useful. This architecture gives you the freedom to construct your own
+ libraries by picking the appropriate things from the palette that HLVM offers.
+ </li>
+ <li>Although HLVM provides several tools, these are ancillary in nature. They
+ are provided to help either with testing HLVM or to help you use HLVM. The
+ <tt>hlvm</tt> program (the actual virtual machine) is a reference
+ implementation. You may choose to implement it differently (with the help of
+ HLVM's runtime libraries, of course).</li>
+</ol>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="section"><a name="overview"><b>Overview</b></a></div>
+<!-- *********************************************************************** -->
+<p>HLVM is dependent on a number of other software packages. These
+packages will be required before you can build HLVM. Fortunately, the configure
+script will tell you which packages you lack. The table below shows the software
+that HLVM depends on. You <b>must</b> obtain and build these packages yourself
+if they are not already present on your system.</p>
+
+
+
+<!-- *********************************************************************** -->
+<div class="section"><a name="requirements"><b>Requirements</b></a></div>
+<!-- *********************************************************************** -->
+
+<div class="text">
+
+<p>Before you begin to use the LLVM system, review the requirements given below.
+This may save you some trouble by knowing ahead of time what hardware and
+software you will need.</p>
+
+</div>
+
+<!-- ======================================================================= -->
+<div class="subsection"><a name="hardware"><b>Hardware</b></a></div>
+<div class="text">
+ <p>HLVM supports whatever hardware LLVM supports. For details, please see
+ <a href="http://llvm.org/docs/GettingStarted.html#hardware">LLVM's documentation</a></p>
+</div>
+
+<!-- ======================================================================= -->
+<div class="subsection"><a name="software"><b>Software</b></a></div>
+<div class="text">
+ <p>Compiling HLVM requires that you have several software packages installed.
+ The table below lists those required packages. The Package column is the usual
+ name for the software package that HLVM depends on. The Version column
+ provides "known to work" versions of the package. The Notes column describes
+ how HLVM uses the package and provides other details.</p>
+ <table>
+ <tr><th>Package</th><th>Version</th><th>Notes</th></tr>
+ <tr>
+ <td><a href="http://llvm.org/">LLVM</a></td>
+ <td>1.7</td>
+ <td>optimization, code generation, bytecode, JIT</td>
+ </tr>
+ <tr>
+ <td><a href="http://apr.apache.org/">APR</a></td>
+ <td>1.2.7</td>
+ <td>runtime environment, OS abstraction, threading, loading, etc.</td>
+ </tr>
+ <tr>
+ <td><a href="http://savannah.gnu.org/projects/make">GNU Make</a></td>
+ <td>3.79, 3.79.1</td>
+ <td>Makefile/build processor</td>
+ </tr>
+ <tr>
+ <td><a href="http://gcc.gnu.org">GCC</a></td>
+ <td>≥3.4.4</td>
+ <td>C/C++ compiler<sup><a href="#sf1">1</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://www.gnu.org/software/flex">Flex</a></td>
+ <td>2.5.4</td>
+ <td>LEX compiler</td>
+ </tr>
+ <tr>
+ <td><a href="http://www.gnu.org/software/bison/bison.html">Bison</a></td>
+ <td>1.28, 1.35, 1.75, 1.875d, 2.0, or 2.1<br/>(not 1.85 or 1.875)</td>
+ <td>YACC compiler</td>
+ </tr>
+ <tr>
+ <td><a href="http://subversion.tigris.org/">Subversion</a></td>
+ <td>≥1.1</td>
+ <td>Suversion access to HLVM source<sup><a href="#sf2">2</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://savannah.gnu.org/projects/dejagnu">DejaGnu</a></td>
+ <td>1.4.2</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://www.tcl.tk/software/tcltk/">tcl</a></td>
+ <td>8.3, 8.4</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://expect.nist.gov/">expect</a></td>
+ <td>5.38.0</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://savannah.gnu.org/projects/m4">GNU M4</a>
+ <td>1.4</td>
+ <td>Macro processor for configuration<sup><a href="#sf4">4</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://www.gnu.org/software/autoconf">GNU Autoconf</a></td>
+ <td>2.59</td>
+ <td>Configuration script builder<sup><a href="#sf4">4</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://www.gnu.org/software/automake">GNU Automake</a></td>
+ <td>1.9.2</td>
+ <td>aclocal macro generator<sup><a href="#sf4">4</a></sup></td>
+ </tr>
+ <tr>
+ <td><a href="http://savannah.gnu.org/projects/libtool">libtool</a></td>
+ <td>1.5.10</td>
+ <td>Shared library manager<sup><a href="#sf4">4</a></sup></td>
+ </tr>
+ </table>
+
+ <p><b>Notes:</b></p>
+ <div class="notes">
+ <ol>
+ <li><a name="sf3">Only the C and C++ languages are needed so there's no
+ need to build the other languages for LLVM's purposes.</a> See
+ <a href="#brokengcc">below</a> for specific version info.</li>
+ <li><a name="sf2">You only need CVS if you intend to build from the
+ latest LLVM sources. If you're working from a release distribution, you
+ don't need CVS.</a></li>
+ <li><a name="sf3">Only needed if you want to run the automated test
+ suite in the <tt>llvm/test</tt> directory.</a></li>
+ <li><a name="sf4">If you want to make changes to the configure scripts,
+ you will need GNU autoconf (2.59), and consequently, GNU M4 (version 1.4
+ or higher). You will also need automake (1.9.2). We only use aclocal
+ from that package.</a></li>
+ </ol>
+ </div>
+
+ <p>Additionally, your compilation host is expected to have the usual
+ plethora of Unix utilities. Specifically:</p>
+ <ul>
+ <li><b>ar</b> - archive library builder</li>
+ <li><b>bzip2*</b> - bzip2 command for distribution generation</li>
+ <li><b>bunzip2*</b> - bunzip2 command for distribution checking</li>
+ <li><b>chmod</b> - change permissions on a file</li>
+ <li><b>cat</b> - output concatenation utility</li>
+ <li><b>cp</b> - copy files</li>
+ <li><b>date</b> - print the current date/time </li>
+ <li><b>echo</b> - print to standard output</li>
+ <li><b>egrep</b> - extended regular expression search utility</li>
+ <li><b>etags</b> - C/C++ tag file creator for vim/emacs</li>
+ <li><b>find</b> - find files/dirs in a file system</li>
+ <li><b>grep</b> - regular expression search utility</li>
+ <li><b>gzip*</b> - gzip command for distribution generation</li>
+ <li><b>gunzip*</b> - gunzip command for distribution checking</li>
+ <li><b>install</b> - install directories/files </li>
+ <li><b>mkdir</b> - create a directory</li>
+ <li><b>mv</b> - move (rename) files</li>
+ <li><b>ranlib</b> - symbol table builder for archive libraries</li>
+ <li><b>rm</b> - remove (delete) files and directories</li>
+ <li><b>sed</b> - stream editor for transforming output</li>
+ <li><b>sh</b> - Bourne shell for make build scripts</li>
+ <li><b>tar</b> - tape archive for distribution generation</li>
+ <li><b>test</b> - test things in file system</li>
+ <li><b>unzip*</b> - unzip command for distribution checking</li>
+ <li><b>zip*</b> - zip command for distribution generation</li>
+ </ul>
+</div>
+</body>
+</html>
Added: hlvm/trunk/docs/hlvm.css
URL: http://llvm.org/viewvc/llvm-project/hlvm/trunk/docs/hlvm.css?rev=38008&view=auto
==============================================================================
--- hlvm/trunk/docs/hlvm.css (added)
+++ hlvm/trunk/docs/hlvm.css Sat Jul 7 18:58:54 2007
@@ -0,0 +1,176 @@
+/* HLVM website style sheet */
+A:link {
+ color: #0000CC;
+ cursor: pointer;
+ text-decoration: underline;
+ font-weight: bolder;
+}
+A:visited {
+ color: #0000CC;
+ cursor: pointer;
+ text-decoration: underline;
+ font-weight: bolder;
+}
+A:hover {
+ color: #8888FF;
+ cursor: pointer;
+ text-decoration: underline;
+ font-weight: bolder;
+}
+A:active {
+ color: #8888FF;
+ cursor: pointer;
+ text-decoration: underline;
+ font-weight: bolder;
+ font-style: italic;
+}
+ADDRESS IMG {
+ float: right;
+ width: 88px;
+ height: 31px;
+}
+ADDRESS {
+ clear: right;
+}
+B { font-weight: bold; }
+BODY {
+ background: #f0f0f0;
+ color: #000000;
+ text-align: left;
+ line-height: normal;
+ letter-spacing: normal;
+ word-spacing: normal;
+ font-family: "Verdana,Arial,sans";
+ font-size: medium;
+ font-style: normal;
+ font-weight: bold;
+ font-variant: normal;
+ position: relative;
+ margin-left: 0em;
+ min-width: 400px;
+ width: 100%;
+ margin: 2px 2px 2px 2px;
+ padding: 0 0 0 0;
+ border: none;
+}
+DT { margin-top: 0.75em; font-weight: bold; color: #0000DD; }
+EM { color: #0000DD; font-style: italic; }
+H1 {
+ background: url("img/lines.png");
+ color: #EEEEFF;
+ border-top: 1px solid #CCEEFF;
+ border-bottom: 1px solid #CCEEFF;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 150%;
+ font-weight: bold;
+ padding: 0.1em 0.1em 0.1em 0.1em;
+ width: 100%;
+ margin-bottom: 0.3em;
+}
+H2 {
+ border-top: 1px solid #0000AA;
+ border-bottom: 1px solid #0000AA;
+ background-color: #4444AA;
+ color: #EEEEFF;
+ text-align: left;
+ font-size: 125%;
+ font-weight: bold;
+}
+H3 {
+ color: #EEEEFF;
+ background-color: #4444AA;
+ text-align: left;
+ text-decoration: underline;
+ font-size: 110%;
+ font-weight: bold;
+}
+H4 {
+ color: #EEEEFF;
+ text-align: left;
+ font-size: 105%;
+ font-weight: bold;
+}
+HR { color: #0000AA; }
+I { font-style: italic; }
+LI { margin-top: 0.25em; }
+STRONG{ color: #0000FF; font-weight: bold }
+PRE { font-size: 80%; }
+TABLE {
+ width: 95%;
+ font-size: 95%;
+ table-layout: auto;
+ border-collapse: collapse;
+ text-align: left;
+ vertical-align: top;
+ border: 2px dotted #0000AA;
+ margin: 4px;
+}
+TH {
+ color: #EEEEFF;
+ font-size: 105%;
+ font-weight: bold;
+ border: 2px solid #0000AA;
+ padding: 0px 4px 1px 4px;
+ text-align: left;
+ vertical-align: top;
+ background: url("img/lines.png");
+}
+TD {
+ margin: 4px;
+ border: 2px solid #0000AA;
+ text-align: left;
+ vertical-align: top;
+ padding: 0px 4px 1px 4px;
+}
+.author { text-align: left; font-weight: bold; padding-left: 20pt }
+.warning { color: red; font-weight: bold; }
+.text { text-align: left; padding-left: 20pt; padding-right: 10pt }
+.hilite { color: blue; font-weight: bold; }
+.notes { background: #fafafa; border: 1px solid #cecece; padding: 1em }
+.title,.section {
+ font-size: 24pt;
+ text-align: center;
+ font-weight: bold;
+ background: url("img/lines.png");
+ border: 2px solid #0000AA;
+ color: #EEEEFF;
+}
+.section {
+ width: 80%;
+ text-align: left;
+}
+.sectiontitle, .subsection {
+ border-width: 1px;
+ border-style: solid none solid none;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: bold; font-size: 18pt;
+ background-color: #000088;
+ color: #eeeeff;
+ padding: 0.1em 0.1em 0.1em .1em;
+ width: 100%;
+ margin-bottom: 0.3em;
+}
+.subsection {
+ width: 75%;
+ text-align: left;
+ font-size: 12pt;
+}
+.subsubsection {
+ margin: 1.0em 0.5em 0.5em 0.5em;
+ font-weight: bold; font-style: oblique;
+ border-bottom: 1px solid #999999; font-size: 12pt;
+ width: 75%;
+}
+.code {
+ border: solid 1px gray; background: #eeeeee;
+ margin: 0 1em 0 1em;
+ padding: 0 1em 0 1em;
+ display: table;
+}
+.footer {
+ text-align: center;
+ font-size: 85%;
+ padding: 0 0 0 0
+}
Added: hlvm/trunk/docs/img/lines.png
URL: http://llvm.org/viewvc/llvm-project/hlvm/trunk/docs/img/lines.png?rev=38008&view=auto
==============================================================================
Binary file - no diff available.
Propchange: hlvm/trunk/docs/img/lines.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Removed: hlvm/trunk/docs/index.shtml
URL: http://llvm.org/viewvc/llvm-project/hlvm/trunk/docs/index.shtml?rev=38007&view=auto
==============================================================================
--- hlvm/trunk/docs/index.shtml (original)
+++ hlvm/trunk/docs/index.shtml (removed)
@@ -1,6 +0,0 @@
-<h1>HLVM Documentation Index</h1>
-<p>This page contains links to the various HLVM documents.</p>
-<ol>
- <li>Currently there are none. </li>
- <li>This is a place holder </li>
-</ol>
More information about the llvm-commits
mailing list