-.. _makefile_guide:
-
===================
LLVM Makefile Guide
===================
<writing-an-llvm-pass-makefile>`_ has an example of why you might want to do
this.
-Bitcode Modules
-^^^^^^^^^^^^^^^
-
-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 types
-of libraries by defining the `MODULE_NAME`_ variable. For example:
-
-.. code-block:: makefile
-
- LIBRARYNAME = mylib
- BYTECODE_LIBRARY = 1
- MODULE_NAME = mymod
-
-will build a module named ``mymod.bc`` from the sources in the directory. This
-module will be an aggregation of all the bitcode modules derived from the
-sources. The example will also build a bitcode archive containing a bitcode
-module for each compiled source file. The difference is subtle, but important
-depending on how the module or library is to be linked.
-
Loadable Modules
^^^^^^^^^^^^^^^^
This target should be implemented by the ``Makefile`` in the project's ``test``
directory. It is invoked by the ``check`` target elsewhere. Each project is
free to define the actions of ``check-local`` as appropriate for that
-project. The LLVM project itself uses dejagnu to run a suite of feature and
-regression tests. Other projects may choose to use dejagnu or any other testing
-mechanism.
+project. The LLVM project itself uses the :doc:`Lit <CommandGuide/lit>` testing
+tool to run a suite of feature and regression tests. Other projects may choose
+to use :program:`lit` or any other testing mechanism.
``clean``
---------
files. These sources will be built before any other target processing to
ensure they are present.
-``BYTECODE_LIBRARY``
- If set to any value, causes a bitcode library (.bc) to be built.
-
``CONFIG_FILES``
Specifies a set of configuration files to be installed.
setting this variable without also setting ``SHARED_LIBRARY`` will have no
effect.
-.. _MODULE_NAME:
-
-``MODULE_NAME``
- Specifies the name of a bitcode module to be created. A bitcode module can
- be specified in conjunction with other kinds of library builds or by
- itself. It constructs from the sources a single linked bitcode file.
-
``NO_INSTALL``
Specifies that the build products of the directory should not be installed
but should be built even if the ``install`` target is given. This is handy
``CFLAGS``
Additional flags to be passed to the 'C' compiler.
+``CPPFLAGS``
+ Additional flags passed to the C/C++ preprocessor.
+
``CXX``
Specifies the path to the C++ compiler.
``LLVMAS`` (defaulted)
Specifies the path to the ``llvm-as`` tool.
-``LLVMCC``
- Specifies the path to the LLVM capable compiler.
-
-``LLVMCXX``
- Specifies the path to the LLVM C++ capable compiler.
-
``LLVMGCC`` (defaulted)
Specifies the path to the LLVM version of the GCC 'C' Compiler.
Archive
AR.Flags
BaseNameSources
- BCCompile.C
- BCCompile.CXX
BCLinkLib
C.Flags
Compile.C
LLVMUsedLibs
LocalTargets
Module
- ObjectsBC
ObjectsLO
ObjectsO
ObjMakefiles