/*
 *	aegis - project change supervisor
 *	This file is in the Public Domain, 1995, Peter Miller.
 *
 * The make(1) program exists in many forms, usually one is available with each
 * UNIX version.  The one used in the writing of this section is GNU Make 3.70,
 * available by anonymous FTP from your nearest GNU archive site.  GNU Make was
 * chosen because it was the most powerful, it is widely available (usually for
 * little or no cost) and discussion of the alternatives (SunOS make, BSD 4.3
 * make, etc), would not be universally applicable.  "Plain vanilla" make
 * (with no transitive closure, no pattern rules, no functions) is not
 * sufficiently capable to satisfy the demands placed on it by aegis.
 *
 * As mentioned in the Dependency Maintenance Tool chapter of the User Guide,
 * make is not really sufficient, because it lacks dynamic include dependencies.
 * However, GNU Make has a form of dynamic include dependencies, and it has a
 * few quirks, but mostly works well.
 *
 * The other feature lacking in make is a search path.  While GNU Make has
 * functionality called VPATH, the implementation leaves something to be
 * desired, and can't be used for the search path functionality required by
 * aegis.  Because of this, the create_symlinks_before_build field of the
 * project config file is set to true so that aegis will arrange for the
 * development directory to be full of symbolic links, making it appear that
 * the entire project is in each change's development directory.
 */

/*
 * The build_command field of the project config file is used to invoke the
 * relevant build command.  This command tells make where to find the rules.
 * The ${s Makefile} expands to a path into the baseline during development
 * if the file is not in the change.  Look in aesub(5) for more information
 * about command substitutions.
 */
build_command =
	"gmake -f ${s Makefile} project=$p change=$c version=$v";

/*
 * The rules used in the User Guide all remove their targets before
 * constructing them, which qualifies them for the following entry in the
 * config file.  The files must be removed first, otherwise the baseline would
 * cease to be self-consistent.
 */
link_integration_directory = true;

/*
 * Another field to be set in this file is one which tells aegis to maintain
 * symbolic links between the development directory and the baseline.  This also
 * requires that rules remove their targets before constructing them, to ensure
 * that development builds do not attempt to write their results onto the
 * read-only versions in the baseline.
 */
create_symlinks_before_build = true;
