Skip to content

Instantly share code, notes, and snippets.

@mattbruv
Created December 8, 2020 01:37
Show Gist options
  • Save mattbruv/ab8ab3ab4f86ce94cadcd4b9348c0de9 to your computer and use it in GitHub Desktop.
Save mattbruv/ab8ab3ab4f86ce94cadcd4b9348c0de9 to your computer and use it in GitHub Desktop.
Metrowerks C/C++ Compiler for Embedded PowerPC. Version 2.4.7 build 92 Help
Metrowerks C/C++ Compiler for Embedded PowerPC.
Copyright (c) 2002, Metrowerks Corporation
All rights reserved.
Version 2.4.7 build 92
Runtime Built: Sep 16 2002 15:14:48
Please enter 'mwcceppc.exe -help' for information about options.
-------------------------------------------------------------------------------
General Command-Line Options
Please see '-help usage' for details about the meaning of this help.
-------------------------------------------------------------------------------
-help [keyword[,...]] # global; for this tool;
# display help
usage # show usage information
[no]spaces # insert blank lines between options in
# printout
all # show all standard options
[no]normal # show only standard options
[no]obsolete # show obsolete options
[no]ignored # show ignored options
[no]deprecated # show deprecated options
[no]meaningless # show options meaningless for this target
[no]compatible # show compatibility options
opt[ion]=name # show help for a given option; for 'name',
# maximum length 63 chars
search=keyword # show help for an option whose name or help
# contains 'keyword' (case-sensitive); for
# 'keyword', maximum length 63 chars
group=keyword # show help for groups whose names contain
# 'keyword' (case-sensitive); for 'keyword',
# maximum length 63 chars
tool=keyword[,...] # categorize groups of options by tool;
# default
all # show all options available in this tool
this # show options executed by this tool;
# default
other|skipped # show options passed to another tool
both # show options used in all tools
#
#
-version # global; for this tool;
# show version, configuration, and build date
-timing # global; collect timing statistics
-progress # global; show progress and version
-v[erbose] # global; verbose information; cumulative;
# implies -progress
-search # global; search access paths for source files
# specified on the command line; may specify
# object code and libraries as well; this
# option provides the IDE's 'access paths'
# functionality
-[no]wraplines # global; word wrap messages; default
-maxerrors max # specify maximum number of errors to print, zero
# means no maximum; default is 0
-maxwarnings max # specify maximum number of warnings to print,
# zero means no maximum; default is 0
-msgstyle keyword # global; set error/warning message style
mpw # use MPW message style
std # use standard message style; default
gcc # use GCC-like message style
IDE # use CW IDE-like message style
parseable # use context-free machine-parseable message
# style
#
-[no]stderr # global; use separate stderr and stdout streams;
# if using -nostderr, stderr goes to stdout
-------------------------------------------------------------------------------
Preprocessing, Precompiling, and Input File Control Options
-------------------------------------------------------------------------------
-c # global; compile only, do not link
-[no]codegen # global; generate object code
-[no]convertpaths # global; interpret #include filepaths specified
# for a foreign operating system; i.e.,
# <sys/stat.h> or <:sys:stat.h>; when enabled,
# '/' and ':' will separate directories and
# cannot be used in filenames (note: this is
# not a problem on Win32, since these
# characters are already disallowed in
# filenames; it is safe to leave the option
# 'on'); default
-cwd keyword # specify #include searching semantics: before
# searching any access paths, the path
# specified by this option will be searched
proj # begin search in current working directory;
# default
source # begin search in directory of source file
explicit # no implicit directory; only search '-I' or
# '-ir' paths
include # begin search in directory of referencing
# file
#
-D+ | -d[efine] # cased; define symbol 'name' to 'value' if
name[=value] # specified, else '1'
-[no]defaults # global; passed to linker;
# same as '-[no]stdinc'; default
-dis[assemble] # global; passed to all tools;
# disassemble files to stdout
-E # global; cased; preprocess source files
-EP # global; cased; preprocess and strip out #line
# directives
-ext extension # global; specify extension for generated object
# files; with a leading period ('.'), appends
# extension; without, replaces source file's
# extension; for 'extension', maximum length 14
# chars; default is none
-fatext # global; use 'eppc.o' as extension for generated
# object files
-gccinc[ludes] # global; adopt GCC #include semantics: add '-I'
# paths to system list if '-I-' is not
# specified, and search directory of
# referencing file first for #includes (same as
# '-cwd include')
-i- | -I- # global; change target for '-I' access paths to
# the system list; implies '-cwd explicit';
# while compiling, user paths then system paths
# are searched when using '#include "..."; only
# system paths are searched with '#include
# <...>'
-I+ | -i path # global; cased; append access path to current
# #include list(see '-gccincludes' and '-I-')
-include file # prefix text file or precompiled header onto all
# source files
-ir path # global; append a recursive access path to
# current #include list
-[no]keepobj[ects] # global; keep object files generated after
# invoking linker; if disabled, intermediate
# object files are temporary and deleted after
# link stage; objects are always kept when
# compiling
-M # global; cased; scan source files for
# dependencies and emit Makefile, do not
# generate object code
-MM # global; cased; like -M, but do not list system
# include files
-MD # global; cased; like -M, but write dependency
# map to a file and generate object code
-MMD # global; cased; like -MD, but do not list system
# include files
-make # global; scan source files for dependencies and
# emit Makefile, do not generate object code
-nofail # continue working after errors in earlier files
-nolink # global; compile only, do not link
-noprecompile # do not precompile any files based on the
# filename extension
-nosyspath # global; treat #include <...> like #include
# "..."; always search both user and system
# path lists
-o file|dir # specify output filename or directory for object
# file(s) or text output
-P # global; cased; preprocess and send output to
# file; do not generate code
-precompile file|dir # generate precompiled header from source; write
# header to 'file' if specified, or put header
# in 'dir'; if argument is "", write header to
# source-specified location; if neither is
# defined, header filename is derived from
# source filename; note: the driver can tell
# whether to precompile a file based on its
# extension; '-precompile file source' then is
# the same as '-c -o file source'
-preprocess # global; preprocess source files
-prefix file # prefix text file or precompiled header onto all
# source files
-S # global; cased; passed to all tools;
# disassemble and send output to file
-[no]stdinc # global; use standard system include paths
# (specified by the environment variable
# %MWCIncludes%); added after all system '-I'
# paths; default
-U+ | -u[ndefine] name # cased; undefine symbol 'name'
-------------------------------------------------------------------------------
Front-End C/C++ Language Options
-------------------------------------------------------------------------------
-ansi keyword # specify ANSI conformance options, overriding
# the given settings
off # same as '-stdkeywords off', '-enum min', and
# '-strict off'; default
on|relaxed # same as '-stdkeywords on', '-enum min', and
# '-strict on'
strict # same as '-stdkeywords on', '-enum int', and
# '-strict on'
#
-ARM on|off # check code for ARM (Annotated C++ Reference
# Manual) conformance; default is off
-bool on|off # enable C++ 'bool' type, 'true' and 'false'
# constants; default is on
-char keyword # set sign of 'char'
signed # chars are signed; default
unsigned # chars are unsigned
#
-Cpp_exceptions on|off # enable or disable C++ exceptions; default is on
-dialect | -lang keyword # specify source language
c # treat source as C always
c++ # treat source as C++ always
ec++ # generate warnings for use of C++ features
# outside Embedded C++ subset (implies
# 'dialect cplus')
#
-enum keyword # specify word size for enumeration types
min # use minimum sized enums; default
int # use int-sized enums
#
-inline keyword[,...] # specify inline options
on|smart # turn on inlining for 'inline' functions;
# default
none|off # turn off inlining
auto # auto-inline small functions (without
# 'inline' explicitly specified)
noauto # do not auto-inline; default
all # turn on aggressive inlining: same as
# '-inline on, auto'
deferred # defer inlining until end of compilation
# unit; this allows inlining of functions in
# both directions
level=n # cased; inline functions up to 'n' levels
# deep; level 0 is the same as '-inline on';
# for 'n', range 0 - 8
#
-iso_templates on|off # enable ISO C++ template parser (note: this
# requires a different MSL C++ library);
# default is off
-[no]mapcr # reverse mapping of '\n' and '\r' so that
# '\n'==13 and '\r'==10 (for Macintosh MPW
# compatability)
-msext keyword # [dis]allow Microsoft VC++ extensions
on # enable extensions: redefining macros,
# allowing XXX::yyy syntax when declaring
# method yyy of class XXX,
# allowing extra commas,
# ignoring casts to the same type,
# treating function types with equivalent
# parameter lists but different return types
# as equal,
# allowing pointer-to-integer conversions,
# and various syntactical differences
off # disable extensions; default on non-x86
# targets
#
-[no]multibyte[aware] # enable multi-byte character encodings for
# source text, comments, and strings
-once # prevent header files from being processed more
# than once
-pragma ... # define a pragma for the compiler such as
# "#pragma ..."
-r[equireprotos] # require prototypes
-relax_pointers # relax pointer type-checking rules
-RTTI on|off # select run-time typing information (for C++);
# default is on
-som # enable Apple's Direct-to-SOM implementation
-som_env_check # enables automatic SOM environment and new
# allocation checking; implies -som
-stdkeywords on|off # allow only standard keywords; default is off
-str[ings] keyword[,...] # specify string constant options
[no]reuse # reuse strings; equivalent strings are the
# same object; default
[no]pool # pool strings into a single data object
[no]readonly # make all string constants read-only
#
-strict on|off # specify ANSI strictness checking; default is
# off
-trigraphs on|off # enable recognition of trigraphs; default is off
-wchar_t on|off # enable wchar_t as a built-in C++ type; default
# is on
-------------------------------------------------------------------------------
Optimizer Options
Note that all options besides '-opt off|on|all|space|speed|level=...'
(marked with 'compatibility') are for backwards compatibility or special
needs only; other optimization options may be superceded by use of '-opt
level=xxx'.
-------------------------------------------------------------------------------
-O # same as '-O2'
-O+keyword[,...] # cased; control optimization; you may combine
# options as in '-O4,p'
0 # same as '-opt off'
1 # same as '-opt level=1'
2 # same as '-opt level=2, peephole'
3 # same as '-opt level=3, peephole'
4 # same as '-opt level=4, peephole, schedule'
p # same as '-opt speed'
s # same as '-opt space'
#
-opt keyword[,...] # specify optimization options
off|none # suppress all optimizations; default
on # same as -opt level=2, peephole
all|full # same as -opt speed,level=4, peephole,
# schedule
[no]space # optimize for space
[no]speed # optimize for speed
l[evel]=num # set optimization level:
# level 0: global register allocation only
# for temporary values
# level 1: adds dead code elimination
# level 2: adds common subexpression
# elimination and copy propagation
# level 3: adds loop transformations,
# strength reducation, and loop-invariant
# code motion
# level 4: adds repeated common
# subexpression elimination and
# loop-invariant code motion; for 'num',
# range 0 - 4; default is 0
[no]cse | # common subexpression elimination
[no]commonsubs #
[no]deadcode # removal of dead code
[no]deadstore # removal of dead assignments
[no]lifetimes # computation of variable lifetimes
[no]loop[invariants] # removal of loop invariants
[no]prop[agation] # propagation of constant and copy assignments
[no]strength # strength reduction; reducing multiplication
# by an index variable into addition
[no]dead # same as -opt [no]deadcode and [no]deadstore
[no]peep[hole] # peephole optimization
display|dump # display list of active optimizations
#
-------------------------------------------------------------------------------
Embedded PowerPC Options
-------------------------------------------------------------------------------
-align keyword[,...] # specify structure/array alignment options
power[pc] # PowerPC alignment; default
mac68k # Macintosh 680x0 alignment
mac68k4byte # Mac 680x0 4-byte alignment
array[members] # align members of arrays
#
-common on|off # move all uninitialized data into a common
# section; default is off
-fp_contract | -maf on| # generate fused multiply-add instructions;
off # default is off
-func_align keyword # specify function alignment
4 # 4 bytes; default
8 # 8 bytes
16 # 16 bytes
32 # 32 bytes
64 # 64 bytes
128 # 128 bytes
#
-pool[data] on|off # pool like data objects; default is on
-profile on|off # generate calls to at function entry and exit
# for use with a profiler; default is off
-rostr | -readonlystrings # make string constants read-only
-schedule on|off # schedule instructions; default is off
-use_lmw_stmw on|off # use multiple-word load/store instructions for
# function prologue/epilogue; note: this option
# only applies to big-endian machines; default
# is off
-vector keyword[,...] # specify Altivec vectorization options
on # turn on support for vector types / codegen
off # turn off vectorization; default
vrsave # use VRSAVE prologue/epilogue code, implies
# '-vector on'
novrsave # do not use VRSAVE prologue/epilogue code;
# default
#
-------------------------------------------------------------------------------
Debugging Control Options
-------------------------------------------------------------------------------
-g # global; cased; generate debugging information;
# same as '-sym full'
-sym keyword[,...] # global; specify debugging options
off # do not generate debugging information;
# default
on # turn on debugging information
full[path] # store full paths to source files
#
-------------------------------------------------------------------------------
C/C++ Warning Options
-------------------------------------------------------------------------------
-w[arn[ings]] # global; for this tool;
keyword[,...] # warning options
off # passed to all tools;
# turn off all warnings
on # passed to all tools;
# turn on most warnings
[no]cmdline # passed to all tools;
# command-line driver/parser warnings
[no]err[or] | # passed to all tools;
[no]iserr[or] # treat warnings as errors
all # turn on all warnings, require prototypes
[no]pragmas | # illegal #pragmas
[no]illpragmas #
[no]empty[decl] # empty declarations
[no]possible | # possible unwanted effects
[no]unwanted #
[no]unusedarg # unused arguments
[no]unusedvar # unused variables
[no]unused # same as -w [no]unusedarg,[no]unusedvar
[no]extracomma | # extra commas
[no]comma #
[no]pedantic | # pedantic error checking
[no]extended #
[no]hidevirtual | # hidden virtual functions
[no]hidden[virtual] #
[no]implicit[conv] # implicit arithmetic conversions
[no]notinlined # 'inline' functions not inlined
[no]largeargs # passing large arguments to unprototyped
# functions
[no]structclass # inconsistent use of 'class' and 'struct'
[no]padding # padding added between struct members
[no]notused # result of non-void-returning function not
# used
[no]unusedexpr # use of expressions as statements without
# side effects
[no]ptrintconv # conversions from pointers to integers, and
# vice versa
display|dump # display list of active warnings
#
-------------------------------------------------------------------------------
Embedded PPC Project Options
-------------------------------------------------------------------------------
-big # generate code and link for a big-endian target;
# default
-little # generate code and link for a little-endian
# target
-proc[essor] keyword # specify processor for scheduling and inline
# assembler
401 #
403 #
505 #
509 #
555 #
601 #
602 #
603 #
603e #
604 #
604e #
740 #
750 #
801 #
821 #
823 #
850 #
860 #
7400 #
7450 #
8240 #
8260 #
e500 #
gekko #
generic # ; default
#
-fp keyword # specify floating-point code generation options
none|off # no floating point
soft[ware] # software FP emulation; default
hard[ware] # hardware FP codegen
fmadd # same as '-fp hard' and '-fp_contract'
#
-sdatathreshold short # set maximum size in bytes of mutable data
# objects before they are moved from small data
# sections; default is 8
-sdata[threshold] short # set maximum size in bytes for mutable data
# objects before being spilled from small data
# section into data section; default is 8
-sdata2[threshold] short # set maximum size in bytes for constant data
# objects before being spilled from constant
# section into data section; default is 8
-model keyword # specify code model
absolute # absolute code and data addressing; default
other # other code model
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment