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:
A Doozer++ makefile that can do one of the following three build processes:
Build object files from an auto-detected list of sources coming from one or more user-specified directories
Recurse through a list of directories
A and B together
A makefile capable of compiling a single application from an arbitrary auto-detected list of sources from an arbitrary list of user-specified directories.
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 “real”
Makefilecan 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.