diff --git a/docs/MakefileGuide.html b/docs/MakefileGuide.html index 465a81cb402..8ba3f2a750f 100644 --- a/docs/MakefileGuide.html +++ b/docs/MakefileGuide.html @@ -28,7 +28,11 @@
  • Tutorial
      -
    1. Libraries
    2. +
    3. Libraries +
        +
      1. Bytecode Modules
      2. +
      +
    4. Tools
      1. JIT Tools
      2. @@ -41,6 +45,7 @@
      3. all
      4. all-local
      5. check
      6. +
      7. check-local
      8. clean
      9. clean-local
      10. dist
      11. @@ -195,7 +200,7 @@

        User Makefiles need not have comments in them unless the construction is - unusual or it doesn't strictly follow the rules and patterns of the LLVM + unusual or it does not strictly follow the rules and patterns of the LLVM makefile system. Makefile comments are invoked with the pound (#) character. The # character and any text following it, to the end of the line, are ignored by make.

        @@ -235,6 +240,27 @@ directory.

        + + +
        +

        In some situations, it is desireable to build a single bytecode module from + a variety of sources, instead of an archive, shared library, or bytecode + library. Bytecode modules can be specified in addition to any of the other + types of libraries by defining the MODULE_NAME + variable. For example:

        +
        
        +      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 bytecode modules + derived from the sources. The example will also build a bytecode archive + containing a bytecode module for each compiled source file. The difference is + subtle, but important depending on how the module or library is to be linked. +

        +
        +
        @@ -312,11 +338,13 @@

        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 + applicable to a given directory (e.g. "check", "dist" and "install" will always operate as if invoked from the top level directory).

        - + + + @@ -324,7 +352,12 @@ - + +
        Target NameImplied TargetsTarget Description
        Target NameImplied TargetsTarget Description
        all Compile the software recursively. Default target.
        Compile the software in the local directory only.
        checkChange to the llvm/test directory and run regression tests. + Change to the test directory in a project and run the + test suite there. +
        check-localRun a local test suite. Generally this is only defined in the + Makefile of the project's test directory.
        clean Remove built objects recursively. @@ -377,12 +410,41 @@ the current directory instead of recursively.

        + + +
        +

        This target can be invoked from anywhere within a project's directories + but always invokes the check-local target + in the project's test directory, if it exists and has a + Makefile. A warning is produced otherwise. If + TESTSUITE is defined on the make + command line, it will be passed down to the invocation of + make check-local in the test directory. The intended usage + for this is to assist in running specific suites of tests. If + TESTSUITE is not set, the implementation of check-local + should run all normal tests. It is up to the project to define what + different values for TESTSUTE will do. See the + TestingGuide for further details.

        +
        + + + +
        +

        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 regresson tests. Other projects may choose to use + dejagnu or any other testing mechanism.

        +
        +

        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 guarded so they shouldn't go awry.

        + that the Makefile builds. The cleaning rules have been made guarded so they + shouldn't go awry (via rm -f $(UNSET_VARIABLE)/* which will attempt + to erase the entire directory structure.

        @@ -453,8 +515,8 @@
        -

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

        +

        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.

        @@ -544,6 +606,14 @@ source files, all built sources, all Makefiles, and most documentation files will be automatically distributed. Use this variable to distribute any files that are not automatically distributed. +
        FAKE_SOURCES(optional) +
        +
        This variable is like SOURCES except that + the source files don't need to exist. The makefiles only use + FAKE_SOURCES to create the names of derived objects that should be + included in the directory's result. It is assumed that the project's + Makefile will define how to build the derived objects + necessary.
        KEEP_SYMBOLS
        If set to any value, specifies that when linking executables the makefiles should retain debug symbols in the executable. Normally, symbols @@ -619,7 +689,7 @@
      12. In the Makefile (only after the inclusion of $(LEVEL)/Makefile.common).
      13. -

        The overridable variables are given below:

        +

        The override variables are given below:

        AR (defaulted)
        Specifies the path to the ar tool.
        @@ -772,7 +842,8 @@
        The configuration specific directory into which executables are placed before they are installed.
        TopDistDir
        -
        The top most directory into which the distribution files are copied.
        +
        The top most directory into which the distribution files are copied. +
        Verb
        Use this as the first thing on your build script lines to enable or disable verbose mode. It expands to either an @ (quiet mode) or nothing @@ -786,83 +857,90 @@

        Variables listed below are used by the LLVM Makefile System and considered internal. You should not use these variables under any circumstances.

        -
        -
        Archive
        -
        AR.Flags
        -
        BaseNameSources
        -
        BCCompile.C
        -
        BCCompile.CXX
        -
        BCLinkLib
        -
        Burg
        -
        C.Flags
        -
        Compile.C
        -
        CompileCommonOpts
        -
        Compile.CXX
        -
        ConfigStatusScript
        -
        ConfigureScript
        -
        CPP.Flags
        -
        CPP.Flags
        -
        CXX.Flags
        -
        DependFiles
        -
        DestArchiveLib
        -
        DestBytecodeLib
        -
        DestRelinkedLib
        -
        DestSharedLib
        -
        DestTool
        -
        DistAlways
        -
        DistCheckDir
        -
        DistCheckTop
        -
        DistFiles
        -
        DistName
        -
        DistOther
        -
        DistSources
        -
        DistSubDirs
        -
        DistTarBZ2
        -
        DistTarGZip
        -
        DistZip
        -
        ExtraLibs
        -
        INCFiles
        -
        InternalTargets
        -
        LD.Flags
        -
        LexOutput
        -
        LibName.A
        -
        LibName.BC
        -
        LibName.LA
        -
        LibName.O
        -
        LibTool.Flags
        -
        Link
        -
        LLVMGCCLibDir
        -
        LLVMLibDir
        -
        LLVMLibsOptions
        -
        LLVMLibsPaths
        -
        LLVMToolDir
        -
        LLVMUsedLibs
        -
        LocalTargets
        -
        LTCompile.C
        -
        LTCompile.CXX
        -
        LTInstall
        -
        ObjectsBC
        -
        ObjectsLO
        -
        ObjectsO
        -
        ObjMakefiles
        -
        Parallel_Targets
        -
        PreConditions
        -
        ProjLibsOptions
        -
        ProjLibsPaths
        -
        ProjUsedLibs
        -
        Ranlib
        -
        RecursiveTargets
        -
        Relink
        -
        SrcMakefiles
        -
        Strip
        -
        StripWarnMsg
        -
        TableGen
        -
        TDFiles
        -
        ToolBuildPath
        -
        TopLevelTargets
        -
        UserTargets
        -
        YaccOutput
        -
        +

        + Archive + AR.Flags + BaseNameSources + BCCompile.C + BCCompile.CXX + BCLinkLib + Burg + C.Flags + Compile.C + CompileCommonOpts + Compile.CXX + ConfigStatusScript + ConfigureScript + CPP.Flags + CPP.Flags + CXX.Flags + DependFiles + DestArchiveLib + DestBytecodeLib + DestModule + DestRelinkedLib + DestSharedLib + DestTool + DistAlways + DistCheckDir + DistCheckTop + DistFiles + DistName + DistOther + DistSources + DistSubDirs + DistTarBZ2 + DistTarGZip + DistZip + ExtraLibs + FakeSources + INCFiles + InternalTargets + LD.Flags + LexFiles + LexOutput + LibName.A + LibName.BC + LibName.LA + LibName.O + LibTool.Flags + Link + LinkModule + LLVMGCCLibDir + LLVMGCCStdCXXLibDir + LLVMLibDir + LLVMLibsOptions + LLVMLibsPaths + LLVMToolDir + LLVMUsedLibs + LocalTargets + LTCompile.C + LTCompile.CXX + LTInstall + Module + ObjectsBC + ObjectsLO + ObjectsO + ObjMakefiles + ParallelTargets + PreConditions + ProjLibsOptions + ProjLibsPaths + ProjUsedLibs + Ranlib + RecursiveTargets + Relink + SrcMakefiles + Strip + StripWarnMsg + TableGen + TDFiles + ToolBuildPath + TopLevelTargets + UserTargets + YaccFiles + YaccOutput +