## VMAKE Tools

### Use

The VMAKE program uses several tools (scripts). These tools can be written in any script or prototyping language. Use the $TOOLSHELL environment variables to configure which shell is used by the scripts.

VMAKE completes the names of the scripts using the $TOOLEXT variable (if available), which defines the file extension of the scripts. If additional parameters are to be sent to $TOOLSHELL, they must be defined in the environment variable $TOOLOPT.

The tools accept both absolute and relative path specifications for module files and description files. The targets are created in the current run directory specified by VMAKE and are then stored in the specified target directory.

VMAKE initially assumes that the VMAKE tools are stored in the $TOOL/bin directory. If this is not the case, VMAKE searches every local <path> along the <path>/sys/tool/bin path.

### Features

VMAKE Tools

Call | Description
archive [<ar-flags>] <library> <objects> | Writes object files to the <library>.
compa [<as-flags>] <source> | Translates an Assembler module file and creates the <file_name>.o
compc [<cc-flags>] <source> | Translates a C/C++ module file and creates the <file_name>.o
complint [<cc-flags>] <source> | Checks a C module file with LINT
compp [<pc-flags>] <source> | Translates a PASCAL module file and creates the <file_name>.o
comppc [<pc-flags>] <source> | Translates a PASCAL module file into a C module file.
linkdll [<ld-flags>] <dll> <archive> <objects> | Links <objects> object files to a dynamic library <dll> and creates the static library <archive>.
linklnk [<ld-flags>] [-o program] <objects> | Links a program with the name program.
linkrel [<ld-flags>] relocatable <objects> | Writes the object files <objects> in a relocatable object with the name relocatable
linkshm [<ld-flags>] [-o program] <objects> | Links a program with the name program, the global variables of which must be stored in the shared memory.
linkshr [<ld-flags>] relocatable <objects> | Writes object files <objects> to a relocatable object with the name relocatable, whose global variable must be stored in the shared memory.
mfa [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [<includes>] | Extracts the code section of an Assembler module file and writes it to the file <file_name>.s If include files are required, they must be specified in the correct order. The -trace and -check options are inserted to ensure compatibility with mfp scripts, and are ignored by the mfa script.
mfainc [-<token>=<value>] <source> | Extracts the include code from an Assembler include file and writes it to the file <file_name>.h.

mfc [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [includes]

Extracts the code section of a C/C++ module file and writes it to <file_name>(.c |.cpp).

If include files are required, they must be specified in the correct order. If $VMAKE_VERSION is defined with slow, #define DEBUG is used as a prefix for the file name. The -trace and -check options are inserted to ensure compatibility with mfp scripts, and are ignored by the mfc script.

mfcexp [-<token>=<value>] <source> | Writes the exported interface (define section of the text frame) to the file <file_name>.h.
mfcinc [-<token>=<value>] <source> | Extracts the include code from a C/C++ include file and writes it to the file <file_name>.h.
mfextra [-<token>=<value>] <source> <destination> [<includes>] | Creates files that do not require translation

mfp [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [>includes>]

Extracts the define section, use section and code section of a PASCAL module file and writes it to the file <file_name>.p

If include files are required, they must be specified in the correct order. The -trace=<procedure> option specifies the name of the trace procedure, whose call is inserted at the start of every function and procedure. The -check=no option defines whether the name prefixes of exported procedures are to be checked.

mfpinc [-<token>=<value>] <source> | Extracts the include file from a C/C++ include file. Extracted CONST definitions are written to the file <file_name>.con; extracted TYPE definitions are written to the file <file_name>.typ.
mfsize [<include-list>] <module> | Creates a file <file_name>.siz that contains size information on the types of module file used. If include files are required, they must be specified in the correct order.

You can specify additional options for some tools.