GitXplorerGitXplorer
p

mfm

public
14 stars
4 forks
0 issues

Commits

List of commits on branch master.
Unverified
4b379b7a1b97790f805c365b1e58b75b70d3d904

replace_ext: fix matching of "any" old ext

ppeff committed 11 years ago
Unverified
e4974b39979a1511cd6fb20c344ee8478c4b23f6

consistently order output of MFM::targets

ppeff committed 11 years ago
Unverified
6993114e2783f883ba7d4b0b470260a804373da9

rules/doc: add binman ruleset

ppeff committed 13 years ago
Unverified
7db9bf8dcbbc734aadd36ff023a7be58c54a78bb

rules: add manpage installation rules

ppeff committed 13 years ago
Unverified
d4e87a91329bf77b5a8a2722f3b005246e31e12b

rules/install: handle multiple hier functions

ppeff committed 13 years ago
Unverified
49d0075a288534de86b5bbdffa274b42c011e144

rules: add asciidoc man-building rules

ppeff committed 13 years ago

README

The README file for this repository.

mfm -- The MakeFile Maker

mfm is a program for automatically generating Makefiles. Its goals are:

  • to create portable Makefiles that will work with all POSIX-compliant versions of make

  • to minimize the effort required by the writer of the Makefile

  • to be easily extensible

mfm consists of a Perl script and a set of reusable rule templates, also written in Perl. For each item to be built, a software author specifies a rule template and its parameters; the mfm program uses this information to build a Makefile. The Makefile is distributed with the source code; an end-user of the package doesn't need to have any special software installed. The system can be extended by writing new rule templates.

mfm works in a top-down way. You specify the targets you want built, and it deduces how to build them either from target-specific rules, rule templates, implicit rules based on the target's extension, or default rules. The bundled rules can handle complex situations like automatic dependency generation for C header files, user build parameters, selecting platform-dependent code, and more.

See the entries in Documentation/ for more details, including an idea of what mfm's input looks like.

mfm is self-hosting. To install it:

  1. Clone the repository.

  2. Run ./bootstrap to build the Makefile.

  3. (Optional) Edit conf-* for any non-standard parameters.

  4. Run make install to install.

Send questions or comments to peff@peff.net.