<header>
<h1 class="header">GMQCC</h1>
<p class="header">An Improved Quake C Compiler</p>
-
<ul>
<li class="download"><a href="https://github.com/graphitemaster/gmqcc/zipball/master">Download ZIP</a></li>
<li class="download"><a href="https://github.com/graphitemaster/gmqcc/tarball/master">Download TAR</a></li>
will just print the defaults and quit. No compilation is performed.
</p>
<pre>$ gmqcc -show-defaults</pre>
-
<h2>Compiling for an alternitive standard</h2>
To compile with a different dialect of the QuakeC programming language the <i>-std</i>
flag can be instructed to select one of the following options:
<td>vanila QuakeC standard</td>
</tr>
</table>
-
<h2>Common compiler options</h2>
<table border="0">
<tr>
<td>Options</td>
<td>What it does</td>
</tr>
-
<tr>
<td>-l<path></td>
<td>Adds <path> to the directories searched by the preprocessor for include file resolution.</td>
</tr>
-
<tr>
<td>-o <file></td>
<td>Generates the named executable (progs.src) file (when not specified default is progs.src).</td>
<td>-O<level></td>
<td>Specfies the optimization level: highest being 3, lowest being 0 (no optimization).</td>
</tr>
-
<tr>
<td>-E</td>
<td>Instructs the compiler to only preprocess the input, writing the preprocessed output to stdout</td>
</tr>
-
<tr>
<td>-Wall</td>
<td>Enables all compiled warnings for the selcted standard</td>
</tr>
-
<tr>
<td>-Werror</td>
<td>Instruct the compiler to treat all warnings as errors</td>
</tr>
-
<tr>
<td>-std=<standard></td>
<td>Selects the standard dialect</td>
</tr>
</table>
-
<h2>Predefined Macros</h2>
<table border="0">
<tr>
<td>Macro</td>
<td>What it represents</td>
</tr>
-
<tr>
<td>__STD_GMQCC__</td>
<td>Specifies the current selected standard is gmqcc.</td>
<td>Specifies the current selected stanadards major version number.</td>
</tr>
</table>
-
<h2>Unsupported compatability options</h2>
<p>
GMQCC strives hard for compatability with standard dialects, but not all
features of those standards might be implemented. The unsupported features
are presented below:
-
<table border="0">
<tr>
<td>Feature</td>
<td>Standard</td>
</tr>
-
<tr>
<td>Inline Assembly</td>
<td>FTEQCC</td>
</tr>
</table>
</p>
-
<h1>Less common compiler options</h1>
<h2>Code generation options</h2>
<table border="0">
<td>Option</td>
<td>What it does</td>
</tr>
-
<tr>
<td>-foverlap-locals</td>
<td>Reduces codesize by overlapping locals where possible</td>
</tr>
-
<tr>
<td>-fdarkplaces-string-table-bug</td>
<td>Works around a bug in older Darkplaces engine builds where the stringtable size is computed wrong</td>
</tr>
-
<tr>
<td>-fadjust-vector-fields</td>
<td>corrects assignment of vector field pointers (STORE_V instead of STORE_FLD)</td>
</tr>
-
<tr>
<td>-fftepp</td>
<td>Enables FTEQ preprocessor</td>
</tr>
-
<tr>
<td>-frelaxted-switch</td>
<td>Relaxes switch statement semantics</td>
</tr>
-
<tr>
<td>-fshort-logic</td>
<td>Enables short circut evaluation/logic</td>
</tr>
-
<tr>
<td>-fperl-logic</td>
<td>Enables perl evalutaion/logic</td>
<td>Option</td>
<td>What it does</td>
</tr>
-
<tr>
<td>-Wunused-uninitialized</td>
<td>Enables warnings about unused or uninitialized variables</td>
</tr>
-
<tr>
<td>-Wunknwon-control-sequence</td>
<td>Enables warnings about unknown control sequences</td>
</tr>
-
<tr>
<td>-Wextension</td>
<td>Enables warnings about the use of (an) extension(s)</td>
</tr>
-
<tr>
<td>-Wfield-redeclared</td>
<td>Enables warnings about redeclared fields</td>
</tr>
-
<tr>
<td>-Wmissing-return-values</td>
<td>Enables warnings about missing return values</td>
</tr>
-
<tr>
<td>-Wtoo-few-paramaters</td>
<td>Enables warnings about missing paramaters for function calls</td>
</tr>
-
<tr>
<td>-Wlocal-shadows</td>
<td>Enables warnings about locals shadowing paramaters or other locals</td>
</tr>
-
<tr>
<td>-Wlocal-constants</td>
<td>Enables warnings about constants specified as locals</td>
</tr>
-
<tr>
<td>-Wvoid-variables</td>
<td>Enables warnings about variables declared as type void</td>
</tr>
-
<tr>
<td>-Wimplicit-function-pointer</td>
<td>Enables warnings about implicitly declared function pointers</td>
</tr>
-
<tr>
<td>-Wvariadic-function</td>
<td>Enables warnings for use of varadics for non-builtin functions</td>
</tr>
-
<tr>
<td>-Wframe-macros</td>
<td>Enables warnings about duplicated frame macros</td>
</tr>
-
<tr>
<td>-Weffectless-statement</td>
<td>Enables warnings about effectiveless statements</td>
</tr>
-
<tr>
<td>-Wend-sys-field</td>
<td>Enables warnings of end_sys_fields being declared a field</td>
</tr>
-
<tr>
<td>-Wassign-function-types</td>
<td>Enables warnings for incompatible function pointer signatures used in assignment</td>
</tr>
-
<tr>
<td>-Wpreprocessor</td>
<td>Enables warnings about redefined macros</td>
</tr>
-
<tr>
<td>-Wmultifile-if</td>
<td>Enables warnings about multifile if statements</td>
<td>Option</td>
<td>What it does</td>
</tr>
-
<tr>
<td>-force-crc=<num></td>
<td>Forces a specific checsum into the header</td>
</tr>
-
<tr>
<td>-debug</td>
<td>Turns on compiler debug messages</td>
</tr>
-
<tr>
<td>-memchk</td>
<td>Turns on compiler memory leak checker</td>
</tr>
</table>
-
<h3>Support or Contact</h3>
<p>Having trouble with GMQCC? Join our IRC channel at #kf-engine on irc.freenode.net or contact <a href="mailto:cube2killfild@gmail.com">Us</a>
</section>