### Using The generate_component_mpc.pl Script

This document describes the options and usage of the Perl script `generate_component_mpc.pl` in the `$(CIAO_ROOT)/bin` directory.

#### Assumptions

This script is useful for generating MPC files for relatively simple component applications. The string name passed to the script should be the name of the single IDL file for that build (without the extension) and also the name of the single CIDL file, if it is a component build. The names of export files, preprocessor macros, and library names in the generated MPC file will all be constructed from this string. It is also assumed that the IDL file for a component build will contain a single component declaration.

Judicious use of the script options in the table below will generate a build that keeps to a minimum both the code generated from IDL and the number of linked libraries from the middleware.

#### Script Options

Option | Description | Remark
--- | --- | ---
`-h` | The compiler prints out the options that are given below and exits clean |
`-p` string | Indicates another make/project that this one depends on | Used as a project name prefix unless overridden by `-u` option
`-l` string | Path to the dependent name value of `-p` | Needed only if the dependent make/project isn't already in the search path
`-n` | Non-component make/project | Generates a `*_stub` and `*_skel` pair of builds, instead of the default `*_stub`, `*_svnt` and `*_exec` builds. Also specializes the IDL compiler command line options and linked lib list, depending on the `-e` option, if it exists
`-e` | `eventtype` declaration present in IDL | Has no effect unless the `-n` option is also present, in which case the IDL compiler command line options and list of linked libs will change to reflect the fact that IDL eventtypes require typecode support and depend on libs in CIAO, which for a non-component build would otherwise not be the case
`-i` | Use an executor IDL file | Indicates the presence of an IDL file in the executor make/project, from which the actual executor implementation will inherit. Assumes the name of this IDL file is of the form `[component_name]EI.idl`
`-c` | Create a client make/project | Generates a build for a "driver" executable. Assumes there is a single C++ source file named `client.cpp`
`-u` string | Unique project name prefix | Occasionally needed since MPC doesn't accept duplicate project names anywhere in the tree over which it is proecessing. This option overrides the value of the `-p` option, if present