-----------------------------------------------------------------------
MKDEP - Generate Makefile dependencies - 2.0.014

Copyright (c) 1990-97 Tarma Software Research Ltd. All rights reserved.

MkDep is free for your own personal use, but it is *not* in the public
domain. Tarma Software Research Ltd. makes no warranties of any kind
and does not accept any responsibility for the consequences of using
MkDep, unless they are positive.

Send your feedback and comments to:
	Ron van der Wal, Tarma Software Research Ltd. <ron@tarma.com>
-----------------------------------------------------------------------

Syntax:
	MkDep [options] filename...

MkDep scans the given set of files for #include directives and creates
a dependency list corresponding to the #include graph. This dependency
list is suitable for inclusion in a Makefile. Wildcards are allowed in
the filename specification.

Options:
	/Adep    Add 'dep' as additional dependency
	/B       Borland compatible #include "file.h" processing
	/E       Ignore INCLUDE and EXCLUDE environment variables
	/Ipath   Add 'path' to the list of INCLUDE directories
	/L       Generate dependency levels instead of dependency file
	/Ofile   Send output to 'file' instead of MAKEFILE.DEP
	/Pprefix Add 'prefix' to dependent
	/T       Generate dependency tree instead of dependency file
	/V       Verbose output
	/W       Wrap dependency lines instead of creating long ones
	/Xpath   Add 'path' to the list of EXCLUDE directories

Output:
	By default, the output is sent to one of the following the files:

	- MAKEFILE.DEP in case of a plain dependency list
	- LEVELS.DEP in case of dependency level report (/L option)
	- TREE.DEP in case of a dependency tree report (/T option)

	Any default can be changed through the /O option.

	In addition to the .DEP output files, a MKDEP.LOG file is created
	that contains information about files processed and missing files.

Include processing:
	By default, MkDep uses the contents of the INCLUDE environment
	variable, combined with any /I paths on the command line, to
	determine where to look for #included files. The search algorithm
	for #included files is as follows:
	
	#include "filename"
		searches the directory of enclosing file first, then all INCLUDE
		paths. Exception: if /B (Borland compatibility) is specified,
		the current working directory is searched first, followed by the
		INCLUDE paths.

	#include <filename>
		searches all INCLUDE paths (only).
	
	The EXCLUDE environment variable and/or the /X command line option
	can be used to specify directories that must be excluded from the
	dependency list, even though they might be implied by the INCLUDE
	paths. This is particularly useful if one or more subdirectories
	need to be excluded. For example, given:

		#include <peanuts\defs.h>
		#include <tlx\501\defs.h>

	off a directory tree d:\dev, the options:

		/Id:\dev /Xd:\dev\tlx

	ensure that "d:\dev\peanuts\defs.h" is included in the dependency
	list, while "d:\dev\tlx\501\defs.h" (or anything else that starts
	with "d:\dev\tlx") is not. Normally, this option is used to exclude
	system directories and other static header file collections from
	the dependency lists.

	If the /E option is given the contents of the INCLUDE and EXCLUDE
	environment variables (if any) are ignored and only /I and /X have
	any effect.

Known limitations:
	- #include file searching does not conform exactly to the Microsoft
	Visual C/C++ algorithm; this may lead to discrepancies sometimes.

	- There is currently no way to specify paths or filenames with
	embedded spaces.

	- #include directives that use macros, such as:

		#include INC_FORM(defs.h)

	are currently not recognized properly.

	- Extension-less header filenames, as in:

		#include <iostream>

	are properly handled only if an extension-less header file exists.
