mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.
<h2>Section Example</h2> <div> <!-- h2+div is applied --> <p>Section preamble.</p> <h3>Subsection Example</h3> <p> <!-- h3+p is applied --> Subsection body </p> <!-- End of section body --> </div> FIXME: Care H5 better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130040 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -80,7 +80,7 @@
|
||||
<h2><a name="introduction">Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This document provides <em>usage</em> information about the LLVM makefile
|
||||
system. While loosely patterned after the BSD makefile system, LLVM has taken
|
||||
a departure from BSD in order to implement additional features needed by LLVM.
|
||||
@@ -102,17 +102,16 @@
|
||||
<h2><a name="general">General Concepts</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>The LLVM Makefile System is the component of LLVM that is responsible for
|
||||
building the software, testing it, generating distributions, checking those
|
||||
distributions, installing and uninstalling, etc. It consists of a several
|
||||
files throughout the source tree. These files and other general concepts are
|
||||
described in this section.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="projects">Projects</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>The LLVM Makefile System is quite generous. It not only builds its own
|
||||
software, but it can build yours too. Built into the system is knowledge of
|
||||
the <tt>llvm/projects</tt> directory. Any directory under <tt>projects</tt>
|
||||
@@ -130,7 +129,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="varvalues">Variable Values</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>To use the makefile system, you simply create a file named
|
||||
<tt>Makefile</tt> in your directory and declare values for certain variables.
|
||||
The variables and values that you select determine what the makefile system
|
||||
@@ -140,15 +139,14 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="including">Including Makefiles</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Setting variables alone is not enough. You must include into your Makefile
|
||||
additional files that provide the rules of the LLVM Makefile system. The
|
||||
various files involved are described in the sections that follow.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="Makefile">Makefile</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Each directory to participate in the build needs to have a file named
|
||||
<tt>Makefile</tt>. This is the file first read by <tt>make</tt>. It has three
|
||||
sections:</p>
|
||||
@@ -164,7 +162,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="Makefile.common">Makefile.common</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Every project must have a <tt>Makefile.common</tt> file at its top source
|
||||
directory. This file serves three purposes:</p>
|
||||
<ol>
|
||||
@@ -182,7 +180,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="Makefile.config">Makefile.config</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Every project must have a <tt>Makefile.config</tt> at the top of its
|
||||
<em>build</em> directory. This file is <b>generated</b> by the
|
||||
<tt>configure</tt> script from the pattern provided by the
|
||||
@@ -195,7 +193,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="Makefile.rules">Makefile.rules</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This file, located at <tt>$(LLVM_SRC_ROOT)/Makefile.rules</tt> is the heart
|
||||
of the LLVM Makefile System. It provides all the logic, dependencies, and
|
||||
rules for building the targets supported by the system. What it does largely
|
||||
@@ -203,9 +201,11 @@
|
||||
have been set <em>before</em> <tt>Makefile.rules</tt> is included.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="Comments">Comments</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>User Makefiles need not have comments in them unless the construction is
|
||||
unusual or it does not strictly follow the rules and patterns of the LLVM
|
||||
makefile system. Makefile comments are invoked with the pound (#) character.
|
||||
@@ -213,19 +213,20 @@
|
||||
by <tt>make</tt>.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<h2><a name="tutorial">Tutorial</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This section provides some examples of the different kinds of modules you
|
||||
can build with the LLVM makefile system. In general, each directory you
|
||||
provide will build a single object although that object may be composed of
|
||||
additionally compiled components.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="libraries">Libraries</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Only a few variable definitions are needed to build a regular library.
|
||||
Normally, the makefile system will build all the software into a single
|
||||
<tt>libname.o</tt> (pre-linked) object. This means the library is not
|
||||
@@ -254,11 +255,10 @@
|
||||
<tt>-load</tt> option. See the
|
||||
<a href="WritingAnLLVMPass.html#makefile">WritingAnLLVMPass.html</a> document
|
||||
for an example of why you might want to do this.
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="BCModules">Bitcode Modules</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>In some situations, it is desirable to build a single bitcode module from
|
||||
a variety of sources, instead of an archive, shared library, or bitcode
|
||||
library. Bitcode modules can be specified in addition to any of the other
|
||||
@@ -281,7 +281,7 @@
|
||||
<h4>
|
||||
<a name="LoadableModules">Loadable Modules</a>
|
||||
</h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>In some situations, you need to create a loadable module. Loadable modules
|
||||
can be loaded into programs like <tt>opt</tt> or <tt>llc</tt> to specify
|
||||
additional passes to run or targets to support. Loadable modules are also
|
||||
@@ -309,9 +309,11 @@
|
||||
library which is part of <tt>lib/System</tt> implementation.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="tools">Tools</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>For building executable programs (tools), you must provide the name of the
|
||||
tool and the names of the libraries you wish to link with the tool. For
|
||||
example:</p>
|
||||
@@ -342,11 +344,10 @@
|
||||
syntax is used. Note that in order to use the <tt>.a</tt> suffix, the library
|
||||
in question must have been built with the <tt>ARCHIVE_LIBRARY</tt> option set.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h4><a name="JIT">JIT Tools</a></h4>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Many tools will want to use the JIT features of LLVM. To do this, you
|
||||
simply specify that you want an execution 'engine', and the makefiles will
|
||||
automatically link in the appropriate JIT for the host or an interpreter
|
||||
@@ -365,11 +366,15 @@
|
||||
</tt></pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<h2><a name="targets">Targets Supported</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This section describes each of the targets that can be built using the LLVM
|
||||
Makefile system. Any target can be invoked from any directory but not all are
|
||||
applicable to a given directory (e.g. "check", "dist" and "install" will
|
||||
@@ -424,11 +429,10 @@
|
||||
<td>Remove built objects from installation directory.
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="all">all (default)</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>When you invoke <tt>make</tt> with no arguments, you are implicitly
|
||||
instructing it to seek the "all" target (goal). This target is used for
|
||||
building the software recursively and will do different things in different
|
||||
@@ -439,14 +443,14 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="all-local">all-local</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target is the same as <a href="#all">all</a> but it operates only on
|
||||
the current directory instead of recursively.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="check">check</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target can be invoked from anywhere within a project's directories
|
||||
but always invokes the <a href="#check-local"><tt>check-local</tt></a> target
|
||||
in the project's <tt>test</tt> directory, if it exists and has a
|
||||
@@ -463,7 +467,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="check-local">check-local</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target should be implemented by the <tt>Makefile</tt> in the project's
|
||||
<tt>test</tt> directory. It is invoked by the <tt>check</tt> target elsewhere.
|
||||
Each project is free to define the actions of <tt>check-local</tt> as
|
||||
@@ -474,7 +478,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="clean">clean</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target cleans the build directory, recursively removing all things
|
||||
that the Makefile builds. The cleaning rules have been made guarded so they
|
||||
shouldn't go awry (via <tt>rm -f $(UNSET_VARIABLE)/*</tt> which will attempt
|
||||
@@ -483,14 +487,14 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="clean-local">clean-local</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target does the same thing as <tt>clean</tt> but only for the current
|
||||
(local) directory.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="dist">dist</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target builds a distribution tarball. It first builds the entire
|
||||
project using the <tt>all</tt> target and then tars up the necessary files and
|
||||
compresses it. The generated tarball is sufficient for a casual source
|
||||
@@ -499,7 +503,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="dist-check">dist-check</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target does the same thing as the <tt>dist</tt> target but also checks
|
||||
the distribution tarball. The check is made by unpacking the tarball to a new
|
||||
directory, configuring it, building it, installing it, and then verifying that
|
||||
@@ -511,7 +515,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="dist-clean">dist-clean</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This is a special form of the <tt>clean</tt> clean target. It performs a
|
||||
normal <tt>clean</tt> but also removes things pertaining to building the
|
||||
distribution.</p>
|
||||
@@ -519,7 +523,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="install">install</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target finalizes shared objects and executables and copies all
|
||||
libraries, headers, executables and documentation to the directory given
|
||||
with the <tt>--prefix</tt> option to <tt>configure</tt>. When completed,
|
||||
@@ -537,7 +541,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="preconditions">preconditions</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This utility target checks to see if the <tt>Makefile</tt> in the object
|
||||
directory is older than the <tt>Makefile</tt> in the source directory and
|
||||
copies it if so. It also reruns the <tt>configure</tt> script if that needs to
|
||||
@@ -548,14 +552,14 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="printvars">printvars</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This utility target just causes the LLVM makefiles to print out some of
|
||||
the makefile variables so that you can double check how things are set. </p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="reconfigure">reconfigure</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This utility target will force a reconfigure of LLVM or your project. It
|
||||
simply runs <tt>$(PROJ_OBJ_ROOT)/config.status --recheck</tt> to rerun the
|
||||
configuration tests and rebuild the configured files. This isn't generally
|
||||
@@ -565,7 +569,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="spotless">spotless</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This utility target, only available when <tt>$(PROJ_OBJ_ROOT)</tt> is not
|
||||
the same as <tt>$(PROJ_SRC_ROOT)</tt>, will completely clean the
|
||||
<tt>$(PROJ_OBJ_ROOT)</tt> directory by removing its content entirely and
|
||||
@@ -577,7 +581,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="tags">tags</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target will generate a <tt>TAGS</tt> file in the top-level source
|
||||
directory. It is meant for use with emacs, XEmacs, or ViM. The TAGS file
|
||||
provides an index of symbol definitions so that the editor can jump you to the
|
||||
@@ -586,17 +590,19 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="uninstall">uninstall</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>This target is the opposite of the <tt>install</tt> target. It removes the
|
||||
header, library and executable files from the installation directories. Note
|
||||
that the directories themselves are not removed because it is not guaranteed
|
||||
that LLVM is the only thing installing there (e.g. --prefix=/usr).</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<h2><a name="variables">Variables</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Variables are used to tell the LLVM Makefile System what to do and to
|
||||
obtain information from it. Variables are also used internally by the LLVM
|
||||
Makefile System. Variable names that contain only the upper case alphabetic
|
||||
@@ -604,11 +610,10 @@
|
||||
variables are internal to the LLVM Makefile System and should not be relied
|
||||
upon nor modified. The sections below describe how to use the LLVM Makefile
|
||||
variables.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="setvars">Control Variables</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Variables listed in the table below should be set <em>before</em> the
|
||||
inclusion of <a href="#Makefile.common"><tt>$(LEVEL)/Makefile.common</tt></a>.
|
||||
These variables provide input to the LLVM make system that tell it what to do
|
||||
@@ -761,7 +766,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="overvars">Override Variables</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Override variables can be used to override the default
|
||||
values provided by the LLVM makefile system. These variables can be set in
|
||||
several ways:</p>
|
||||
@@ -867,7 +872,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="getvars">Readable Variables</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Variables listed in the table below can be used by the user's Makefile but
|
||||
should not be changed. Changing the value will generally cause the build to go
|
||||
wrong, so don't do it.</p>
|
||||
@@ -938,7 +943,7 @@
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<h3><a name="intvars">Internal Variables</a></h3>
|
||||
<div class="doc_text">
|
||||
<div>
|
||||
<p>Variables listed below are used by the LLVM Makefile System
|
||||
and considered internal. You should not use these variables under any
|
||||
circumstances.</p>
|
||||
@@ -1016,6 +1021,8 @@
|
||||
</tt></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<hr>
|
||||
<address>
|
||||
|
Reference in New Issue
Block a user