ms.gml

来自「开放源码的编译器open watcom 1.6.0版的源代码」· GML 代码 · 共 575 行

GML
575
字号
:cmt **********************************************************************
:cmt *       Copyright by WATCOM International Corporation, 1987, 1992.   *
:cmt *       All rights reserved. No part of this software may be         *
:cmt *       reproduced in any form or by any means - graphic, electronic,*
:cmt *       mechanical or otherwise, including, without limitation,      *
:cmt *       photocopying, recording, taping or information storage and   *
:cmt *       retrieval systems - except with the written permission of    *
:cmt *       WATCOM International Corporation.                            *
:cmt **********************************************************************
:cmt
:cmt    Modified    By              Reason
:cmt    --------    --              ------
:cmt    21-nov-95   M. Hildebrand   Initial implementation.
:cmt    14-feb-96   T. Schiller     Added /nowopts and /passwopts options.
:cmt    27-feb-96   Greg Bentz      Added /nowwarn option.
:cmt    29-feb-96   A. Kucharczyk   Added /lesswd option.
:cmt	16-may-96   Greg Bentz	    Chain F, G and O options.
:cmt	10-jul-96   Greg Bentz	    Added /noinvoke option.
:cmt
:cmt GML Macros used:
:cmt
:cmt    :chain. <char> <usage>                  options that start with <char>
:cmt                                            can be chained together e.g.,
:cmt                                            -oa -ox -ot => -oaxt
:cmt    :option. <option> <synonym> ...         define an option
:cmt    :target. <arch1> <arch2> ...            valid for these architectures
:cmt    :ntarget. <arch1> <arch2> ...           not valid for these architectures
:cmt    :immediate. <fn>                        <fn> is called when option parsed
:cmt    :enumerate. <field> [<value>]           option is one value in <name> enumeration
:cmt    :number. [<fn>] [<default>]             =<n> allowed; call <fn> to check
:cmt    :id. [<fn>]                             =<id> req'd; call <fn> to check
:cmt    :char.[<fn>]                            =<char> req'd; call <fn> to check
:cmt    :file.                                  =<file> req'd
:cmt    :path.                                  =<path> req'd
:cmt    :special. <fn>                          call <fn> to parse option
:cmt    :optional.                              value is optional
:cmt    :internal.                              option is undocumented
:cmt    :prefix.                                prefix of a :special. option
:cmt    :usage. <text>                          English usage text
:cmt    :jusage. <text>                         Japanese usage text
:cmt    :title.                                 English usage text
:cmt    :timestamp.                             kludge to record "when" an option
:cmt                                            is set so that dependencies
:cmt                                            between options can be simulated
:cmt    :noequal.                               usage message contains /op<value>,
                                                not /op=<value>

:cmt    where:
:cmt        <arch>:     i86, 386, axp, any, dbg, qnx

:title. Usage: cl [options] file [options]
:target. any
:title. Options:
:target. any
:title. \t    ( /option is also accepted )
:target. i86 386 axp ppc
:target. any

:noequal.

:chain. F file options
:chain. G code generation options
:chain. O optimization options
:chain. Z language options

:option. \1\0\x_
:target. any
:internal.
:usage. use 10.x options

:option. \C
:target. any
:usage. preserve comments

:option. \c
:target. any
:usage. compile only

:option. \D
:target. any
:special. parse_D <macro>[=<value>]
:usage. same as #define <macro>[=<value>] before compilation

:option. \E
:target. any
:usage. preprocess and insert #line directives to stdout

:option. \E\P
:target. any
:usage. preprocess without #line directives to stdout

:option. \F
:target. any
:special. parse_F <size>
:immediate. handle_F
:usage. set stack size

:option. \F\a
:target. any
:path.
:internal.
:usage. specify listing output file

:option. \F\A
:target. any
:internal.
:usage. generate assembly listing

:option. \F\A\c
:target. any
:internal.
:usage. generate assembly and machine code listing

:option. \F\A\c\s
:target. any
:internal.
:usage. generate assembly, source, and machine code listing

:option. \F\A\s
:target. any
:internal.
:usage. generate assembly and source listing

:option. \F\d
:target. any
:file.
:internal.
:usage. specify PDB filename

:option. \F\e
:target. any
:immediate. handle_Fe
:file.
:usage. set executable or DLL file name

:option. \F\I
:target. any
:special. parse_FI <file>
:usage. force <file> to be included

:option. \F\m
:target. any
:special. parse_Fm [<file>]
:usage. set map file name

:option. \F\o
:target. any
:file.
:usage. set object output file name

:option. \F\p
:target. any
:immediate. handle_Fp
:file.
:usage. set precompiled header data file name

:option. \F\R
:target. any
:immediate. handle_FR
:file.
:usage. generate browsing information

:option. \F\r
:target. any
:internal.
:usage. generate SBR file without local variables

:option. \G\3
:target. i86
:immediate. handle_arch_i86
:enumerate. arch_i86
:usage. 386 instructions

:option. \G\4
:target. i86
:immediate. handle_arch_i86
:enumerate. arch_i86
:usage. 386 instructions, optimize for 486

:option. \G\5
:target. i86
:immediate. handle_arch_i86
:enumerate. arch_i86
:usage. 386 instructions, optimize for Pentium

:option. \G\B
:target. i86
:immediate. handle_arch_i86
:enumerate. arch_i86
:usage. 386 instructions, optimize for 486

:option. \G\d
:target. any
:enumerate. calling_convention
:internal.
:usage. use __cdecl (stack-based) calling convention

:option. \G\e
:target. any
:enumerate. stack_probes
:immediate. handle_stack_probes
:usage. activate stack probes for all functions

:option. \G\f
:target. any
:usage. merge duplicate strings

:option. \G\F
:target. any
:usage. merge duplicate read-only strings

:option. \G\h
:target. any
:usage. call __penter at the start of each function

:option. \G\r
:target. any
:enumerate. calling_convention
:internal.
:usage. use __fastcall (register-based) calling convention

:option. \G\s
:target. any
:enumerate. stack_probes
:immediate. handle_stack_probes
:special. parse_Gs <distance>
:usage. set stack probe distance

:option. \G\X
:target. any
:immediate. handle_GX
:usage. destruct static objects during stack unwinding

:option. \G\y
:target. any
:usage. store each function in its own COMDAT

:option. \G\z
:target. any
:enumerate. calling_convention
:internal.
:usage. use __stdcall (register-based) calling convention

:option. \H
:target. any
:number.
:internal.
:usage. set maximum identifier length

:option. help HELP ?
:target. any
:usage. get help

:option. \I
:target. any
:special. parse_I <path>
:usage. add another include path

:option. \J
:target. any
:usage. change char default from signed to unsigned

:option. \l\i\n\k
:target. any
:special. parse_link
:usage. specify linker options

:option. \L\D
:target. any
:usage. create DLL

:option. \M\D
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use multithreaded DLL version of C library

:option. \M\D\d
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use multithreaded debug DLL version of C library

:option. \M\L
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use single-thread statically linked version of C library

:option. \M\L\d
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use single-thread debug static link version of C library

:option. \M\T
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use multithreaded static version of C library

:option. \M\T\d
:target. any
:immediate. handle_threads_linking
:enumerate. threads_linking
:usage. use multithreaded debug static version of C library

:option. \n\o\l\o\g\o
:target. any
:usage. operate quietly

:option. \O\1
:target. any
:immediate. handle_opt_level
:enumerate. opt_level
:usage. minimize size

:option. \O\2
:target. any
:immediate. handle_opt_level
:enumerate. opt_level
:usage. maximize speed

:option. \O\a
:target. any
:usage. assume no aliasing

:option. \O\b
:target. any
:immediate. handle_inlining_level
:number. check_inlining_level
:usage. control function inlining

:option. \O\d
:target. any
:immediate. handle_opt_level
:enumerate. opt_level
:usage. disable all optimizations

:option. \O\g
:target. any
:usage. enable global optimizations

:option. \O\i
:target. any
:usage. expand intrinsic functions inline

:option. \O\p
:target. any
:immediate. handle_Op
:timestamp.
:usage. generate consistent floating-point results

:option. \O\s
:target. any
:immediate. handle_opt_size_time
:enumerate. opt_size_time
:usage. favor code size over execution time in optimizations

:option. \O\t
:target. any
:immediate. handle_opt_size_time
:enumerate. opt_size_time
:usage. favor execution time over code size in optimizations

:option. \O\w
:target. any
:internal.
:usage. assume aliasing across function calls

:option. \O\x
:target. any
:immediate. handle_opt_level
:enumerate. opt_level
:usage. equivalent to /Ob1 /Og /Oi /Ot /Oy /Gs

:option. \O\y
:target. any
:immediate. handle_Oy
:usage. disable stack frames

:option. \P
:target. any
:usage. preprocess to a file

:option. \s\h\o\w\w\o\p\t\s
:target. any
:usage. show translated options

:option. \p\a\s\s\w\o\p\t\s
:target. any
:special. parse_passwopts :<options>
:usage. pass <options> directly to the Watcom tools

:option. \n\o\i\n\v\o\k\e
:target. any
:usage. don't invoke the Watcom tool

:option. \n\o\w\o\p\t\s
:target. any
:usage. disable default options

:option. \n\o\w\w\a\r\n
:target. any
:immediate. handle_nowwarn
:usage. disable warning messages for ignored options

:option. \l\e\s\s\w\d
:target. any
:internal.
:usage. change debug info from -d2 to -d1

:option. \T\c
:target. any
:special. parse_Tc <file>
:usage. force compilation of <file> as C

:option. \T\p
:target. any
:special. parse_Tp <file>
:usage. force compilation of <file> as C++

:option. \U
:target. any
:special. parse_U <macro>
:usage. undefine macro name

:option. \u
:target. any
:internal.
:usage. undefine all predefined macros

:option. \v\d\0
:target. any
:internal.
:usage. disable constructor/destructor displacements

:option. \v\d\1
:target. any
:internal.
:usage. enable vtordisp constructor/destructor displacements

:option. \v\m\b
:target. any
:internal.
:usage. use best case always pointer representation

:option. \v\m\g
:target. any
:internal.
:usage. use general purpose always pointer representation

:option. \v\m\m
:target. any
:internal.
:usage. general-purpose pointers to single- and multiple-inheritance classes

:option. \v\m\s
:target. any
:internal.
:usage. general-purpose pointers to single-inheritance classes

:option. \v\m\v
:target. any
:internal.
:usage. general-purpose pointers to any classes

:option. \V
:target. any
:special. parse_V
:internal.
:usage. embed string in object file

:option. \W
:target. any
:immediate. handle_warn_level
:enumerate. warn_level
:number. check_warn_level
:usage. set warning level number

:option. \w
:target. any
:immediate. handle_warn_level
:enumerate. warn_level
:usage. disable all warning messages

:option. \W\X
:target. any
:usage. treat all warnings as errors

:option. \X
:target. any
:internal.
:usage. ignore standard include paths

:option. \Y\c
:target. any
:enumerate. precomp_headers
:immediate. handle_precomp_headers
:file.
:optional.
:usage. create pre-compiled header file

:option. \Y\d
:target. any
:usage. full debug info from pre-compiled headers

:option. \Y\u
:target. any
:enumerate. precomp_headers
:immediate. handle_precomp_headers
:file.
:optional.
:usage. use pre-compiled header file

:option. \Y\X
:target. any
:enumerate. precomp_headers
:immediate. handle_precomp_headers
:file.
:optional.
:usage. use pre-compiled header file

:option. \Z\7
:target. any
:immediate. handle_debug_info
:enumerate. debug_info
:usage. generate Codeview debugging information

:option. \Z\a
:target. any
:enumerate. iso
:timestamp.
:usage. disable extensions (i.e., accept only ISO/ANSI C++)

:option. \Z\d
:target. any
:immediate. handle_debug_info
:enumerate. debug_info
:usage. line number debugging information

:option. \Z\e
:target. any
:enumerate. iso
:usage. enable extensions (e.g., near, far, export, etc.)

:option. \Z\g
:target. any
:usage. output function declarations to stdout

:option. \Z\i
:target. any
:immediate. handle_debug_info
:enumerate. debug_info
:internal.
:usage. full symbolic debugging information

:option. \Z\l
:target. any
:usage. remove default library information

:option. \Z\n
:target. any
:internal.
:usage. disable SBR file packing

:option. \Z\p
:target. any
:number. check_packing 1
:usage. pack structure members with alignment {1,2,4,8,16}

:option. \Z\s
:target. any
:usage. syntax check only

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?