Alcatel-Lucent nmake Product Builder Alcatel-Lucent

Compiled Makefiles

Feature Description

Makefiles are compiled to a binary format. When available and up to date, nmake loads the compiled Makefile making it unnecessary to reread and re-parse the Makefile, which decreases the amount of time required to perform a build. Makefiles are recompiled automatically when they are out of date.

Impact

Performance

  • Makefiles need not be re-interpreted each time they are built.

Productivity

  • Can include documentation/comments in Makefiles with no impact in Makefile reading performance.
  • Improvement especially noticeable when entire project is already up to date.

Consequence of Not Having the Feature

  • Less efficient incremental builds.

Examples

In the following example the Makefile compiles 52 C files. Everything has been built and is up to date. The compiled Makefile is named as the basename of the Makefile with the suffix .mo.

$ ls -l Makefile.mo 
-rw-r--r--   1 richb    richb       8593 Jan  8 17:36 Makefile.mo

When nmake uses Makefile.mo the average time to check that this Makefile is up to date is about 0.98 seconds.

$ time nmake

real    0m0.98s
user    0m0.33s
sys     0m0.40s

Without Makefile.mo the Makefile must be re-parsed and interpreted causing the process to take longer. The non-compiled case takes 42% longer.

$ rm Makefile.mo
$ time nmake    

real    0m1.39s
user    0m0.71s
sys     0m0.39s

Example using standard make tool

The standard make tool does not use compiled makefiles.

Last Update: Wednesday,20-Dec-06 13:22:01 CST