3 afm2 \- fast ACK compatible Modula-2 compiler
16 [ \fB\-D\fIname\fB=\fIdef\fR ]
60 compiler. It translates
63 into ack(1)-compatible relocatable object modules, and does so in one pass.
64 Then, if the \fB\-c\fP flag is not given,
66 offers the object modules to a link-editor,
67 to create an executable binary.
70 accepts several types of filename arguments. Files with
76 They are compiled, and the resulting object module is placed in the current
78 The object module is named after its source file, the suffix
82 in the name of the object.
85 is passed through the C preprocessor if it begins with a '#'.
87 Definition modules are not separately compiled. The compiler reads them when
89 Definition modules are expected to reside in files with names ending
92 The name of the file in which a definition module is stored must be the same as
93 the module-name, apart from the extension.
94 Also, in most Unix systems filenames are only 14 characters long.
95 So, given an IMPORT declaration for a module called "LongModulName",
96 the compiler will try to open a file called "LongModulN.def".
97 The requirement does not hold for implementation or program modules,
98 but is certainly recommended.
100 Other arguments refer to loader options,
101 object modules, or object libraries.
104 flag is given, these modules and libraries, together with the results of any
105 specified compilations, are passed (in the order given) to the
106 link-editor to produce
109 You can specify a name for the executable by using the
116 Suppress the loading phase of the compilation, and force an object module to
117 be produced, even if only one program is compiled.
118 A single object module can be named explicitly using the
121 .IP \fB\-D\fIname\fR\fB=\fIdef\fR
125 preprocessor, as if by "#define".
128 same as \fB\-D\fIname\fB=1\fR.
129 .IP \fB\-I\fIpathname\fR
133 to the list of directories in which to search for
135 files with filenames not beginning with slash.
136 The preprocessor first searches for
138 files in the directory containing
140 then in directories in
142 options, then in the ACK include directory,
145 This flag is also passed to the compiler. When the compiler needs a definition
146 module, it is first searched for in the current directory, then in the
147 directories given to it by the \fB\-I\fP flag, and then in a default directory,
148 .I $TARGET_HOME/lib/m2.
150 This default directory contains all definition modules of
152 .IP "\fB\-o \fIoutput\fR"
153 Name the final output file
157 Remove any initial definition of
161 Verbose. Print the commands as they are executed.
164 Verbose, no execute. Only print the commands, do not execute them.
166 do not generate code to keep track of
167 the current location in the source code.
170 Produce symbolic debugging information for grind(1).
171 .IP \fB\-w\fR\fIclasses\fR
172 suppress warning messages whose class is a member of \fIclasses\fR.
173 Currently, there are three classes: \fBO\fR, indicating old-flashioned use,
174 \fBW\fR, indicating "ordinary" warnings, and \fBR\fR, indicating
176 If no \fIclasses\fR are given, all warnings are suppressed.
177 By default, warnings in class \fBO\fR and \fBW\fR are given.
178 .IP \fB\-W\fR\fIclasses\fR
179 allow for warning messages whose class is a member of \fIclasses\fR.
182 disable all range-checks.
185 enable extra array bound checks. Unfortunately, the back-end used for this
186 compiler is a bit sloppy, so extra array bound checks are needed if you want
187 detection of array bound errors.
190 Only accept Modula-2 programs that strictly conform to the 3rd Edition of
194 allow for underscores within identifiers. Identifiers may not start or end
195 with an underscore, even if this flag is given.
196 .IP \fB\-M\fIcompiler\fR
198 use \fIcompiler\fR as Modula-2 compiler instead of the default.
201 N. Wirth, \fIProgramming in Modula-2\fP, 3rd edition, Springer Verlag.
203 C.J.H. Jacobs, \fIThe ACK Modula-2 Compiler\fP.
205 ack(1) unix manual page.
207 grind(1) unix manual page.
209 Diagnostics are intended to be self-explanatory.