%MCC MATLAB to C/C++ Compiler (Version 2.1).
%   MCC [-options] fun [fun2 ... ] [mexfile1 ... mexfileN] [mlibfile1 ... mlibfileN]
%   
%   Translate fun.m to fun.c or fun.cpp, and optionally create any supported binary
%   file. Write any resulting files into the current directory, by default.
%   
%   If more than one M-file is specified, a C or C++ file is generated for each
%   M-file.
%   
%   If C or object files are specified, they are passed to MEX or MBUILD along with
%   any generated C files.
%   
%   If MEX-files are specified, MCC will generate wrapper code so that calls can be
%   made from compiled M-files to the specified MEX-files. Also, if a MEX-file and
%   an M-file with the same base name are located in the same directory, specifying
%   the MEX-file causes MCC to use it instead of the M-file. Otherwise MCC favors
%   M-files over MEX-files.
%                                                                                   
%   MLIB files describe the functions in a shared library created by MCC (see -W lib
%   below). Specifying an MLIB file tells MCC to link to the MLIB file's
%   corresponding shared library whenever it needs to use any of the functions found
%   in that library. The MLIB file and its corresponding shared library file must be
%   located within the same directory.
%   
%   If conflicting options are presented to MCC, the rightmost conflicting option is
%   used.
%   
%   In order to assist in migrating to this new release, we have prepared a
%   quick-reference card which contains the Compiler 2.1 options. You can access
%   this pdf file by selecting "Online Manuals" from the HELPDESK.
%   
%   OPTIONS:
%   
%   A <option> Specify annotation. The following table shows valid <option> strings
%       and their effects:
%   
%       annotation:all (*)  - All lines from source M-file appears as comments in 
%                             generated output file.
%       annotation:comments - Comments from source M-file appear as comments in 
%                             generated output file.
%       annotation:none     - No text from source M-file appears in generated output
%                             file.
%   
%       line:on             - #line directives appear in generated output file which
%                             map lines in source M-code to lines in output file.
%       line:off (*)        - No such #line directives are generated.
%       
%       debugline:on        - Run-time error messages report the source file name 
%                             and line number where they occurred.
%       debugline:off (*)   - Run-time error messages do not report any information 
%                             about the source where they occurred.
%   
%       (*) indicates default setting.
%   
%   B <filename> Specify bundle file. <filename> is a text file containing Compiler
%       command line options. The Compiler behaves as if the "-B <filename>" were
%       replaced by the contents of the bundle file. Newlines appearing in these
%       files are allowed and are treated as whitespace.
%       The MathWorks provides options files for the following:
%           sgl       Used for building stand-alone C Graphics Library 
%                     applications
%           sglcpp    Used for building stand-alone C++ Graphics Library 
%                     applications
%           pcode     Used for building MATLAB P-Code files.
%   
%   c   C only. Translate M-file to C, but do not produce a MEX-file or stand-alone
%       application. This is equivalent to "-T codegen" as the rightmost argument
%       on the command line.
%   
%   d <directory> Output directory. All generated files will be put in <directory>.
%   
%   F list. List the <option>s available in the next form of the command, together
%       with their current values and a short explanation.
%   
%   F <option>:<number> Typesetting format options. Assign the value <number> to
%       the formatting option <option>. See "F list" for <option>s.
%   
%   f <filename> Use the specified options file when calling MEX or MBUILD. This
%       allows you to use different ANSI compilers. This option is a direct
%       pass-through to the MEX or MBUILD script. See the "Application Program
%       Interface Guide" for more information.
%   
%   G Debug only. Simply turn debugging on, so debugging symbol
%       information is included.
%   
%   g Debug. Include debugging symbol information. This option also
%       includes the -A debugline:on switch. This will have an impact on
%       performance of the generated code. If you wish to have debugging
%       information, but do not want the performance degradation
%       associated with the debug line information use: -g -A
%       debugline:off. This option also includes the -O none switch.  That
%       switch causes all compiler optimizations to be turned off.  If you
%       wish to have some optimizations on, you may specify them after the
%       debug switch.
%   
%   h Compile helper functions. All M-functions called will be compiled into the 
%       resulting MEX-file or stand-alone application.
%   
%   I <path> Include path. Add <path> to the list of paths to search for M-files.
%       The MATLAB path is automatically included when running from MATLAB, but NOT
%       when running from DOS or the Unix shell. See "help mccsavepath".
%   
%   L <option> Language. Specifies target language. <option> can be "C" for C,
%       "Cpp" for C++, or "P" for MATLAB P-code.
%   
%   l   Line. Generates code that reports file name and line numbers on run-time
%       errors. (Equivalent to -A debugline:on)
%   
%   m   Macro that generates a C stand-alone application. This is equivalent to the
%       options "-t -W main -L C -h -T link:exe libmmfile.mlib", which can be found
%       in the file <MATLAB>/toolbox/compiler/bundles/macro_option_m. Note: the "-h"
%       means that helper functions will be included.
%   
%   M "<string>" Pass <string> to the MBUILD or MEX script used to build an
%       executable. If -M is used multiple times, the rightmost occurrence is used.
%   
%   o <outputfilename> Output name. Set the name of the final executable output
%       (MEX or stand-alone application) to <outputfilename>. A suitable, possibly
%       platform-dependent, extension is added to <outputfilename> (e.g., ".exe" for
%       PC stand-alone applications, ".mexsol" for Solaris MEX-files).
%   
%   O <optimization> Optimization.  There are three possibilities:
%   
%       <optimization class>:[on|off] - Turns the class on or off 
%       For example:  -O fold_scalar_mxarrays:on
%   
%       list - Lists the available optimization classes.
%   
%       <optimization level> - Uses a bundle file called
%       opt_bundle_<level> to determine which optimizations are on or off.
%       For example "-O all" looks for a bundle file called opt_bundle_all
%       and uses the switches present.  The current optimization levels
%       are "all" and "none".  The default is to have all optimizations
%       on.
%   
%   p   Macro that generates C++ stand-alone application. This is equivalent to the
%       options "-t -W main -L Cpp -h -T link:exe libmmfile.mlib", which can be
%       found in the file <MATLAB>/toolbox/compiler/bundles/macro_option_p. Note:
%       the "-h" means that helper functions will be included.
%   
%   S   Macro that generates Simulink C-MEX S-Function. This is equivalent to the
%       options "-t -W simulink -L C -T link:mex libmatlbmx.mlib", which can be
%       found in the file <MATLAB>/toolbox/compiler/bundles/macro_option_S. Note:
%       the absence of "-h" means that helper functions will not be included.
%   
%   t   Translate M code to target language. Translate any M-functions specified on
%       the command line to C or C++ functions. This option is included in all
%       macro options. Omitting it allows the generation of wrapper C/C++ files
%       without generating the C/C++ files corresponding to M-files.
%   
%   T <option> Specify target phase and type. The following table shows valid 
%       <option> strings and their effects:
%   
%       codegen     - translate M-files to C/C++ files and generate a wrapper file.
%                     (This is the default -T setting.)
%       compile:mex - same as codegen, plus compile C/C++ files to object form 
%                     suitable for linking into a MEX-file.
%       compile:exe - same as codegen, plus compile C/C++ files to object form 
%                     suitable for linking into a standalone executable.
%       compile:lib - same as codegen, plus compile C/C++ files to object form 
%                     suitable for linking into a shared library/DLL.
%       link:mex    - same as compile:mex, plus link object files into a MEX-file.
%       link:exe    - same as compile:exe, plus link object files into a standalone
%                     executable.
%       link:lib    - same as compile:lib, plus link object files into a shared 
%                     library/DLL.
%   
%   u <number> Specify that the number of inputs to a generated Simulink S-function
%       should be <number>. Valid only if either "-S" or "-W simulink" option has
%       also been specified.
%   
%   v   Verbose. Show compilation steps.
%   
%   w list. List the <msg> strings allowed in the next form of the command,
%       together with the full text of the warning messages to which they
%       correspond.
%   
%   w <option>[:<msg>] Warnings. The possible options are "enable", "disable", and
%       "error". If "enable:<msg>" or "disable:<msg>" is specified, enable or
%       disable the warning associated with <msg>. If "error:<msg>" is specified,
%       enable the warning associated with <msg> and treat any instances of that
%       warning as an error. If the <option> but not ":<msg>" is specified, the
%       Compiler applies the action to all warning messages. For backward 
%       compatibility with previous Compiler revisions, "-w" (with no option) is 
%       the same as "-w enable".
%   
%   W <option> Wrapper functions. Specify which type of wrapper file should be
%       generated by the Compiler. <option> can be one of "mex", "main",
%       "simulink", "lib:<string>", or "none" (default). For the lib wrapper,
%       <string> contains the name of the shared library to build. When generating a
%       "lib" wrapper, MCC also creates an MLIB file describing the functions in the
%       shared library.
%   
%   x   Macro that generates a MEX file. This is equivalent to the options
%       "-t -W mex -L C -T link:mex libmatlbmx.mlib", which can be found in the
%       file <MATLAB>/toolbox/compiler/bundles/macro_option_x. Note: the absence of
%       "-h" means that helper functions will not be included.
%   
%   y <number> Specify that the number of outputs from a generated Simulink
%       S-function should be <number>. Valid only if either "-S" or "-W simulink"
%       option has also been specified.
%   
%   Y <license.dat file> Override default license.dat file with specified
%       argument.
%   
%   z <path>  Specify the path to use for library and include files.
%       This option uses the specified path for the Compiler libraries
%       instead of MATLABROOT.
%   
%   ?   Help. Display this help message.
%   
%   EXAMPLES:
%   
%   Make a C translation and a MEX-file for myfun.m:
%       mcc -x myfun
%   
%   Make a C translation and a stand-alone executable for myfun.m:
%       mcc -m myfun
%   
%   Make a C++ translation and a stand-alone executable for myfun.m:
%       mcc -p myfun
%   
%   Make a C translation and a Simulink S-function for myfun.m
%    (using dynamically sized inputs and outputs):
%       mcc -S myfun
%   
%   Make a C translation and a Simulink S-function for myfun.m
%    (explicitly calling for one input and two outputs):
%       mcc -S -u 1 -y 2 myfun
%   
%   Make a C translation and stand-alone executable for myfun.m. Look for
%    myfun.m in the directory /files/source, and put the resulting C files and
%    executable in the directory /files/target:
%       mcc -m -I /files/source -d /files/target myfun
%   
%   Make a C translation and a MEX-file for myfun.m. Also translate and include 
%    all M-functions called directly or indirectly by myfun.m. Incorporate the 
%    full text of the original M-files into their corresponding C files as C 
%    comments:
%       mcc -x -h -A annotation:all myfun
%   
%   Make a generic C translation of myfun.m:
%       mcc -t -L C myfun
%   
%   Make a generic C++ translation of myfun.m:
%       mcc -t -L Cpp myfun
%   
%   Make a C MEX wrapper file from myfun1.m and myfun2.m:
%       mcc -W mex -L C libmatlbmx.mlib myfun1 myfun2
%   
%   Make a C translation and a stand-alone executable from myfun1.m and myfun2.m
%    (using one mcc call):
%       mcc -m myfun1 myfun2
%   
%   Make a C translation and a stand-alone executable from myfun1.m and myfun2.m
%    (by generating each output file with a separate mcc call). Note that the MLIB
%    file "libmmfile.mlib" only needs to be specified when generating a wrapper
%    file, and when linking the final executable:
%       mcc -t -L C myfun1                            % yields myfun1.c
%       mcc -t -L C myfun2                            % yields myfun2.c
%       mcc -W main -L C myfun1 myfun2 libmmfile.mlib % yields myfun1_main.c
%       mcc -T compile:exe myfun1.c                   % yields myfun1.o
%       mcc -T compile:exe myfun2.c                   % yields myfun2.o
%       mcc -T compile:exe myfun1_main.c              % yields myfun1_main.o
%       mcc -T link:exe myfun1.o myfun2.o myfun1_main.o libmmfile.mlib
%   
%   Make a shared/dynamically linked library called "a" from a0.m and a1.m, where
%    neither a0 nor a1 calls functions in libmmfile:
%       mcc -t -W lib:a -T link:lib a0 a1
%   
%   Make a shared/dynamically linked library called "a" from a0.m and
%    a1.m, where at least one of a0 or a1 calls at least one function in
%    libmmfile.  Define LIBMMFILE to be 1 when compiling the C code.:
%    mcc -t -W lib:a -T link:lib a0 a1 libmmfile.mlib -M "-DLIBMMFILE=1"
%   
%   Make a C translation and a stand-alone graphics library executable from 
%    myfun.m (using one mcc call):
%       mcc -B sgl myfun1 
%   
%   Make a C++ translation and a stand-alone graphics library executable from 
%    myfun.m (using one mcc call):
%       mcc -B sglcpp myfun1 
%        
%   Make a shared/dynamically linked library called "a" from a0.m and a1.m that
%    makes calls into the MATLAB C/C++ Graphics Library:
%       mcc -B sgl -t -W libhg:a -T link:lib a0 a1 
%   
%   Note: on PCs, filenames ending with .o above would actually end with .obj.
%
%
%   See also COMPILER/FUNCTION, MCCSAVEPATH, REALONLY, REALSQRT, REALLOG, 
%            REALPOW, COMPILER_SURVEY, COMPILER_BUG_REPORT, MEX, MBUILD.

% Copyright 1984-2000 The MathWorks, Inc.

function [varargout] = mcc(varargin)
%#mex
error('MEX file not present');
