VMS Help  —  DCE  DCE_RPC, idl
 NAME

   idl - Invokes the Interface Definition Language (IDL) compiler

 SYNOPSIS

   idl filename [argument] ...

 DESCRIPTION

   The idl command invokes the IDL compiler to convert an interface
   definition, written in IDL, into output files. The output files
   include a header file, server stub file, client stub file, and
   auxiliary files.  The compiler constructs the names of the output
   files by keeping the basename of the interface definition source file
   but replacing the filename extension with the new extension (or suffix
   and extension) appropriate to the newly generated type of output file.
   For example, math.idl could produce math_sstub.c or math_sstub.o for
   the server stub.

   The idl command accepts the following input:

     +  An interface definition filename.

     +  Arguments to indicate either special actions to be performed by
        the compiler, or special properties of the input or output files.

   The IDL compiler searches through directories for any related ACF.
   For example, if you compile a file named source.idl, the compiler
   automatically searches for a file named source.acf.  The compiler
   also searches for any imported  IDL file (and its related ACF).
   The compiler searches for these files using the following order:

    1.  The current working  directory.  The compiler always searches
        this directory unless you specify the -no_def_idir and
        -Idirectory arguments together.

    2.  Any imported directory. The compiler searches each directory you
        are specifying in the -Idirectory argument.

     3.  The  system IDL directory.  The compiler automatically imports
         nbase.idl, which resides in the system IDL directory.  The
         compiler always searches this directory unless you specify the
         -no_def_idir argument.

    4.  The directory specified in the source filename.  If you
        explicitly specify a directory in the source IDL pathname,
        then that directory is searched for the corresponding ACF.
        For example,

             $ idl /path/pathname/my_source.idl

        causes the IDL compiler to look  for  /path/pathname/my_source.acf
        if my_source.acf is not found in the directories in 1,2 and 3.
        Note that this directory is not searched for any imported IDL file
        or its corresponding ACF.

   Restrictions

   The following filenames are reserved by the IDL compiler.  Naming an
   IDL file with one of these names may result in unexpected behavior.

            iovector.idl   lbase.idl      nbase.idl      ncastat.idl
            ndrold.idl     rpc.idl        rpcbase.idl    rpcpvt.idl
            rpcsts.idl     rpctypes.idl   twr.idl        uuid.idl

 CAUTIONS

   The IDL compiler generates ANSI C code. It also supports C  compilers
   that are not fully ANSI compliant although a warning message may occur
   during compilation of the stubs by the C compiler.  A C compiler that
   is not fully ANSI compliant may generate the following warning messages:

     +  warning: & before array or function: ignored

     +  warning: enumeration type clash, operator =

 FILES

   SYS$SYSTEM:DCE$IDL.EXE
                  Compiler

   SYS$COMMON:[DCE$LIBRARY]
                  System IDL directory for imported files

   SYS$COMMON:[DCE$LIBRARY]NBASE.IDL
                  Predefined IDL types

   SYS$COMMON:[DCE$LIBRARY]<file.ext>
                  All .idl or .h files that are part of DCE RPC

 RELATED INFORMATION

   Books:  OSF DCE Application Development Guide

1  –  ARGUMENTS

1.1  –  -client

   -client file_type

   Determines which client files to generate. If you do not specify
   this argument, the compiler generates all client files. The file
   types are as follows:

       none Does not generate client files.

       stub Generates only a client stub file.

       aux  Generates only a client auxiliary file. A client auxiliary
            file is generated only if the interface contains any
            out-of- line or self-pointing types.

       all  Generates client stub and client auxiliary files. This is
  	   the default and is the same as not specifying the -client
            argument.

1.2  –  -server

   -server file_type

   Determines which server files to generate. If you do not specify
   this argument, the compiler generates all server files. The file
   types are as follows:

       none Does not generate server files.

       stub Generates only a server stub file.

       aux  Generates only a server auxiliary file. A server auxiliary
            file is generated only if the interface contains any
            out-of-line, self-pointing, or pipe types.

       all  Generates server stub and server auxiliary files. This is
            the default and is the same as not specifying the -server
            argument.

1.3  –  -standard

   -standard standard_type                            -

   Allows you to specify portable or extended features of the OSF DCE.
   This option is useful when you perform builds. The standard_type
   argument specifies what IDL features to enable. If you do not
   specify this argument, the compiler generates warning messages for
   all features that are not available in the previous version of OSF
   DCE.

   You can specify one of the following values for the standard_type
   argument:

       portable
            Allows only the language features available in OSF DCE
            Version 1.0.2.

       dce_v10
            Synonymous with the portable argument.

       dec_v10
            Allows all language features supported by the standard
            dce_v10 argument, plus a set of HP extensions to
            its products based on OSF DCE Version 1.0.

       extended
            Allows all language features supported in the current
 	   version of the compiler.  This is the default.

       dce_v11
            Synonymous with the extended argument.

   The following example command line compiles the IDL interface
   test.idl and enables extended features of the OSF DCE:

        % idl test.idl -standard extended

1.4  –  -cstub

  -cstub filename

   Specifies a pathname for the client stub file. When you give a
   filename, do not give a file extension; the idl compiler appends .c
   to the C source file and .o to the object file.  If you do not use
   the -cstub argument, the idl compiler appends _cstub.c to the C
   source file and _cstub.o to the object file.  If the -lang cxx
   option is used, the source file will have the .cxx extension.

1.5  –  -sstub

   -sstub filename

   Specifies a pathname for the server stub file. When you give a
   filename, do not give a file extension; the idl compiler appends .c
   to the C source file and .o to the object file.  If you do not use
   the -sstub argument, the idl compiler appends _sstub.c to the C
   source file and _sstub.o to the object file. If the -lang cxx
   option is used, the source file will have the .cxx extension.

1.6  –  -caux

   -caux filename

   Specifies a pathname for the client auxiliary file. When you give a
   filename, do not give a file extension; the idl compiler appends .c
   to the C source file and .o to the object file.  If you do not use
   the -caux argument, the idl compiler appends _caux.c to the C
   source file and _caux.o to the object file. If the -lang cxx option
   is used, the source file will have the .cxx extension.

1.7  –  -saux

   -saux filename

   Specifies a pathname for the server auxiliary file. When you give a
   filename, do not give a file extension; the idl compiler appends .c
   to the C source file and .o to the object file.  If you do not use
   the -caux argument, the idl compiler appends _saux.c to the C
   source file and _saux.o to the object file. If the -lang cxx option
   is used, the source file will have the .cxx extension.

1.8  –  -header

   -header header_file

   Allows you to specify a name for the generated header file. By
   default the compiler takes the basename of the IDL file and appends
   the .h extension to it.

1.9  –  -out

   -out directory

   Places the output files in the directory you specify. By default
   the compiler places the output files in the current working
   directory.

1.10  –  -Idirectory

   -Idirectory

   Specifies a directory name that contains imported interface
   definition files. You can specify more than one directory by
   specifying additional -Idirectory arguments on the command line.
   The compiler searches the directories in the order you list them.
   If a file is present in more than one directory, the compiler takes
   the first occurrence of the file. The default behavior of the
   compiler is to first search the current directory, then all
   directories you specify, then the system IDL directory.  The
   directory you specify is also passed to the C preprocessor and the
   C compiler.

1.11  –  -no_def_idir

   -no_def_idir

   Specifies that the compiler search only the current directory for
   imported files. When you use this with -Idirectory, the compiler
   searches only the directories you list, not the current directory,
   and not the system IDL directory.

1.12  –  -no_mepv

   -no_mepv

   Causes the compiler to not generate a manager entry point vector
   (EPV) in the server stub. Use this argument if the manager code and
   IDL file do not use the same operation names. If you specify this
   argument you must provide an EPV within the manager code that can
   be used when the interface is registered with the RPC server
   runtime.  The name of the type that you construct an EPV with is
   if_name_vmajor-version_minor-version_epv_t where if_name is the
   interface name.  It is not necessary to use this argument if the
   operation names in the manager code and IDL file are the same. In
   this case, the compiler generates a manager EPV in the server stub
   using the names of the operations in the IDL file.  (For
   information on registering the server, see the intro and
   rpc_server_register_if reference pages.  See the OSF DCE
   Application Development Guide.)

1.13  –  -cepv

   -cepv

   Generates local routines in the client stub file(<filename>_cstub.c)
   and defines a Client Entry Point Vector (CEPV) of the name
   if_name_vmajor-version_minor-version_c_epv where if_name is the
   interface name. The CEPV contains the addresses of the local
   routines. The client code must call the routines indirectly by
   using the addresses in the CEPV; otherwise, the stub routines in
   the client stub file must have the same names as the operations in
   the IDL file. (For information on registering the server, see the
   intro and rpc_server_register_if reference pages.  See the OSF DCE
   Application Development Guide.)

1.14  –  -cpp_cmd

   -cpp_cmd 'c_preprocessor_command_line'

   Allows you to specify a C preprocessor other than the default. The
   compiler invokes the C preprocessor found in that command line. The
   output of the C preprocessor is an expanded version of the input
   file(s) containing replacement text for any preprocessor directives
   (for example, the #include preprocessor directive).

1.15  –  -cpp_opt

   -cpp_opt 'command_options'

   Specifies additional options to be passed to the C preprocessor.
   You can add options to the command line used to invoke the C
   preprocessor independent of the -cpp_cmd argument. The IDL compiler
   concatenates the -cpp_cmd, -cpp_opt, -D, -U, -I arguments and the
   source filename into a command used to invoke the C preprocessor.
   The compiler repeats this process for each Attribute Configuration
   File (ACF) and IDL file.

1.16  –  -no_cpp

   -no_cpp

   Does not invoke the C preprocessor. Note that the C preprocessor
   must be run on files that contain preprocessor directives (such as
   #include) in the interface definition.

1.17  –  -cc_cmd

   -cc_cmd 'command_line'

   Invokes the C compiler and compiler options you specify in the
   'command_line' argument rather than the default C compiler and
   compiler options.  When used with the -lang cxx option, the -cc_cmd
   option specifies the C++ compiler.

1.18  –  -cc_opt

   -cc_opt 'command_options'

   Specifies additional options to be passed to the C compiler. You
   can add options to the command line used to invoke the C compiler
   independent of the -cc_cmd argument.  The IDL compiler concatenates
   the -cc_cmd, -cc_opt, -I arguments and the source filename into a
   command that invokes the C compiler. This procedure is done for
   each generated stub or auxiliary file.  When used with the -lang
   cxx option, the -cc_opt option specifies the C++ compiler options.

1.19  –  -Dname

   -Dname[=definition]

   Defines a symbol name and an optional value to be passed to the C
   preprocessor.  You can use this method of defining a symbol instead
   of using #define in the source code.  You can use more than one
   -Dname argument on the command line.  This argument has no effect if
   you use the -no_cpp argument.

1.20  –  -Uname

   -Uname

   Removes (undefines) any initial definition of a symbol name as
   defined by -Dname.  You can use this method to remove a symbol name
   instead of using #undef in the source code.  You can use more than
   one -Uname argument on the command line.  This argument has no
   effect if you use the -no_cpp argument.  If you define and undefine
   a name on the same command line, undefining takes precedence.

1.21  –  -space_opt

   -space_opt

   Generates code for the marshalling and unmarshalling of data that
   is optimized for space, rather than speed.

1.22  –  -syntax_only

   -syntax_only

   Checks only the syntax of the IDL file, but does not generate any
   output files.

1.23  –  -keep

   -keep file_types

   Specifies which files to retain. To produce the object modules, the
   IDL compiler first creates C source modules, then invokes the
   target C compiler to produce object modules, and finally, deletes
   the C source modules.  If you do not use -keep, only the object
   modules are saved.

   The file types are as follows:

   none    Does not save the C source or the object modules. Does not
           invoke the C compiler.

   c_source
           Saves only the C source modules. Does not invoke the C
           compiler.

   object  Saves only the object modules.

   all     Saves both the C source and the object modules.

1.24  –  -bug

   -bug n, -no_bug n

   Retains (-bug) or does not retain (-no_bug) a specified bug from
   earlier IDL compiler versions. (This in an NCS compatibility
   argument and is not supported in OSF DCE Version 1.1).

1.25  –  -stdin

   -stdin

   Takes the standard output of a previous utility as the input to the
   idl command. For example:

            $ pipe type my_filename.idl | idl -stdin

1.26  –  -version

   - version

   Displays the current version of the IDL compiler.

1.27  –  -v

   -v

   Prints informational messages (verbose mode) on the screen while
   the compiler is running.

1.28  –  -no_warn

   -no_warn

   Suppresses compiler warning messages.

1.29  –  -confirm

   -confirm

   Displays all the idl command arguments you chose, but does not
   compile the source IDL file. If you use this with the -v argument,
   informational messages about how the compiler behaves if you do not
   use -confirm are displayed but no corresponding actions are
   performed.

1.30  –  -template_client

   -template_client filename

   Requests that the IDL compiler generate a C source file containing
   a template implementation of each routine that must appear in the
   client application to use the specified IDL interface.  If you do
   not specify an extension for filename, the compiler assigns the
   file extension .c.

1.31  –  -template_manager

   -template_manager filename

   Requests that the IDL compiler generate a C source file containing
   a template implementation of each routine and operation that must
   appear in the manager module of the server side of an application
   to use the specified IDL interface.  If you do not specify an
   extension for filename, the compiler assigns the file extension .c.

1.32  –  -trace

   -trace value

   Enables event logging.

   You can specify one of the following values for the value argument:

       all    Log all events.

       none   Disable all previously specified trace options.

       calls  Log events relating to start and end of all RPC calls.

       context
              Log events relating to context handle creation, deletion,
              and rundown.

       errors
              Log errors.

       misc   Log all miscellaneous events.

       log_manager
              Enable command interface support which allows
              modification at runtime of event logging options.

1.33  –  -lang

   -lang  {c, cxx, fortran}

   Allows you to select a programming language.

   If you are generating stubs and include files for application code
   written in C++, you must specify cxx as the language of choice when
   you compile the application's IDL file.  When appropriate, you can
   extend the class hierarchy and derive other classes from this one,
   to implement some or all interface operations. The C++ compiler
   gives a warning if any functions in the interface class have not
   been implemented. Avoid overwriting the manager class header file
   by using the -no_cxxmgr argument in conjunction with the -lang cxx
   argument.

   If you are generating stubs and include files for application code
   written in FORTRAN, you must specify FORTRAN as the language of
   choice when you compile the application's IDL file.

   If you do not specify -lang fortran or -lang cxx, the default value
   is the C programming language or -lang c.

1.34  –  -no_cxxmgr

   -no_cxxmgr

   Prevents the compiler from overwriting the manager class header
   file.   Use this argument in conjunction with the -lang cxx
   argument if you implement application-specific C++ code in the
   manager class header file.

2  –  EXAMPLES

    1.  Invoke the IDL compiler to compile the interface definition file
        test.idl and keep the generated C source modules.  Only server
        files are generated.  The server stub default filename is
        overridden by creating a file named test_ss.c for the server
        stub module.

             $ idl test.idl -keep c_source -client none -sstub test_ss.c

    2.  Invoke the IDL compiler to compile the interface definition file
        test.idl, but do not run the C preprocessor.  The manager entry
        point vector is not defined in the generated server stub module.
        The IDL compiler searches the parent directory of the current
        directory for any IDL files that test.idl could import.  The
        generated output files are located in the output subdirectory
        under the current directory.

             $ idl test.idl -no_cpp -no_mepv -I.. -out ./output
Close Help