#### 6.3.2 Usage of `idlac`

`idlac` is PolyORB’s IDL-to-Ada compiler.

    NAME
           idlac - PolyORB's IDL-to-Ada compiler

    SYNOPSIS
           idlac [-Edikpqv] [-[no]ir] [-gnatW8] [-o DIR] idl_file [-cppargs ...]

    DESCRIPTION
           idlac is an IDL-to-Ada compiler, compliant with version 1.2 of the
           ``Ada Language Mapping Specification'' produced by the OMG.

    OPTIONS
           idlac accepts the following options:

           -E      Preprocess only.

           -d      Generate delegation package.

           -i      Generate implementation template.

           -s      Generate server side code.

           -c      Generate client side code.

           -k      Keep temporary files.

           -p      Produce source on standard output.

           -q      Be quiet (default).

           -v      Be verbose.

           -ir     Generate code for interface repository.

           -noir   Don't generate code for interface repository (default).

           -gnatW8
                   Use UTF8 character encoding

           -o DIR Specify output directory

           -cppargs ARGS
                   Pass ARGS to the C++ preprocessor.

           -I dir  Shortcut for -cppargs -I dir.

    EXIT STATUS
           idlac returns one of the following values upon exit:

           0      Successful completion

           1      Usage error

           2      Illegal IDL specification

`idlac` creates several files :

- `myinterface.ads`, `myinterface.adb` : these files contain the mapping for user defined types (client and server side).
- `myinterface-impl.ads`, `myinterface-impl.adb` : these files are to be filled in by the user. They contain the implementation of the server. They are generated only if the -i flag is specified.
- `myinterface.ads`, `myinterface.adb` : these files contain the client stubs for the interface.
- `myinterface-skel.ads`, `myinterface-skel.adb` : these files contain the server-side skeletons for the interface.
- `myinterface-helper.ads`, `myinterface-helper.adb` : these files contain subprograms to marshal data into CORBA Any containers.
- `myinterface-ir_info.ads`, `myinterface-ir_info.adb` : these files contain code for registering IDL definitions in the CORBA Interface Repository. They are generated only if the `'-ir'` flag is specified.