rcc(1)

NAME
rcc -- Command to compile and load RCCL and RCI programs.

USAGE
rcc [LIBFILE <name>] [file-list] CTRL [control-file-list]

where file-list is a list of cc options and user level files, and control-file-list is a list of cc options and control level files.

ARGUMENTS

LIBFILE --
    If specified, the next argument is taken to be the name of the configuration file that rcc will look for. The default configuration file name is .rcc

CTRL --
    Keyword that delimits the control files from the conventional files.

rcc also accepts all of the options of cc.

DESCRIPTION
The rcc command provides a convenient compilation interface to the RCI system and libraries. It is used almost exactly like the C complier cc, but provides the following "extras":

<>  Files which contain control level code and data are compiled and loaded in a special way so as to ensure that their text and data are grouped together in known and contiguous locations.

<>  Programs are automatically loaded with a list of libraries described in a configuration file.

<>  Include file directories are supplemented with a list from the configuration file.

<>  By default, rcc places its program output into a file named after the first file argument encountered, instead of a.out. This can be overridden with the usual -o option.

Files which contain control level code and data are delimited by placing them to the right of the keyword CTRL in the argument list. Files to the left of CTRL are assumed to contribute only to the "conventional" part of the program. If CTRL is not specified, the program is assumed to have no control part.

rcc obtains information about what load libraries and include directories to use by reading configuration files. Ecah config file contains lines of the form

        keyword=value

where "keyword" is one of "user", "ctrl", "util", "include", "begin", or "end". The value is a list of files to be associated with that keyword. Multiple file names are separated only by white space. Environment variables ($<varbname>) and home directory syntax (~<user>) are permitted in the file name. The value field is terminated by the end of the line. Config file lines which begin with a # or are blank are considered to be comments.

cc --
    Defines the actual command to be used for the C compiler. This can include options as well.

user --
    Library files to be loaded with the non-control part of the program.

ctrl, util --
    Library files which are loaded with the control part of the program.

include --
    Include directories to be provided to cc with the -I option.

begin, end --
    Contains entry points which denote the beginning and end of the control code and data. The user is not normally concerned with these entries, which are defined in the system config file.

rcc prints out all of the libraries and include directories it is referencing, so it is easy to see what is going on.

The configuration file is called .rcc by default and are searched for first in the directory $RCCL/conf, then in the user's home directory ($HOME), and finally in the current directory (.), with definitions in later files overriding those in earlier files.

The LIBFILE option allows the user to change the config file name from .rcc to something else, as in

         rcc LIBFILE .rcc-local .....

DIAGNOSTICS
Diagnostics are identical to those for the C compiler, except for a few possible complaints about such things as a bad configuration file.

BUGS
rcc needs to know a little about the standard cc command line syntax. This sometimes causes problems in the face of a large number of C compilers with differing syntaxes.