m3makefiles

m3makefiles are in fact quake programs. quake is an interpreter for a small, but powerful programming language. It's an imperative language with variables, arrays, tables, conditionals, loops, and procedures. The full features of that language are available if required, but very few m3makefiles need this extra generality.

Described with m3build are the facilities (many of them programmed in quake) that m3build users should need. Most m3makefiles are simply sequences of calls to these predefined procedures.

Quake has one slightly quirky feature: when evaluated, undefined variables return their names as strings. So, module(foo) will call the predefined module procedure and pass it the value of the variable foo. If foo is undefined, the string "foo" will be passed. If foo is defined, something else is passed. It's better to write module("foo") and avoid confusion. Many of the SRC Modula-3 m3makefiles depend on this feature. It would be better if they didn't and we recommend that you avoid it.


[Modula-3 home page]

m3-request@src.dec.com
Last modified on Thu Jan  4 11:07:53 PST 1996 by heydon 
     modified on Thu Apr 21 16:43:34 PDT 1994 by kalsow 
     modified on Thu Jan  7 18:40:57 PST 1993 by muller 
Copyright (C) 1992, 1996, Digital Equipment Corporation. All rights reserved.
See the COPYRIGHT for a full description.