[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Program Maintenance--(RMAKE.EXE)
Overview
Automates the maintenance of multi-file program systems by keeping files
up to date. It does this by comparing the date and time stamps of files
related to one another and performs a series of actions if the date and
time stamps do not match.
Syntax
RMAKE [<makeFile list>]
[<macroDef list>] [<option list>]
Command Line Arguments
This is the command line syntax to invoke the CA-Clipper make utility.
If issued without any arguments, a help screen is displayed.
<makeFile list> is a list of one or more make files to process. The
default extension for this file is (.RMK).
<macroDef list> is a list of one or more macro definitions of the
form <macroName>=<value>.
<option list> is a list of one or more options to control the course
of the make, all of which are described below.
RMAKE Options
/B
Displays debugging information.
/D<macroName>[:<value>]
Defines a macro and an optional value. If the value is not supplied,
the macro is defined with a null value.
/I
Ignores execution errors.
/N
Performs a null make displaying the commands that would be executed
without actually executing them.
/S
Searches subdirectories for make files.
/U
Enables the # character as a comment indicator and suppresses its use as
a directive indicator.
/W
Displays certain warning messages.
/XS<numSymbols>
Sets the size of the internal symbol table. If not specified, the
default is 500 symbols.
/XW<numBytes>
Sets the size of the internal workspace. If not specified, the default
is 2048 bytes.
Comments
Comments may be specified using C-style inline comments (e.g. /* .. */ )
or C-style line comments (//) or, if the /U option is used, Unix make-
style comments (#). Comments cannot be nested.
Dependency Rules
A dependency rule causes certain actions to be performed if any of the
dependent files have a newer date and time stamp than the target file:
<targetFile>: <dependentFile list>
[<action>]
[<action>]...
Inference Rules
An inference rule is used to complete a dependency rule specified with
no actions. It defines the actions to take for any incomplete
dependency rule that satisfies certain filename extensions:
.<dependentExtension>.<targetExtension>:
[<action>]
[<action>]...
Macro Definitions
Macros are defined in make files using the following syntax:
<macroName> = <value>
Once defined, a macro can be referred to using the following syntax:
$(<macroName>)
To assign the contents of a macro to another macro, use the following
syntax:
<macroName> := $(<macroName>)
Makepath Macros
Makepath macros are special macros that define where RMAKE searches and
creates classes of files as defined by extension. Makepath macros are
defined using the following syntax:
makepath[.<extension>] = <pathSpec>
Predefined Macros
In addition to user-defined macros, there are several predefined macros
that can be used to access dependency and target filenames.
$*
Expands to the target filename without a path or extension.
$@
Expands to the target filename including path and extension.
$**
Expands to the complete list of full dependency filenames.
$<
Expands to the full name of the first file in the dependent file list.
$?
Expands to a list of dependencies that have a more recent date and time
stamp than the target file.
Directives
RMAKE provides directives to control the operation of the make process.
Directives cannot be used as action lines. Macros encountered in a
directive are expanded immediately. By default, either the # character
or the ! character can be used to specify a directive. If the /U option
is used, the # character is interpreted as a comment indicator, and
cannot be used to specify directives.
#! <action>
Execute a DOS command.
#else
Executes statements between the #else and the next #endif directive when
the corresponding #if directive evaluates to false (.F.).
#end[if]
Terminates the block of statements defined by a #if directive.
#ifdef <macroName>
Executes statements between the #ifdef directive and the corresponding
#else or #endif directives if the specified <macroName> exists.
#ifeq <word1> <word2>
Executes statements between the #ifeq directive and the corresponding
#else or #endif directives if <word1> and <word2> are identical. A word
consists of one or more characters up to the next white space character.
To include a white space character within a word, enclose the word in
double-quote (") marks.
#iffile <fileSpec>
Executes statements between the #iffile directive and the corresponding
#else or #endif directives if any files match the specified <fileSpec>.
#ifndef <macroName>
Executes statements between the #ifndef directive and the corresponding
#else or #endif directives if the specified <macroName> does not exist.
#include .<fileName>.
Inserts and processes the contents of <fileName> before continuing with
the current make file.
#stderr "<text>"
Writes the <text> to the standard error file or device.
#stdout "<text>"
Writes the <text> to the standard output file or device.
#undef <macroName>
Removes any previous definition of the specified <macroName>.
See Also:
SET RMAKE
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson