diff --git a/docs/MakefileGuide.html b/docs/MakefileGuide.html index f7cf48faddc..430ffa437cd 100644 --- a/docs/MakefileGuide.html +++ b/docs/MakefileGuide.html @@ -33,6 +33,7 @@
  • dist-check
  • dist-clean
  • install
  • +
  • printvars
  • tags
  • uninstall
  • @@ -50,6 +51,8 @@

    Written by Reid Spencer

    +

    WARNING: This document is a work in progress!

    +
    Introduction
    @@ -174,40 +177,40 @@ - + - + - + - + - + - + - + - + - + - + - + - +
    Target NameImplied TargetsTarget Description
    all
    all Compile the software recursively. Default target.
    all-local
    all-local Compile the software in the local directory only.
    checkall
    checkall Test the software recursively.
    check-localall-local
    check-localall-local Test the software in the local directory only.
    clean
    clean Remove built objects recursively.
    clean-local
    clean-local Remove built objects from the local directory only.
    distall
    distall Prepare a source distribution tarball.
    dist-checkall check
    dist-checkall check Prepare a source distribution tarball and check that it builds.
    dist-cleanclean
    dist-cleanclean Clean source distribution tarball temporary files.
    installall
    installall Copy built objects to installation directory.
    tags
    tags Make C and C++ tags files for emacs and vi.
    uninstall
    uninstall Remove built objects from installation directory.
    @@ -218,75 +221,121 @@

    When you invoke make with no arguments, you are implicitly instructing it to seek the "all" target (goal). This target is used for - building the software and will do different things in different directories. - For example, in a lib directory, the "all" target will compile source - files and generate libraries. But, in a tools directory, it will link - libraries and generate executables.

    + building the software recursively and will do different things in different + directories. For example, in a lib directory, the "all" target will + compile source files and generate libraries. But, in a tools + directory, it will link libraries and generate executables.

    all-local
    -

    TBD

    +

    This target is the same as all but it operates only on + the current directory instead of recursively.

    check
    -

    TBD

    +

    This target is used to perform any functional, unit or sanity tests as the + software is being built. The check target depends on the + all target so the software is built in each + directory first and then the "check" is applied.

    +

    The definition of "check" is pretty general. It depends on the value of the + TESTS variable. This variable should be set to a + list of executables to run in order to test the software. If they all return + 0 then the check succeeds, otherwise not. The programs run can be anything but + they should either be local to the directory or in your path.

    +

    Not implemented yet!

    check-local
    -

    TBD

    +

    This target does the same thing as check but only for the current + (local) directory.

    +

    Not implemented yet!

    clean
    -

    TBD

    +

    This target cleans the build directory, recursively removing all things + that the Makefile builds. Despite once or twice attempting to remove /*, the + cleaning rules have been made gaurded so they shouldn't go awry.

    clean-local
    -

    TBD

    +

    This target does the same thing as clean but only for the current + (local) directory.

    dist
    -

    TBD

    +

    This target builds a distribution tarball. It first builds the entire + project using the all target and then tars up the necessary files and + compresses it. The generated tarball is sufficient for a casual source + distribution, but probably not for a release (see dist-check).

    +

    Not implemented yet!

    dist-check
    -

    TBD

    +

    This target does the same thing as the dist 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 + the installation results are correct (by comparing to the original build). + This target can take a long time to run but should be done before a release + goes out to make sure that the distributed tarball can actually be built into + a working release.

    +

    Not implemented yet!

    dist-clean
    -

    TBD

    +

    This is a special form of the clean clean target. It performs a + normal clean but also removes things pertaining to building the + distribution.

    +

    Not implemented yet!

    install
    -

    TBD

    +

    This target finalizes shared objects and executables and copies all + libraries, headers and executables to the directory given with the + --prefix option to configure. When completed, the prefix + directory will have everything needed to use LLVM.

    + + +
    printvars
    +
    +

    This utility target just causes LLVM to print out some of its variables so + that you can double check how things are set.

    +
    +
    tags
    -

    TBD

    +

    This target will generate a TAGS 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 + definition quickly.

    uninstall
    -

    TBD

    +

    This target is the opposite of the install 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 gauranteed + that LLVM is the only thing installing there (e.g. --prefix=/usr).

    @@ -332,9 +381,13 @@ LLVMLIBS Specify the set of libraries from the LLVM $(OBJDIR) that will be linked into the tool or library. + EXPERIMENTAL_DIRS + Specify a set of directories that should be built, but if they fail, + it should not cause the build to fail. Note that this should only be + used temporarily while code is being written. OPTIONAL_DIRS - Specify a set of directories that may be built, but if they don't - build, the recursive make doesn't stop. + Specify a set of directories that may be built, if they exist, but its + not an error for them not to exist. PARALLEL_DIRS Specify a set of directories to build recursively and in parallel if the -j option was used with make. @@ -411,6 +464,10 @@ BUILD_OBJ_DIR The project directory that will receive the object files. + + CONFIGURATION + The name of the configuration being built. + DESTDIR The top level directory into which files are installed.