[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Program Maintenance--RMAKE.EXE
 Automates the maintenance of multi-file program systems by keeping files up-
 to-date by comparing the date and time stamps of files related to one
 another and performing a series of actions if they do not match.
------------------------------------------------------------------------------

     RMAKE [<makeFile list>] [<macroDef list>] [<option list>]

 Arguments

     <makeFile list> is a list (separated by spaces) of one or more make
     files to process.  The default extension for make files is (.RMK).  Each
     filename can optionally include a drive designator and a path reference.
     You can specify a maximum of 16 files in the <makeFile list>.

     <macroDef list> is a list (separated by spaces) of one or more macro
     definitions of the form <macroName>=[<value>].  If you specify more than
     one macro definition, separate them with a space.  If you define a macro
     on the command line, you cannot redefine it in the make file without
     first undefining it.  In this way, command line macros take precedence
     over make file macros of the same name.

     <option list> is a list of one or more options to control the course
     of the make, all of which are described below.  To get a list of options,
     specify the RMAKE command line with no arguments.

 RMAKE Options

     All options are shown in uppercase preceded by a slash (/).  Note,
     however, that options are not case-sensitive and that you can replace
     the slash with a dash (-) if you prefer.

     Some compiler options have arguments.  If an option has arguments,
     specify them after the option, with no space between the option and
     its first argument.

     /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.

     /F

     Forces RMAKE to perform all actions defined in the make file(s) without
     regard to the date and time stamps of the files in the dependency and
     inference rules.  In other words, the application will be rebuilt,
     regardless of whether any files have been updated since the last build.

     /I

     Ignores execution errors.

     /N

     Performs a null make displaying the commands that would be executed
     without actually executing them.

     /Q

     Suppresses the RMAKE copyright message.

     /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 can 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>

     Executes a DOS command.

     #ifdef <macroName>
        <statements>...
     #else
        <statements>...
     #endif

     Executes statements between the #ifdef directive and the corresponding
     #else or #endif directives if the specified <macroName> exists.

     #ifeq <word1> <word2>
        <statements>...
     #else
        <statements>...
     #endif

     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.  Note that the comparison is not case-sensitive.

     #iffile <fileSpec>
        <statements>...
     #else
        <statements>...
     #endif

     Executes statements between the #iffile directive and the corresponding
     #else or #endif directives if any files match the specified <fileSpec>.

     #ifndef <macroName>
        <statements>...
     #else
        <statements>...
     #endif

     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