mkmakefile.pl

This is a script that can generate Doozer++-aware makefiles. It can generate two types of makefiles: module component makefiles and application makefiles. (The component makefiles of modules in the Juggler Project were discussed in the section called “Individual Component Makefiles”.) The script also makes use of information provided through m4 macros defined in juggler/macros/vrj-helpers.m4. For that reason, it cannot be distributed with Doozer++. In other words, this script is tailored for use within the Juggler Project build system and cannot be used outside of that scope without modification.

Use of this script is rather complicated, but it is probably easier than writing the makefiles by hand. Due to the complex nature, it is recommended that interested readers refer to the usage information printed by executing the following:

mkmakefile.pl --help

The output is quite comprehensive, and any usage information included within this document would simply be verbatim copies of that output. However, the following explanation, taken from the comments at the top of the file provide a good description of what this script can do.

This script can generate three types of template Makefile.in's for use with a configure script:

  1. A Doozer++ makefile that can do one of the following three build processes:

    1. Build object files from an auto-detected list of sources coming from one or more user-specified directories

    2. Recurse through a list of directories

    3. A and B together

  2. A makefile capable of compiling a single application from an arbitrary auto-detected list of sources from an arbitrary list of user-specified directories.

  3. A makefile capable of compiling multiple applications from an arbitrary list of user-specified sources (compared against an auto-detected list for error checking) from an arbitrary list of user-specified directories.

Given the right information, a “realMakefile can be generated automatically for any of the above types as part of the creation process.

The makefiles generated can be used without modification, though in typical use, they will probably serve as more of a starting point requiring only minor modifications.