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 cpp symbols
The header file directories
The list of subdirectories
The .df files have similar properties to the Project.tmpl files of the imake tool. See ChorusOS 4.0 Introduction for further information. 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 of the component and on the few variables which are inherited from the parent directory. The variable and macros are defined in the production tools. Table 4-2 lists those which you must not modify and Table 4-3 lists those which you may modify.
Table 4-2 Variables for the .df files, that must not be changedTARGETMKRULES | <bin_dir>/tools/tgt-make/mktgt.rf |
MKRULES | <bin_dir>/tools/tgt-make/mktgt.rf |
DTL | <bin_dir>/tools/host/bin/ |
GROOT | ../../ |
BDIR | <bin_dir> |
BNAME | kern |
HOST | LINUX |
FAMILY | PowerPC |
COMPILER | gcc |
BFILES | List of .bf files found in your work directory |
MFILES | List of .lf files found in your work directory |
DFILES | kern.df |
Table 4-3 Variables in the .df files that you can modify
DEFINES | List of macro definitions to use in every compilation rule |
INCLUDES | List of directories to search for header files |
VARIABLES | The 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 work 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 work directory (and subdirectories) belong; this is only useful in configurable actors |
FEXCEPTION | (ON/OFF); Compile with exception support |
FFPU | (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 debug with XRAY |
FVERBOSE | (ON/OFF): Verbose compilations |
FWARN | (STRICT/ON/OFF): Enable warnings production during compilation; with STRICT, warnings are treated as errors, the NUCLEUS component uses STRICT |