Previous: Main Language Macros Up: Valid vimake Commands Next: Build Flag Macros
Languages Used Macros
- USES_C - This flag, if defined, says that at least one source module
is written in C, using Kernighan and Ritchie (K&R) C, as opposed to ANSI C.
Most VICAR code is written using K&R C, so this will be the flag used most
often. USES_C may or may not accept some ANSI code, depending on the machine,
but if there is any conflict then the K&R interpretation will be used.
This flag is valid for types PROGRAM and SUBROUTINE. If any C code is to be
compiled, either USES_C or USES_ANSI_C must be defined, but not both.
Only one version of C may be used at a time, so all of the C modules in the
imakefile must be either ANSI or K&R C. All C source modules must have a
filename extension of ``.c''. Any number of other USES flags may be defined,
if needed. All C modules have the RTL and TAE include files available. Other
include directories can be set up via the LIB macros or the class macros
(R2LIB, P2_SUBLIB, etc.).
- USES_ANSI_C - This flag, if defined, says that at least one source
module is written in ANSI-standard C, as opposed to the older Kernighan and
Ritchie (K&R) C. Most VICAR code is currently written in K&R C, so this
flag will not be used very often. As of this writing, there are no ANSI C
header files for the RTL or any other VICAR system libraries. They will be
added in the future, but until they are, USES_ANSI_C will be of limited
usefulness. Also, MIPL does not currently have an ANSI-compliant compiler for
the VAX. It is close, but may or may not be completely ANSI, so be careful.
USES_ANSI_C may or may not accept non-ANSI constructs, depending on the
machine implementation, but it should generate warnings if non-ANSI constructs
are used. USES_ANSI_C is valid for types PROGRAM and SUBROUTINE. If any C
code is to be compiled, either USES_C or USES_ANSI_C must be defined, but
not both. Only one version of C may be used at a time, so all of the C
modules in the imakefile must be either ANSI or K&R C. All C source modules
must have a filename extension of ``.c''. Any number of other USES flags may
be defined, if needed. All C modules have the RTL and TAE include files
available. Other include directories can be set up via the LIB macros or
the class macros (R2LIB, P2_SUBLIB, etc.). Note that main programs written
in ANSI C still use the MAIN_LANG_C macro.
- USES_FORTRAN - This flag, if defined, says that at least one source
module is written in Fortran. It is valid for types PROGRAM and SUBROUTINE.
If any Fortran code is to be compiled, USES_FORTRAN must be defined. All
Fortran source modules must have a filename extension of ``.f''. Any
number of USES flags may be defined, if needed.
- USES_MACRO - This flag, if defined, says that at least one source
module is written in VAX Macro. It is valid for types PROGRAM and SUBROUTINE.
If any VAX Macro code is to be assembled, USES_MACRO must be defined. Of
course, VAX Macro code is not portable, so in a portable application a portable
version of the same function must be available. Typically, MODULE_LIST will
be defined differently for the VMS and Unix versions (see the examples in the
previous section). All VAX Macro source modules must have a filename
extension of ``.mar''. Any number of USES flags may be defined, if needed.
- USES_VFC - This flag, if defined, says that at least one source
module is written in the VFC array processor language. It is valid for types
PROGRAM and SUBROUTINE. If any VFC code is to be compiled, USES_VFC must
be defined. At the present time, VFC code is not portable, so in a portable
application a portable version of the same function must be available.
Typically, MODULE_LIST will be defined differently for the VMS and Unix
version. All VFC source modules must have a filename extension of ``.vfc''.
Any number of USES flags may be defined, if needed.