|
Boost Testing : |
From: Stephen Carson (StephenC_at_[hidden])
Date: 2005-01-09 22:52:43
> Rene Rivera wrote:
>[cut]
>> Error : Unknown option 'arn'; expected one of '1, 2, or 3'
>> while parsing option '-w'
>[cut]
>
>Interesting.. The warning control options are different :-\
>
>First thing to try is doing a replace of "-warn" with "-w" to see if
>that helps. Other than that trying to match the Windows options would
be
>best. Here's what those are, from "mwcc --help"..
I'm going to try "-warnings", looks like that will work for both PC & Mac.
Though the PC seems to have a few warning options that are not on
the Mac, the ones that both do support use the same keywords. I'm not
sure what to do about the ones that are on the PC but not on the Mac in
the .jam script, (should i just remove the lines that contain them for
now?).
Here are the Mac flags from "mwcc --help":
-------------------------------------------------------------------------------
Warning Options
-------------------------------------------------------------------------------
-w+keyword[,...] # global; cased; for this tool;
# compatibility warning options
1 # same as -w on
2 # same as -w all
3 # same as -w on,nounused
#
-w[arnings] keyword[,...] # global; for this tool;
# warning options
[no]options | # passed to all tools;
[no]cmdline # command-line parser warnings
off # passed to all tools;
# turn off all warnings
on # passed to all tools;
# turn on most warnings, except 'largeargs'
# and 'structclass'
all|full # turn on all warnings, require prototypes
[no]err[or] | # passed to all tools;
[no]iserr[or] # warnings are errors
[no]pragmas | # illegal #pragmas
[no]illpragmas #
[no]empty[decl] # empty declarations
[no]possible | # possible unwanted effects
[no]unwanted #
[no]unused # unused arguments and variables
[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'
display|dump # display list of active warnings
--------
Alright, no more warning problems, now it is:
Error : Unknown option 'runtime'
Errors caused tool to abort.
It is not obvious to me how to proceed. The complete dump of "mwcc --
help" from the Mac is attached.
-Stephen
_______________________________________________________
_________
Sent via the WebMail system at Mail.Dirxion.com
Metrowerks C/C++ Compiler for Mac OS X/PPC.
Copyright (c)1993-2003 Metrowerks, Inc.
All rights reserved.
Version 3.2.4 build 418
Runtime Built: Jul 29 2004 13:46:40
Usage: mwcc [-options]... [files]... [-_at_response]...
Please enter 'mwcc -help' for information about options.
-------------------------------------------------------------------------------
General Command-Line Options
All the options are passed to the linker unless otherwise noted.
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
gcc # use GCC-like message style
IDE # use CW IDE-like message style; default
parseable # use context-free machine-parseable message
# style
#
-[no]stderr # global; use separate stderr and stdout streams;
# if using -nostderr, stderr goes to stdout
-[no]stdopt # global; use standard command-line options
# (specified by the environment variable
# $MWCOptions); added before all options on the
# command line
-------------------------------------------------------------------------------
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; 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/#pragma directives
-enc[oding] keyword # specify default source encoding; compiler will
# automatically detect UTF-8 header or
# UCS-2/UCS-4 encodings regardless of setting
ascii # ASCII; default
autodetect|multibyte| # scan file for multibyte_encoding (slower)
mb #
system # use system locale
UTF[8|-8] # UTF-8
SJIS|Shift-JIS| # Shift-JIS
ShiftJIS #
EUC[JP|-JP] # EUC-JP
ISO[2022JP|-2022-JP] # ISO-2022-JP
#
-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
-F+ | -F path # global; cased; passed to linker;
# append access path to current framework
# access paths list
-framework framework # global; cased; passed to linker;
# append framework to the frameworks list
-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; default
-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, or output filename
# for linker if called
-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
-ppopt keyword[,...] # specify options affecting the preprocessed
# output
[no]break # emit file/line breaks; default
[no]line # emit #line directives, else comments;
# default
[no]full[path] # emit full path of file, else base filename;
# default
[no]pragma # keep #pragma directives, else strip them;
# default
[no]comment # keep comments, else strip them
[no]space # keep whitespace, else strip it; default
#
-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'
on|relaxed # same as '-stdkeywords on', '-enum min', and
# '-strict on'
strict # same as '-stdkeywords on', '-enum int', and
# '-strict on'
#
-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|ansic # treat source as C always
cplus[plus] | c++ # treat source as C++ always
ec++ # generate warnings for use of C++ features
# outside Embedded C++ subset (implies
# '-dialect cplus')
objc # compile for Objective C
c99 # compile with C99 extensions
#
-enum keyword # specify default size for enumeration types
min # use the minimal-sized type
int # use int-sized enums; default
#
-for_scoping on|off # control legacy (non-standard) for-scoping
# behavior; when enabled, variables declared in
# 'for' loops are visible to the enclosing
# scope; when disabled, such variables are
# scoped to the loop only; default is off
-fl[ag] pragma # specify an 'on/off' compiler #pragma;
# '-flag foo' is the same as '#pragma foo on',
# '-flag no-foo' is the same as '#pragma foo
# off'; use '-pragma' option for other cases
-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
# defined before and after the caller
level=n # cased; inline functions up to 'n' levels
# deep; level 0 is the same as '-inline on';
# for 'n', range 0 - 8
[no]bottomup # inline bottom-up, starting from leaves of
# the call graph rather than the top-level
# function; default
#
-inst[mgr | ance_manager] # enable C++ template instance manager; must be
keyword[,...] # enabled or disabled for all files in a
# target; remove the database along with a
# 'make clean'
on # enable manager
off # disable manager; default
file=<path> # specify database used for instance manager
# tracking (default 'cwinst.db')
#
-iso_templates on|off # enable ISO C++ template parser; 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
#
-notonce # allow header files to be processed more than
# once; default
-once # prevent header files from being processed more
# than once
-pragma ... # specify a #pragma for the compiler such as
# "#pragma ..."; quote the parameter if you
# provide an argument (i.e., '-pragma "myopt
# reset"')
-r[equireprotos] # require prototypes
-relax_pointers # relax pointer type-checking rules in C
-RTTI on|off # select run-time typing information (for C++);
# default is on
-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
dontreuse # don't reuse strings; equivalent strings are
# distinct objects
[no]pool[strings] # pool strings into a single data object
[no]readonly | [no]ro # make all string constants read-only; default
#
-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 off
-fhandle-exceptions # enable true C++ exceptions; default
-fno-handle-exceptions # disable true C++ exceptions
-funsigned-char # unspecified chars as unsigned
-fno-strict-prototype # don't require prototypes; default
-fobjc # allow Objective C extensions
-------------------------------------------------------------------------------
Mach-O PowerPC CodeGen Options
-------------------------------------------------------------------------------
-align keyword[,...] # specify structure/array alignment options
power[pc] # PowerPC alignment. (Defaults to power_mw.
# Default controlled by #pragma
# alignment_metrowerks on|off|reset)
mac68k # Macintosh 680x0 alignment
mac68k4byte # Mac 680x0 4-byte alignment
natural|ppc-natural # PowerPC natural alignment
power_mw|ppc-mw # Metrowerks PowerPC alignment; default
power_gcc|ppc-gcc # GCC PowerPC alignment
array[members] # align members of arrays
#
-common on|off # common variables; default is off
-dynamic # dynamic addressing mode
-fp_contract on|off # generate fused multiply-add instructions;
# default is on
-pic # generate position independent code
-proc[essor] | # specify target processor; currently used only
-scheduling | -target # for scheduling
keyword #
generic # generic PowerPC; default
601 # PPC 601
603 # PPC 603
603e # PPC 603e
604 # PPC 604
604e # PPC 604e
750 # PPC 750
7400 # PPC 7400 (AltiVec)
7450 # PPC 7450 (AltiVec)
altivec # Altivec
#
-schedule | # turn on scheduling; default
-fschedule-insns #
-profile keyword # specify profiling method
on|gprof # gprof-style profiling
cw|mw|metrowerks # CodeWarrior-style profiling
off # no profiling; default
#
-rostr | -readonlystrings # make string constants read-only; default
-compilerpoolsstrings # compiler pools string constants on a per object
# file basis
-boolisint # treat bool type as 4 bytes instead of 1 byte
-[no]volatileasm # treat inlined assembly as volatile
-vector keyword[,...] # specify Altivec options
on # turn on support for vector types / codegen
off # turn off vectorization; default
#
-[no]altivec_move_block # use altivec instructions for moving blocks when
# possible
-[no]relax_ieee # allow relaxed ieee floating point; default
-strict_ieee # require strict ieee floating point
-[no-]gen-fsel # generate FSEL (floating-point select)
# instruction
-[no-]ordered-fp-compares # assume no unordered values for compares
-function-align | # specify function alignment
-funcalign keyword #
4 # align by 4
8 # align by 8
16 # align by 16
32 # align by 32
#
-static # static addressing mode
-faltivec # turn on support for vector types / codegen
-fno-altivec # turn off support for vector types / codegen;
# default
-fpeephole # turn on peephole optmizer; default
-fno-peephole # turn off peephole optimizer
-fcommon # allow common variable definitions
-fno-common # dont allow common variable definitions; default
-fpic # generate position independent code
-fno-pic # dont generate position independent code
-fwritable-strings # string constants are writable
-------------------------------------------------------------------------------
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 l0'
1 # same as '-opt l1'
2 # same as '-opt l2, peephole'
3 # same as '-opt l3, peephole'
4 # same as '-opt l4, peephole, schedule'
p # same as '-opt speed'
s # same as '-opt space'
#
-opt keyword[,...] # specify optimization options
off|none # suppress all optimizations
on # same as '-opt l2, peephole'
all|full # same as '-opt l4, speed, peephole, schedule'
[no]space | [no]size # 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 1
[no]cse | # compatibility;
[no]commonsubs # common subexpression elimination
[no]deadcode # compatibility;
# removal of dead code
[no]deadstore # compatibility;
# removal of dead assignments
[no]lifetimes # compatibility;
# computation of variable lifetimes
[no]loop[invariants] # compatibility;
# removal of loop invariants
[no]prop[agation] # compatibility;
# propagation of constant and copy
# assignments
[no]strength # compatibility;
# strength reduction; reducing
# multiplication by an index variable into
# addition
[no]peep[hole] # peephole optimization
[no]color # compatibility;
# register coloring
[no]schedule # schedule instructions (see '-proc')
display|dump # display list of active optimizations
#
-------------------------------------------------------------------------------
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
#
-------------------------------------------------------------------------------
Warning Options
-------------------------------------------------------------------------------
-w+keyword[,...] # global; cased; for this tool;
# compatibility warning options
1 # same as -w on
2 # same as -w all
3 # same as -w on,nounused
#
-w[arnings] keyword[,...] # global; for this tool;
# warning options
[no]options | # passed to all tools;
[no]cmdline # command-line parser warnings
off # passed to all tools;
# turn off all warnings
on # passed to all tools;
# turn on most warnings, except 'largeargs'
# and 'structclass'
all|full # turn on all warnings, require prototypes
[no]err[or] | # passed to all tools;
[no]iserr[or] # warnings are errors
[no]pragmas | # illegal #pragmas
[no]illpragmas #
[no]empty[decl] # empty declarations
[no]possible | # possible unwanted effects
[no]unwanted #
[no]unused # unused arguments and variables
[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'
display|dump # display list of active warnings
#
-Wmost # turn on pragmas, emptydecl, possible,
# hidevirtual
-Wall # same as -w all
-Werror # same as -w iserror
-Wunused # same as -w unusedarg,unusedvar
-Wno-unused # turns off -w unusedarg,unusedvar