Blame mcpp-gcc.1

Packit Service 8bf002
.TH MCPP "1" "Mar 2008" "alternative CPP" "Commands for GCC"
Packit Service 8bf002
.SH NAME
Packit Service 8bf002
mcpp \- Matsui CPP, an alternative C preprocessor
Packit Service 8bf002
.SH SYNOPSIS
Packit Service 8bf002
mcpp [\fIoptions\fP] [\fI<infile>\fP [\fI<outfile>\fP]]
Packit Service 8bf002
.SH DESCRIPTION
Packit Service 8bf002
\fBmcpp\fR is a C/C++ preprocessor with the highest conformance which implements C90, C99 and C++98. 
Packit Service 8bf002
\fBmcpp\fR has plentiful diagnostics and many #pragmas. 
Packit Service 8bf002
It is useful to check portability of your program, and also useful to debug complicated macro.
Packit Service 8bf002
This is a man-page for \fBmcpp\fR of GCC-specific-build.
Packit Service 8bf002
.SH OPTIONS
Packit Service 8bf002
\fBmcpp\fR expects two file names as arguments, \fI<infile>\fR and
Packit Service 8bf002
\&\fI<outfile>\fR.  If not specified, \fI<infile>\fR defaults to standard input
Packit Service 8bf002
and \fI<outfile>\fR defaults to standard output.
Packit Service 8bf002
.PP
Packit Service 8bf002
It takes the following options.
Packit Service 8bf002
.PP
Packit Service 8bf002
Commonly used options:
Packit Service 3e011b
.IP "\fB-$, -fno-dollars-in-identifiers"
Packit Service 3e011b
Forbid '$' in identifiers.
Packit Service 8bf002
.IP \fB-@MODE
Packit Service 8bf002
Specify preprocessing mode. MODE should be one of these 4:
Packit Service 8bf002
.IP "    \fB-@std"
Packit Service 8bf002
Standard conforming mode. (default)
Packit Service 8bf002
.IP "    \fB-@poststd, -@post"
Packit Service 8bf002
special 'post-Standard' mode.
Packit Service 8bf002
.IP "    \fB-@kr"
Packit Service 8bf002
K&R 1st mode.
Packit Service 8bf002
.IP "    \fB-@oldprep, -@old"
Packit Service 8bf002
"old_preprocessor" mode (i.e. "Reiser model" cpp).
Packit Service 3e011b
.IP "    \fB-@compat"
Packit Service 3e011b
Standard 'compatible' mode.
Packit Service 8bf002
.IP \fB-b
Packit Service 8bf002
Output #line lines in C source style (default: GCC style).
Packit Service 8bf002
.IP \fB-C
Packit Service 8bf002
Output also comments.
Packit Service 8bf002
.IP "\fB-D <macro>[=<value>]"
Packit Service 8bf002
Define <macro> as <value> (default:1).
Packit Service 8bf002
.IP "\fB-D <macro(args)>[=<replace>]"
Packit Service 8bf002
Define <macro(args)> as <replace>.
Packit Service 3e011b
.IP "\fB-dM, -dD"
Packit Service 3e011b
Dump all current macro definitions to output stream.
Packit Service 8bf002
.IP "\fB-e <encoding>"
Packit Service 8bf002
Change the default multi-byte character encoding to one of:
Packit Service 8bf002
euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.
Packit Service 8bf002
.IP \fB-finput-charset=<encoding>
Packit Service 8bf002
Same as -e <encoding>.  (Do not insert spaces around '=').
Packit Service 3e011b
.IP \fB-f[no-]working-directory
Packit Service 3e011b
(Don't) emit #line marks with current working directory.
Packit Service 3e011b
.IP \fB-fstack-protector[-all]
Packit Service 3e011b
Add defines for GCC stack protector.
Packit Service 3e011b
.IP \fB-f[no-]exceptions
Packit Service 3e011b
(Don't) add define for exception support.
Packit Service 3e011b
.IP "\fB-fpic, -fPIC, -fpie, -fPIE"
Packit Service 3e011b
Add defines for PIC/PIE code.
Packit Service 8bf002
.IP "\fB-I <directory>"
Packit Service 8bf002
Add <directory> to the #include search list.
Packit Service 8bf002
.IP \fB-I-
Packit Service 8bf002
Unset system or site specific include directories.
Packit Service 8bf002
.IP "\fB-include <file>"
Packit Service 8bf002
Include the <file> prior to the main input file.
Packit Service 3e011b
.IP "\fB-isystem <dir>"
Packit Service 3e011b
Look for include files in DIR, if not found in -I's.
Packit Service 3e011b
.IP "\fB-iquote <dir>"
Packit Service 3e011b
Look for #include "file" (with quotes) in DIR.
Packit Service 8bf002
.IP \fB-j
Packit Service 8bf002
Do not output the source line in diagnostics.
Packit Service 3e011b
.IP \fB-k
Packit Service 3e011b
Keep white spaces of input lines as they are.
Packit Service 8bf002
.IP "\fB-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file"
Packit Service 8bf002
Output source file dependency line for makefile.
Packit Service 3e011b
.IP \fB-m32
Packit Service 3e011b
Change target CPU from x86_64, ppc64 to i386, ppc, respectively.
Packit Service 3e011b
.IP \fB-m64
Packit Service 3e011b
Change target CPU from i386, ppc to x86_64, ppc64, respectively.
Packit Service 3e011b
.IP \fB-[no-]mmx
Packit Service 3e011b
(Un-)define __MMX__.
Packit Service 8bf002
.IP \fB-N
Packit Service 8bf002
Don't predefine any non-standard macros.
Packit Service 8bf002
.IP \fB-nostdinc
Packit Service 8bf002
Unset system or site specific include directories.
Packit Service 8bf002
.IP "\fB-o <file>"
Packit Service 8bf002
Output to <file>.
Packit Service 8bf002
.IP \fB-P
Packit Service 8bf002
Don't output #line lines.
Packit Service 8bf002
.IP \fB-Q
Packit Service 8bf002
Output diagnostics to "mcpp.err" (default:stderr).
Packit Service 8bf002
.IP "\fB-U <macro>"
Packit Service 8bf002
Undefine <macro>.
Packit Service 8bf002
.IP \fB-undef
Packit Service 8bf002
Same as -N.
Packit Service 8bf002
.IP \fB-v
Packit Service 8bf002
Show version of \fBmcpp\fR.
Packit Service 8bf002
.IP "\fB-W <level>"
Packit Service 8bf002
Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).
Packit Service 8bf002
.IP \fB-w
Packit Service 8bf002
Same as -W0.
Packit Service 8bf002
.IP \fB-z
Packit Service 8bf002
Don't output the included file, only defining macros.
Packit Service 8bf002
.PP
Packit Service 8bf002
Options available with -@std (default) or -@poststd options:
Packit Service 8bf002
.IP \fB-+
Packit Service 8bf002
Process C++ source.
Packit Service 8bf002
.IP \fB-2
Packit Service 8bf002
Enable digraphs.
Packit Service 8bf002
.IP \fB-digraphs
Packit Service 8bf002
Enable digraphs.
Packit Service 8bf002
.IP "\fB-h <n>"
Packit Service 8bf002
Re-define the pre-defined macro __STDC_HOSTED__ as <n>.
Packit Service 8bf002
.IP \fB-lang-c89
Packit Service 8bf002
Same as -S1.
Packit Service 3e011b
.IP "\fB-lang-c99, -lang-c9x"
Packit Service 3e011b
Same as -S199901L.
Packit Service 8bf002
.IP \fB-lang-c++
Packit Service 8bf002
Same as -+.
Packit Service 3e011b
.IP \fB-lang-asm
Packit Service 3e011b
Same as -a.
Packit Service 8bf002
.IP "\fB-pedantic, -pedantic-errors"
Packit Service 8bf002
Same as -W7.
Packit Service 8bf002
.IP "\fB-S <n>"
Packit Service 8bf002
Redefine __STDC__ to <n>, undefine old style macros.
Packit Service 8bf002
.IP \fB-std=<STANDARD>
Packit Service 8bf002
Specify the standard to which the code should conform.
Packit Service 8bf002
<STANDARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.
Packit Service 8bf002
.br
Packit Service 8bf002
iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).
Packit Service 8bf002
.IP "\fB-V <n>"
Packit Service 8bf002
Redefine __STDC_VERSION__ or __cplusplus to <n>.
Packit Service 8bf002
.br
Packit Service 8bf002
C with -V199901L specifies C99 mode.
Packit Service 8bf002
.br
Packit Service 8bf002
C++ with -V199901L specifies C99 compatible mode.
Packit Service 8bf002
.IP "\fB-x c++"
Packit Service 8bf002
Same as -+.
Packit Service 8bf002
.PP
Packit Service 8bf002
Options available with only -@std (default) option:
Packit Service 8bf002
.IP \fB-@compat
Packit Service 8bf002
Expand recursive macro more than Standard.
Packit Service 8bf002
.IP \fB-3
Packit Service 8bf002
Enable trigraphs.
Packit Service 8bf002
.IP \fB-trigraphs
Packit Service 8bf002
Enable trigraphs.
Packit Service 8bf002
.IP \fB-K
Packit Service 8bf002
Embed macro annotations into comments.
Packit Service 8bf002
.PP
Packit Service 8bf002
Options available with -@std (default), -@kr or -@oldprep options:
Packit Service 8bf002
.IP \fB-lang-asm
Packit Service 8bf002
Same as -x assembler-with-cpp.
Packit Service 8bf002
.IP "\fB-x assembler-with-cpp"
Packit Service 8bf002
Process "assembler" source.
Packit Service 8bf002
.PP
Packit Service 8bf002
Option available on Mac OS X / Apple-GCC:
Packit Service 8bf002
.IP "\fB-arch <arch>"
Packit Service 8bf002
Change the target to <arch> (one of i386, x86_64, ppc and ppc64).
Packit Service 8bf002
.PP
Packit Service 8bf002
Option available on CygWIN:
Packit Service 8bf002
.IP \fB-mno-cygwin
Packit Service 8bf002
Change include directory and predefined macros for msvcrt.dll rather than cygwin1.dll.
Packit Service 8bf002
.SH PRAGMA
Packit Service 8bf002
\fBmcpp\fR has the following #pragma directives.
Packit Service 8bf002
.IP "#pragma once"
Packit Service 8bf002
Read the header file only once even if multiply #included.
Packit Service 8bf002
.IP "#pragma __setlocale( ""encoding"")"
Packit Service 8bf002
Specify the multibyte character encoding to "encoding".
Packit Service 8bf002
See -e option for the encodings.
Packit Service 8bf002
.IP "#pragma MCPP put_defines"
Packit Service 8bf002
Putout all the macro definitions currently valid.
Packit Service 8bf002
.IP "#pragma MCPP debug <args>"
Packit Service 8bf002
Start to putout debugging informations.
Packit Service 8bf002
    <args> should be one or more of:
Packit Service 8bf002
    token expand macro_call path if expression memory getc
Packit Service 8bf002
.IP "#pragma MCPP end_debug <args>"
Packit Service 8bf002
Stop to putout debugging informations.
Packit Service 8bf002
    <args> are the same with 'debug'.
Packit Service 8bf002
    No argument specifies all arguments.
Packit Service 8bf002
.IP "#pragma MCPP push_macro( ""MACRO"")"
Packit Service 8bf002
Save the macro definition to the stack.
Packit Service 8bf002
.IP "#pragma MCPP pop_macro( ""MACRO"")"
Packit Service 8bf002
Retrieve the macro definition from the stack.
Packit Service 8bf002
.IP "#pragma MCPP preprocess"
Packit Service 8bf002
"Pre-preprocess" the following header files for \fBmcpp\fR.
Packit Service 8bf002
.IP "#pragma MCPP warning    any message"
Packit Service 8bf002
Putout warning "any message".
Packit Service 8bf002
.SH "VERSION"
Packit Service 8bf002
MCPP V.2.7 (2008/03) for GCC
Packit Service 8bf002
.SH "SEE ALSO"
Packit Service 8bf002
The full documentation for \fBmcpp\fR are maintained as html files.
Packit Service 8bf002
Please see mcpp-manual.html.