ChorusOS 5.0 Source Delivery Guide

.df Files

The .df suffix denotes definitions file.

The .df files are used as shell scripts that are launched when the Makefile is created to adjust variables before they are written into the Makefile. The .df files define the following variables:

The .df files have similar properties to the Project.tmpl files of the imake tool. They affect the building of the Makefiles for all the subdirectories. With mkmk, you can have several .df files in each directory of the source tree. This contrasts with the imake tool, which has only one Project.tmpl file per component.

The inheritance mechanism of the mkmk tool is different from that of the imake tool. With mkmk, every Makefile is dependent on the Makefile present in the parent directory. However, with imake, every Makefile is dependent on the Project.tmpl file present in the top-level directory of the component and on the few variables inherited from the parent directory. The variables and macros are defined in the production tools. Table 4-8 lists those you must not modify and Table 4-9 lists those you can modify.

Table 4-8 Variables for the .df Files that must not Change

Variable 

Description 

DTL(DEVTOOLS_DIR)/host/bin/
GROOT ../../ (the relative path to the root component)
BDIR build_dir
BNAME Name of current directory
HOST Type of host
FAMILY Type of target
COMPILER  Type of compiler

MPATH

Pathname of current directory relative to the component root 

BFILESList of .bf files found in your work directory
MFILESList of .lf and .mf files found in your work directory
DFILESList of .df files in your work directory

Table 4-9 Variables in the .df Files hat can Change

Variable 

Description 

DEFINES List of macro definitions to use in every compilation rule
INCLUDES List of directories to search for header files
VARIABLESThe list of user defined variables to export in Makefiles produced in subdirectories
SUB_DIRS The list of directories to use when compiling; these are usually the subdirectories of your build directory
EXTRA_DIRS A list of directories to use, in addition to SUB_DIRS, when creating libraries or linking actors (usually empty)
MODULES The name of the module to which the object in your build directory (and subdirectories) belong; this is only useful in configurable actors

FARROP

Application profiling 

FEXCEPTION  (ON/OFF): Compile with exception support
FPU  (ON/OFF): Compile with FPU support
FOPTIM  (ON/OFF): Compile with optimization
FPROF  (ON/OFF): Support for profiling
FREMOTEDEB  (ON/OFF): Compile with debug options, to enable source level debugging
FVERBOSE (ON/OFF): Verbose compilations
FWARN(STRICT/ON/OFF): Enable production of warnings during compilation; with STRICT, warnings are treated as errors. The NUCLEUS component uses STRICT

FASSERT

(ON/OFF): Enable or disable assertions 

FGCOV

(ON/OFF): Enable or disable code coverage testing with gcov

FPIC

(ON/OFF): Enable or disable compilation for inclusion in shared libraries 

FVEC

(ON/OFF): Enable or disable generation/build options to use or not use a unit vector