浏览代码

initial commit

ceriel 35 年之前
父节点
当前提交
b5d27d7f6d
共有 6 个文件被更改,包括 996 次插入0 次删除
  1. 5 0
      fast_misc/man/.distr
  2. 157 0
      fast_misc/man/afcc.1
  3. 214 0
      fast_misc/man/afm2.1.src
  4. 160 0
      fast_misc/man/fcc.1
  5. 230 0
      fast_misc/man/fm2.1.src
  6. 230 0
      fast_misc/man/fpc.1

+ 5 - 0
fast_misc/man/.distr

@@ -0,0 +1,5 @@
+afcc.1
+afm2.1.src
+fcc.1
+fm2.1.src
+fpc.1

+ 157 - 0
fast_misc/man/afcc.1

@@ -0,0 +1,157 @@
+.TH AFCC 1
+.SH NAME
+afcc \- fast ACK compatible C compiler
+.SH SYNOPSIS
+.B afcc
+[
+.B \-c
+]
+[
+.B \-O
+]
+[
+.B \-v
+]
+[
+.B \-vn
+]
+[ \fB\-D\fIname\fR ]
+[ \fB\-D\fIname\fB=\fIdef\fR ]
+[
+.BI \-I pathname
+]
+[
+.B \-w
+]
+[
+.B \-o 
+.I outfile
+]
+[
+.B \-R
+]
+[
+.BI \-U name
+]
+[
+.BI -M compiler
+]
+.I sourcefile ...
+.SH DESCRIPTION
+.LP
+.I Afcc
+is a fast
+.B C
+compiler. It translates 
+.B C
+programs
+into ack(1ACK)-compatible relocatable object modules, and does so in one pass.
+Then, if the \fB\-c\fP flag is not given,
+.I afcc
+offers the object modules to a link-editor,
+to create an executable binary.
+.LP
+.I Afcc
+accepts several types of filename arguments.  Files with 
+names ending in
+.B .c
+are taken to be 
+.B C
+source programs. 
+They are compiled, and the resulting object module is placed in the current
+directory.
+The object module is named after its source file, the suffix
+.B .o
+replacing 
+.BR .c
+in the name of the object.
+.LP
+Other arguments refer to loader options,
+object modules, or object libraries.
+Unless the
+.B \-c
+flag is given, these modules and libraries, together with the results of any
+specified compilations, are passed (in the order given) to the
+link-editor to produce
+an output file named
+.IR a.out .
+You can specify a name for the executable by using the
+.B \-o 
+option.
+.SH OPTIONS
+.LP
+The \fB\-l\fIlib\fR, \fB\-d\fP, \fB\-n\fP, \fB\-N\fP,
+\fB\-r\fP, \fB\-s\fP, \fB\-S\fP, \fB\-i\fP, and \fB\-u\fP options are
+passed to the link-editor program.
+The \fB\-u\fP option takes an extra argument.
+.IP \fB\-c\fP
+.br
+Suppress the loading phase of the compilation, and force an object module to
+be produced, even if only one program is compiled.
+A single object module can be named explicitly using the
+.B \-o
+option.
+.IP \fB\-D\fIname\fR\fB=\fIdef\fR
+Define a symbol
+.I name
+to the 
+preprocessor, as if by "#define".
+.IP \fB\-D\fIname\fR
+.br
+same as \fB\-D\fIname\fB=1\fR.
+.IP \fB\-I\fIpathname\fR
+.br
+Add
+.I pathname
+to the list of directories in which to search for
+.B #include
+files with filenames not beginning with slash.
+The compiler first searches for
+.B #include
+files in the directory containing
+.I sourcefile,
+then in directories in
+.B \-I
+options, then in the ACK include directory,
+and finally, in
+.I /usr/include.
+.IP "\fB\-o \fIoutput\fR"
+Name the final output file
+.I output.
+.IP \fB\-O\fP
+.br
+Use a version of the compiler that is just a bit slower, but produces
+better code.
+.IP \fB\-U\fIname\fR
+.br
+Remove any initial definition of
+.I name.
+.IP \fB\-v\fP
+.br
+Verbose. Print the commands as they are executed.
+.IP \fB\-vn\fP
+.br
+Verbose, no execute. Only print the commands, do not execute them.
+.IP \fB\-w\fP
+suppress warning messages.
+.IP \fB\-R\fP
+.br
+test for more compatibility with Kernighan & Ritchie C [1].
+.IP \fB\-M\fIcompiler\fR
+.br
+use \fIcompiler\fR as C-2 compiler instead of the default.
+.LP
+Object modules produced by ack(1ACK) and
+.I afcc
+can be freely mixed.
+.SH "SEE ALSO"
+.IP [1]
+B.W. Kernighan, D. Ritchie, "\fIThe C programming Language\fP", Prentice-Hall Inc., 1978
+.IP [2]
+E.H. Baalbergen, "\fIThe ACK CEM compiler\fP".
+.IP [3]
+ack(1ACK) manual page.
+.SH DIAGNOSTICS
+Diagnostics are intended to be self-explanatory.
+.SH REMARKS
+You need the 4th ACK distribution to be able to use this program.

+ 214 - 0
fast_misc/man/afm2.1.src

@@ -0,0 +1,214 @@
+.TH FM2 1
+.SH NAME
+afm2 \- fast ACK compatible Modula-2 compiler
+.SH SYNOPSIS
+.B afm2
+[
+.B \-c
+]
+[
+.B \-O
+]
+[
+.B \-v
+]
+[
+.B \-vn
+]
+[ \fB\-D\fIname\fR ]
+[ \fB\-D\fIname\fB=\fIdef\fR ]
+[
+.BI \-I pathname
+]
+[
+.BI \-w classes
+]
+[
+.BI \-W classes
+]
+[
+.B \-L
+]
+[
+.B \-o 
+.I outfile
+]
+[
+.B \-R
+]
+[
+.B \-A
+]
+[
+.B \-3
+]
+[
+.B \-_
+]
+[
+.BI \-U name
+]
+[
+.BI -M compiler
+]
+.I sourcefile ...
+.SH DESCRIPTION
+.LP
+.I afm2
+is a fast
+.B Modula-2
+compiler. It translates 
+.B Modula-2
+programs
+into ack(1ACK)-compatible relocatable object modules, and does so in one pass.
+Then, if the \fB\-c\fP flag is not given,
+.I afm2
+offers the object modules to a link-editor,
+to create an executable binary.
+.LP
+.I Afm2
+accepts several types of filename arguments.  Files with 
+names ending in
+.B .mod
+are taken to be 
+.B Modula-2
+source programs. 
+They are compiled, and the resulting object module is placed in the current
+directory.
+The object module is named after its source file, the suffix
+.B .o
+replacing 
+.BR .mod
+in the name of the object.
+A file with suffix
+.B .mod
+is passed through the C preprocessor if it begins with a '#'.
+.PP
+Definition modules are not separately compiled. The compiler reads them when
+it needs them.
+Definition modules are expected to reside in files with names ending
+in
+.BR .def .
+The name of the file in which a definition module is stored must be the same as
+the module-name, apart from the extension.
+Also, in most Unix systems filenames are only 14 characters long.
+So, given an IMPORT declaration for a module called "LongModulName",
+the compiler will try to open a file called "LongModulN.def".
+The requirement does not hold for implementation or program modules,
+but is certainly recommended.
+.LP
+Other arguments refer to loader options,
+object modules, or object libraries.
+Unless the
+.B \-c
+flag is given, these modules and libraries, together with the results of any
+specified compilations, are passed (in the order given) to the
+link-editor to produce
+an output file named
+.IR a.out .
+You can specify a name for the executable by using the
+.B \-o 
+option.
+.SH OPTIONS
+.LP
+The \fB\-l\fIlib\fR, \fB\-d\fP, \fB\-n\fP, \fB\-N\fP,
+\fB\-r\fP, \fB\-s\fP, \fB\-S\fP, \fB\-i\fP, and \fB\-u\fP options are
+passed to the link-editor program.
+The \fB\-u\fP option takes an extra argument.
+.IP \fB\-c\fP
+.br
+Suppress the loading phase of the compilation, and force an object module to
+be produced, even if only one program is compiled.
+A single object module can be named explicitly using the
+.B \-o
+option.
+.IP \fB\-D\fIname\fR\fB=\fIdef\fR
+Define a symbol
+.I name
+to the 
+preprocessor, as if by "#define".
+.IP \fB\-D\fIname\fR
+.br
+same as \fB\-D\fIname\fB=1\fR.
+.IP \fB\-I\fIpathname\fR
+.br
+Add
+.I pathname
+to the list of directories in which to search for
+.B #include
+files with filenames not beginning with slash.
+The preprocessor first searches for
+.B #include
+files in the directory containing
+.I sourcefile,
+then in directories in
+.B \-I
+options, then in the ACK include directory,
+and finally, in
+.I /usr/include.
+This flag is also passed to the compiler. When the compiler needs a definition
+module, it is first searched for in the current directory, then in the
+directories given to it by the \fB\-I\fP flag, and then in a default directory,
+.I CHANGE_ME.
+.I afm2
+This default directory contains all definition modules of
+the runtime system.
+.IP "\fB\-o \fIoutput\fR"
+Name the final output file
+.I output.
+.IP \fB\-O\fP
+.br
+Use a version of the compiler that is just a bit slower, but produces
+better code.
+.IP \fB\-U\fIname\fR
+.br
+Remove any initial definition of
+.I name.
+.IP \fB\-v\fP
+.br
+Verbose. Print the commands as they are executed.
+.IP \fB\-vn\fP
+.br
+Verbose, no execute. Only print the commands, do not execute them.
+.IP \fB\-L\fR
+do not generate code to keep track of
+the current location in the source code.
+.IP \fB\-w\fR\fIclasses\fR
+suppress warning messages whose class is a member of \fIclasses\fR.
+Currently, there are three classes: \fBO\fR, indicating old-flashioned use,
+\fBW\fR, indicating "ordinary" warnings, and \fBR\fR, indicating
+restricted Modula-2.
+If no \fIclasses\fR are given, all warnings are suppressed.
+By default, warnings in class \fBO\fR and \fBW\fR are given.
+.IP \fB\-W\fR\fIclasses\fR
+allow for warning messages whose class is a member of \fIclasses\fR.
+.IP \fB\-R\fP
+.br
+disable all range-checks.
+.IP \fB\-A\fP
+.br
+enable extra array bound checks. Unfortunately, the back-end used for this
+compiler is a bit sloppy, so extra array bound checks are needed if you want
+detection of array bound errors.
+.IP \fB\-3\fP
+.br
+Only accept Modula-2 programs that strictly conform to the 3rd Edition of
+[1].
+.IP \fB\-_\fP
+.br
+allow for underscores within identifiers. Identifiers may not start or end
+with an underscore, even if this flag is given.
+.IP \fB\-M\fIcompiler\fR
+.br
+use \fIcompiler\fR as Modula-2 compiler instead of the default.
+.SH "SEE ALSO"
+.IP [1]
+N. Wirth, \fIProgramming in Modula-2\fP, 3rd edition, Springer Verlag.
+.IP [2]
+C.J.H. Jacobs, \fIThe ACK Modula-2 Compiler\fP.
+.IP [3]
+ack(1ACK) unix manual page.
+.SH DIAGNOSTICS
+Diagnostics are intended to be self-explanatory.
+.SH REMARKS
+You need the 4th ACK distribution to be able to use this program.

+ 160 - 0
fast_misc/man/fcc.1

@@ -0,0 +1,160 @@
+.TH FCC 1
+.SH NAME
+fcc \- fast CC-compatible C compiler
+.SH SYNOPSIS
+.B fcc
+[
+.B \-c
+]
+[
+.B \-O
+]
+[
+.B \-v
+]
+[
+.B \-vn
+]
+[ \fB\-D\fIname\fR ]
+[ \fB\-D\fIname\fB=\fIdef\fR ]
+[
+.BI \-I pathname
+]
+[
+.B \-w
+]
+[
+.B \-o 
+.I outfile
+]
+[
+.B \-R
+]
+[
+.BI \-U name
+]
+[
+.BI -M compiler
+]
+.I sourcefile ...
+.SH DESCRIPTION
+.LP
+.I Fcc
+is a fast
+.B C
+compiler. It translates 
+.B C
+programs
+into cc(1)-compatible relocatable object modules, and does so in one pass.
+Then, if the \fB\-c\fP flag is not given,
+.I fcc
+offers the object modules to a link-editor,
+to create an executable binary.
+.LP
+.I Fcc
+accepts several types of filename arguments.  Files with 
+names ending in
+.B .c
+are taken to be 
+.B C
+source programs. 
+They are compiled, and the resulting object module is placed in the current
+directory.
+The object module is named after its source file, the suffix
+.B .o
+replacing 
+.BR .c
+in the name of the object.
+.LP
+Other arguments refer to loader options,
+object modules, or object libraries.
+Unless the
+.B \-c
+flag is given, these modules and libraries, together with the results of any
+specified compilations, are passed (in the order given) to the
+link-editor to produce
+an output file named
+.IR a.out .
+You can specify a name for the executable by using the
+.B \-o 
+option.
+.LP
+If a single 
+.B C
+program is compiled and loaded all at once, the object module
+file is deleted.
+.SH OPTIONS
+.LP
+The \fB\-l\fIlib\fR, \fB\-d\fP, \fB\-n\fP, \fB\-N\fP,
+\fB\-r\fP, \fB\-s\fP, \fB\-S\fP, \fB\-i\fP, and \fB\-u\fP options are
+passed to the link-editor program.
+The \fB\-u\fP option takes an extra argument.
+.IP \fB\-c\fP
+.br
+Suppress the loading phase of the compilation, and force an object module to
+be produced, even if only one program is compiled.
+A single object module can be named explicitly using the
+.B \-o
+option.
+.IP \fB\-D\fIname\fR\fB=\fIdef\fR
+Define a symbol
+.I name
+to the 
+preprocessor, as if by "#define".
+.IP \fB\-D\fIname\fR
+.br
+same as \fB\-D\fIname\fB=1\fR.
+.IP \fB\-I\fIpathname\fR
+.br
+Add
+.I pathname
+to the list of directories in which to search for
+.B #include
+files with filenames not beginning with slash.
+The compiler first searches for
+.B #include
+files in the directory containing
+.I sourcefile,
+then in directories in
+.B \-I
+options, and finally, in
+.I /usr/include.
+.IP "\fB\-o \fIoutput\fR"
+Name the final output file
+.I output.
+.IP \fB\-O\fP
+.br
+Use a version of the compiler that is just a bit slower, but produces
+better code.
+.IP \fB\-U\fIname\fR
+.br
+Remove any initial definition of
+.I name.
+.IP \fB\-v\fP
+.br
+Verbose. Print the commands as they are executed.
+.IP \fB\-vn\fP
+.br
+Verbose, no execute. Only print the commands, do not execute them.
+.IP \fB\-w\fP
+suppress warning messages.
+.IP \fB\-R\fP
+.br
+test for more compatibility with Kernighan & Ritchie C [1].
+.IP \fB\-M\fIcompiler\fR
+.br
+use \fIcompiler\fR as C-2 compiler instead of the default.
+.LP
+Object modules produced by cc(1) and
+.I fcc
+can be freely mixed, as long as the link-editor is called through
+.I fcc.
+.SH "SEE ALSO"
+.IP [1]
+B.W. Kernighan, D. Ritchie, "\fIThe C programming Language\fP", Prentice-Hall Inc., 1978
+.IP [2]
+E.H. Baalbergen, "\fIThe ACK CEM compiler\fP".
+.IP [3]
+cc(1) unix manual page.
+.SH DIAGNOSTICS
+Diagnostics are intended to be self-explanatory.

+ 230 - 0
fast_misc/man/fm2.1.src

@@ -0,0 +1,230 @@
+.TH FM2 1
+.SH NAME
+fm2 \- fast CC compatible Modula-2 compiler
+.SH SYNOPSIS
+.B fm2
+[
+.B \-c
+]
+[
+.B \-O
+]
+[
+.B \-v
+]
+[
+.B \-vn
+]
+[ \fB\-D\fIname\fR ]
+[ \fB\-D\fIname\fB=\fIdef\fR ]
+[
+.BI \-I pathname
+]
+[
+.BI \-w classes
+]
+[
+.BI \-W classes
+]
+[
+.B \-L
+]
+[
+.B \-o 
+.I outfile
+]
+[
+.B \-R
+]
+[
+.B \-A
+]
+[
+.B \-3
+]
+[
+.B \-U
+]
+[
+.B \-e
+]
+[
+.BI \-U name
+]
+[
+.BI -M compiler
+]
+.I sourcefile ...
+.SH DESCRIPTION
+.LP
+.I fm2
+is a fast
+.B Modula-2
+compiler. It translates 
+.B Modula-2
+programs
+into cc(1)-compatible relocatable object modules, and does so in one pass.
+Then, if the \fB\-c\fP flag is not given,
+.I fm2
+offers the object modules to a link-editor,
+to create an executable binary.
+.LP
+.I Fm2
+accepts several types of filename arguments.  Files with 
+names ending in
+.B .mod
+are taken to be 
+.B Modula-2
+source programs. 
+They are compiled, and the resulting object module is placed in the current
+directory.
+The object module is named after its source file, the suffix
+.B .o
+replacing 
+.BR .mod
+in the name of the object.
+A file with suffix
+.B .mod
+is passed through the C preprocessor if it begins with a '#'.
+.PP
+Definition modules are not separately compiled. The compiler reads them when
+it needs them.
+Definition modules are expected to reside in files with names ending
+in
+.BR .def .
+The name of the file in which a definition module is stored must be the same as
+the module-name, apart from the extension.
+Also, in most Unix systems filenames are only 14 characters long.
+So, given an IMPORT declaration for a module called "LongModulName",
+the compiler will try to open a file called "LongModulN.def".
+The requirement does not hold for implementation or program modules,
+but is certainly recommended.
+.LP
+Other arguments refer to loader options,
+object modules, or object libraries.
+Unless the
+.B \-c
+flag is given, these modules and libraries, together with the results of any
+specified compilations, are passed (in the order given) to the
+link-editor to produce
+an output file named
+.IR a.out .
+You can specify a name for the executable by using the
+.B \-o 
+option.
+.LP
+If a single 
+.B Modula-2
+program is compiled and loaded all at once, the object module
+file is deleted.
+.SH OPTIONS
+.LP
+The \fB\-l\fIlib\fR, \fB\-d\fP, \fB\-n\fP, \fB\-N\fP,
+\fB\-r\fP, \fB\-s\fP, \fB\-S\fP, \fB\-i\fP, and \fB\-u\fP options are
+passed to the link-editor program.
+The \fB\-u\fP option takes an extra argument.
+.IP \fB\-c\fP
+.br
+Suppress the loading phase of the compilation, and force an object module to
+be produced, even if only one program is compiled.
+A single object module can be named explicitly using the
+.B \-o
+option.
+.IP \fB\-D\fIname\fR\fB=\fIdef\fR
+Define a symbol
+.I name
+to the 
+preprocessor, as if by "#define".
+.IP \fB\-D\fIname\fR
+.br
+same as \fB\-D\fIname\fB=1\fR.
+.IP \fB\-I\fIpathname\fR
+.br
+Add
+.I pathname
+to the list of directories in which to search for
+.B #include
+files with filenames not beginning with slash.
+The preprocessor first searches for
+.B #include
+files in the directory containing
+.I sourcefile,
+then in directories in
+.B \-I
+options, and finally, in
+.I /usr/include.
+This flag is also passed to the compiler. When the compiler needs a definition
+module, it is first searched for in the current directory, then in the
+directories given to it by the \fB\-I\fP flag, and then in a default directory,
+.I CHANGE_ME.
+.I fm2
+This default directory contains all definition modules of
+the runtime system.
+.IP "\fB\-o \fIoutput\fR"
+Name the final output file
+.I output.
+.IP \fB\-O\fP
+.br
+Use a version of the compiler that is just a bit slower, but produces
+better code.
+.IP \fB\-U\fIname\fR
+.br
+Remove any initial definition of
+.I name.
+.IP \fB\-v\fP
+.br
+Verbose. Print the commands as they are executed.
+.IP \fB\-vn\fP
+.br
+Verbose, no execute. Only print the commands, do not execute them.
+.IP \fB\-L\fR
+do not generate code to keep track of
+the current location in the source code.
+.IP \fB\-w\fR\fIclasses\fR
+suppress warning messages whose class is a member of \fIclasses\fR.
+Currently, there are three classes: \fBO\fR, indicating old-flashioned use,
+\fBW\fR, indicating "ordinary" warnings, and \fBR\fR, indicating
+restricted Modula-2.
+If no \fIclasses\fR are given, all warnings are suppressed.
+By default, warnings in class \fBO\fR and \fBW\fR are given.
+.IP \fB\-W\fR\fIclasses\fR
+allow for warning messages whose class is a member of \fIclasses\fR.
+.IP \fB\-R\fP
+.br
+disable all range-checks.
+.IP \fB\-A\fP
+.br
+enable extra array bound checks. Unfortunately, the back-end used for this
+compiler is a bit sloppy, so extra array bound checks are needed if you want
+detection of array bound errors.
+.IP \fB\-3\fP
+.br
+Only accept Modula-2 programs that strictly conform to the 3rd Edition of
+[1].
+.IP \fB\-U\fP
+.br
+allow for underscores within identifiers. Identifiers may not start or end
+with an underscore, even if this flag is given.
+.IP \fB\-e\fP
+.br
+allow for local extensions. Currently, the only local extensions are
+procedure constants.
+.IP \fB\-M\fIcompiler\fR
+.br
+use \fIcompiler\fR as Modula-2 compiler instead of the default.
+.PP
+The compiler does not do any version-control. Instead, a makefile
+generator,
+.IR m2mm ,
+is included.
+.SH "SEE ALSO"
+.IP [1]
+N. Wirth, \fIProgramming in Modula-2\fP, 3rd edition, Springer Verlag.
+.IP [2]
+C.J.H. Jacobs, \fIThe ACK Modula-2 Compiler\fP.
+.IP [3]
+cc(1) unix manual page.
+.IP [4]
+m2mm(1) manual page.
+.SH DIAGNOSTICS
+Diagnostics are intended to be self-explanatory.

+ 230 - 0
fast_misc/man/fpc.1

@@ -0,0 +1,230 @@
+.TH FM2 1
+.SH NAME
+fpc \- fast CC compatible Modula-2 compiler
+.SH SYNOPSIS
+.B fpc
+[
+.B \-c
+]
+[
+.B \-O
+]
+[
+.B \-v
+]
+[
+.B \-vn
+]
+[ \fB\-D\fIname\fR ]
+[ \fB\-D\fIname\fB=\fIdef\fR ]
+[
+.BI \-I pathname
+]
+[
+.B \-w
+]
+[
+.B \-L
+]
+[
+.B \-o 
+.I outfile
+]
+[
+.B \-R
+]
+[
+.B \-A
+]
+[
+.B \-a
+]
+[
+.B \-d
+]
+[
+.BI \-i num
+]
+[
+.B \-t
+]
+[
+.B \-C
+]
+[
+.B \-U+
+]
+[
+.B \-u+
+]
+[
+.B \-s+
+]
+[
+.B \-c+
+]
+[
+.BI \-U name
+]
+[
+.BI -M compiler
+]
+.I sourcefile ...
+.SH DESCRIPTION
+.LP
+.I fpc
+is a fast
+.B Pascal
+compiler. It translates 
+.B Pascal
+programs
+into cc(1)-compatible relocatable object modules, and does so in one pass.
+Then, if the \fB\-c\fP flag is not given,
+.I fpc
+offers the object modules to a link-editor,
+to create an executable binary.
+.LP
+.I Fpc
+accepts several types of filename arguments.  Files with 
+names ending in
+.B .p
+are taken to be 
+.B Pascal
+source programs. 
+They are compiled, and the resulting object module is placed in the current
+directory.
+The object module is named after its source file, the suffix
+.B .o
+replacing 
+.BR .p
+in the name of the object.
+A file with suffix
+.B .p
+is passed through the C preprocessor if it begins with a '#'.
+.LP
+Other arguments refer to loader options,
+object modules, or object libraries.
+Unless the
+.B \-c
+flag is given, these modules and libraries, together with the results of any
+specified compilations, are passed (in the order given) to the
+link-editor to produce
+an output file named
+.IR a.out .
+You can specify a name for the executable by using the
+.B \-o 
+option.
+.LP
+If a single 
+.B Pascal
+program is compiled and loaded all at once, the object module
+file is deleted.
+.SH OPTIONS
+.LP
+The \fB\-l\fIlib\fR, \fB\-d\fP, \fB\-n\fP, \fB\-N\fP,
+\fB\-r\fP, \fB\-s\fP, \fB\-S\fP, \fB\-i\fP, and \fB\-u\fP options are
+passed to the link-editor program.
+The \fB\-u\fP option takes an extra argument.
+.IP \fB\-c\fP
+.br
+Suppress the loading phase of the compilation, and force an object module to
+be produced, even if only one program is compiled.
+A single object module can be named explicitly using the
+.B \-o
+option.
+.IP \fB\-D\fIname\fR\fB=\fIdef\fR
+Define a symbol
+.I name
+to the 
+preprocessor, as if by "#define".
+.IP \fB\-D\fIname\fR
+.br
+same as \fB\-D\fIname\fB=1\fR.
+.IP \fB\-I\fIpathname\fR
+.br
+Add
+.I pathname
+to the list of directories in which to search for
+.B #include
+files with filenames not beginning with slash.
+The preprocessor first searches for
+.B #include
+files in the directory containing
+.I sourcefile,
+then in directories in
+.B \-I
+options, and finally, in
+.I /usr/include.
+.IP "\fB\-o \fIoutput\fR"
+Name the final output file
+.I output.
+.IP \fB\-O\fP
+.br
+Use a version of the compiler that is just a bit slower, but produces
+better code.
+.IP \fB\-U\fIname\fR
+.br
+Remove any initial definition of
+.I name.
+.IP \fB\-v\fP
+.br
+Verbose. Print the commands as they are executed.
+.IP \fB\-vn\fP
+.br
+Verbose, no execute. Only print the commands, do not execute them.
+.IP \fB\-L\fP
+.br
+do not generate code to keep track of
+the current location in the source code.
+.IP \fB\-w\fP
+.br
+suppress warning messages.
+.IP \fB\-d\fP
+.br
+allow for "long"s.
+.IP \fB\-i\fInum\fR
+.br
+set size for integer sets. By default, the set size is the word size.
+.IP \fB\-C\fP
+.br
+distinguish between lower case and upper case. Normally, upper case letters
+are considered equal to their lower case counterpart.
+.IP \fB\-t\fP
+.br
+trace calls and exits of procedures and functions.
+.IP \fB\-R\fP
+.br
+disable all range-checks.
+.IP \fB\-A\fP
+.br
+enable extra array bound checks. Unfortunately, the back-end used for this
+compiler is a bit sloppy, so extra array bound checks are needed if you want
+detection of array bound errors.
+.IP \fB\-a\fP
+.br
+disable assertions. Assertions are skipped instead of evaluated.
+.IP "\fB\-U+\fP, \fB\-u+\fP"
+.br
+allow for underscores within identifiers. Identifiers may not start
+with an underscore, even if this flag is given.
+.IP \fB-s+\fP
+.br
+allow only standard 
+.BR Pascal .
+This disables the \fB\-c+\fP, \fB\-d\fR, \fB\-u+\fR,
+\fB\-U+\fR and \fB\-C\fR options.
+Furthermore, assertions are not recognized at all.
+.IP \fB-c+\fP
+.br
+allow C-like strings. This option is mainly intended for usage with
+C-functions. This option will cause the type 'string' to be known.
+.IP \fB\-M\fIcompiler\fR
+.br
+use \fIcompiler\fR as Modula-2 compiler instead of the default.
+.SH "SEE ALSO"
+.IP [1]
+J.W. Stevenson, H. v. Eck, \fIAmsterdam Compiler Kit-Pascal reference manual\fP.
+.IP [2]
+cc(1) unix manual page.
+.SH DIAGNOSTICS
+Diagnostics are intended to be self-explanatory.