<?xml version="1.0"?>
<!--
SPDX-License-Identifier: MIT

Copyright The SCons Foundation

This file is processed by the bin/SConsDoc.py module.
See its __doc__ string for a discussion of the format.
-->

<!DOCTYPE sconsdoc [
<!ENTITY % scons SYSTEM '../../doc/scons.mod'>
%scons;
<!ENTITY % builders-mod SYSTEM '../../doc/generated/builders.mod'>
%builders-mod;
<!ENTITY % functions-mod SYSTEM '../../doc/generated/functions.mod'>
%functions-mod;
<!ENTITY % tools-mod SYSTEM '../../doc/generated/tools.mod'>
%tools-mod;
<!ENTITY % variables-mod SYSTEM '../../doc/generated/variables.mod'>
%variables-mod;
]>

<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">

<tool name="rmic">
<summary>
<para>
Sets construction variables for the &rmic; utility.
</para>
</summary>
<sets>
<item>RMIC</item>
<item>RMICFLAGS</item>
<item>RMICCOM</item>
<item>JAVACLASSSUFFIX</item>
</sets>
<uses>
<item>RMICCOMSTR</item>
</uses>
</tool>

<builder name="RMIC">
<summary>
<para>
Builds stub and skeleton class files
for remote objects
from Java <filename>.class</filename> files.
The target is a directory
relative to which the stub
and skeleton class files will be written.
The source can be the names of <filename>.class</filename> files,
or the objects return from the
&b-Java;
builder method.
</para>

<para>
If the construction variable
&cv-link-JAVACLASSDIR;
is set, either in the environment
or in the call to the
&b-RMIC;
builder method itself,
then the value of the variable
will be stripped from the
beginning of any <filename>.class </filename>
file names.
</para>

<example_commands>
classes = env.Java(target='classdir', source='src')
env.RMIC(target='outdir1', source=classes)
env.RMIC(
    target='outdir2',
    source=['package/foo.class', 'package/bar.class'],
)
env.RMIC(
    target='outdir3',
    source=['classes/foo.class', 'classes/bar.class'],
    JAVACLASSDIR='classes',
)
</example_commands>
</summary>
</builder>

<cvar name="RMIC">
<summary>
<para>
The Java RMI stub compiler.
</para>
</summary>
</cvar>

<cvar name="RMICCOM">
<summary>
<para>
The command line used to compile stub
and skeleton class files
from Java classes that contain RMI implementations.
Any options specified in the &cv-link-RMICFLAGS; construction variable
are included on this command line.
</para>
</summary>
</cvar>

<cvar name="RMICCOMSTR">
<summary>
<para>
The string displayed when compiling
stub and skeleton class files
from Java classes that contain RMI implementations.
If this is not set, then &cv-link-RMICCOM; (the command line) is displayed.
</para>

<example_commands>
env = Environment(
    RMICCOMSTR="Generating stub/skeleton class files $TARGETS from $SOURCES"
)
</example_commands>
</summary>
</cvar>

<cvar name="RMICFLAGS">
<summary>
<para>
General options passed to the Java RMI stub compiler.
</para>
</summary>
</cvar>

</sconsdoc>
