[LLVMbugs] [Bug 731] NEW: Enhanced Makefile System

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Apr 7 23:00:56 PDT 2006


           Summary: Enhanced Makefile System
           Product: Build scripts
           Version: cvs
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Makefiles
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: rspencer at x10sys.com

Currently, all significant Makefile logic is located in the Makefile.rules file.
This organization is awkward as it does not isoloate or encapsulate separate
functionalities into separate files.  It also means that on every invocation (of
which there are many), make must process the entire file, most of which isn't
used on any given directory.  Consequently, a revision to the makefile system is

The envisioned system remains mostly compatible with the existing system, with a
few notable exceptions:

1. All Makefile* crud is located in a new "make" directory at the top level.
2. The Makefile.rules logic is split into separate Makefile.<task> files where
   <task> indicates the kind of thing to build (lib,archive,module,tool,etc.)
3. Makefiles in the individual build directories no longer simply include 
   Makefile.common but, rather, include one (or more) of the task makefiles 
   found in the 
4. Certain variables such as BUILD_ARCHIVE are no longer necessitated, as they
   are replaced by including the appropriate Makefile.<task>

In conjunction with this change, variable names should (once again) be
regularized using an understandable pattern, especially one that corresponds to
the use of the task names (e.g. all vars in Makefile.lib should be prefixed by
"lib" or "Lib" or "LIB"). Furthermore, the documentation will need to be updated. 

Such a makefile system will make future enhancements easier as LLVM grows as
well as making it easier to maintain without having to grok all 1700 lines of

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

More information about the llvm-bugs mailing list