/* * This is the project ``config'' file. It controls many aspects of * how Aegis interacts with your project. * * There are several sections of this file, each dealing with a different * aspect of the interaction between Aegis and the tools used to manage * yout project. */ /* * ------------------------------------------------------------------------- * * The build tool is delegated. */ /* * The build_command field of the config file is used to invoke the relevant * build command. The following command tells cook where to find the recipes. * The ${s Howto.cook} 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 = ""; /* cook -book ${s Howto.cook} search_path=$search_path \ project=$p change=$c version=$v -star -no-log -action -notouch"; /* * The recipes in the User Guide will all remove their targets before * constructing them, which qualifies them to use the following entry in the * config file. The targets MUST be removed first if this field is true, * otherwise the baseline would cease to be self-consistent. * * Fortunately, Cook has a nifty ``set unlink;'' statement which is * placed at the top of the cookbook. */ link_integration_directory = true; /* * ------------------------------------------------------------------------- * * The history tool is delegated. * * The fhist program was written by David I. Bell and is admirably * suited to providing a history mechanism with out the "cruft" that * SCCS and RCS impose. The fhist program also comes with two other * utilities, fcomp and fmerge, which use the same minimal difference * algorithm. * * Please note that the [# edit #] feature needs to be avoided, or the * -Fored_Update (-fu) flag needs to be used in addition to the * -Conditional_Update (-cu) flag, otherwise updates will complain that * ``Input file "XXX" contains edit A instead of B for module "YYY"'' * * The history_create_command and the history_put_command are * intentionally identical. This minimizes problems when using * branches. * * The ${quote ...} construct is used to quote filesnames whicg contain * shell special characters. A minimum of quoting is performed, so if * the filenames do not contail shell special characters, no quotes will * be used. */ /* * This command is used to create a new project history. The command is * always executed as the project owner. Note he the source is left in * the baseline. The following substitutions are available: * * ${Input} * absolute path of the source file * ${History} * absolute path of the history file * * The history_create_command and the history_put_command are * intentionally identical. This minimizes problems when using * branches. */ history_create_command = "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \ -p ${quote ${dirname $history}} -r"; /* * This command is used to get a specific edit back from history. The * command may be executed by developers. The following substitutions * are available: * * ${History} * absolute path of the history file * ${Edit} * edit number, as given by history_query_command * ${Output} * absolute path of the destination file * * Note that the destination filename will never look anything like the * history source filename, so the -p is essential. */ history_get_command = "fhist ${quote ${basename $history}} -e ${quote $e} \ -o ${quote $output} -p ${quote ${dirname $history}}"; /* * This command is used to add a new "top-most" entry to the history * file. This command is always executed as the project owner. Note * that the source file is left in the baseline. The following * substitutions are available: * * ${Input} * absolute path of source file * ${History} * absolute path of history file * * The history_create_command and the history_put_command are * intentionally identical. This minimizes problems when using * branches. */ history_put_command = "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \ -p ${quote ${dirname $history}} -r"; /* * This command is used to query what the history mechanism calls the * "top-most" edit of a history file. The result may be any arbitrary * string, it need not be anything like a number, just so long as it * uniquely identifies the edit for use by the history_get_command at a * later date. The edit number is to be printed on the standard output. * This command may be executed by developers. The following * substitutions are available: * * ${History} * absolute path of the history file */ history_query_command = "fhist ${quote ${basename $history}} -l 0 \ -p ${quote ${dirname $history}} -q"; /* * ------------------------------------------------------------------------- * * The difference and merge tools are delegated. */ /* * Compare two files using fcomp. The -w option produces an output of * the entire file, with insertions an deletions marked by "change bars" * in the left margin. This is superior to context difference, as it * shows the entire file as context. The -s option could be added to * compare runs of white space as equal. * * This command is used by aed(1) to produce a difference listing when * file in the development directory was originally copied from the * current version in the baseline. * * All of the command substitutions described in aesub(5) are available. * In addition, the following substitutions are also available: * * ${ORiginal} * The absolute path name of a file containing the version * originally copied. Usually in the baseline. * ${Input} * The absolute path name of the edited version of the file. * Usually in the development directory. * ${Output} * The absolute path name of the file in which to write the * difference listing. Usually in the development directory. * * An exit status of 0 means successful, even of the files differ (and * they usually do). An exit status which is non-zero means something * is wrong. * * The non-zero exit status may be used to overload this command with * extra tests, such as line length limits. The difference files must * be produced in addition to these extra tests. */ diff_command = "fcomp -w ${quote $original} ${quote $input} -o ${quote $output}"; /* * Compare three files using fmerge. Conflicts are marked in the * output. * * This command is used by aed(1) to produce a difference listing when a * file in the development directory is out of date compared to the * current version in the baseline. * * All of the command substitutions described in aesub(5) are available. * In addition, the following substitutions are also available: * * ${ORiginal} * The absolute path name of a file containing the common ancestor * version of ${MostRecent} and {$Input}. Usually the version * originally copied into the change. Usually in a temporary file. * ${Most_Recent} * The absolute path name of a file containing the most recent * version. Usually in the baseline. * ${Input} * The absolute path name of the edited version of the file. * Usually in the development directory. * ${Output} * The absolute path name of the file in which to write the * difference listing. Usually in the development directory. * * An exit status of 0 means successful, even of the files differ (and * they usually do). An exit status which is non-zero means something * is wrong. */ merge_command = "fmerge ${quote $original} ${quote $MostRecent} ${quote $input} \ -o ${quote $output} -c /dev/null"; /* * ------------------------------------------------------------------------- * * The new file templates are very handy. They allow all sorts of things * to be se automatically. You need to edit them to add your own name, * and copyright conditions. */ file_template = [ { pattern = [ "*" ]; body = "${read_file ${source etc/template/generic abs}}"; } ]; /* ------------------------------------------------------------------------- * * The integrate_begin_exceptions are files which are not hard linked * from the baseline to the integration directory. In this case, this * is done to ensure the version stmp is updated appropriately. */ integrate_begin_exceptions = [ ]; /* ------------------------------------------------------------------------- * * The trojan_horse_suspect field is a list of filename patterns which * indicate files which *could* host a Trojan horse attack. It makes * aedist --receive more cautions. It is NOT a silver bullet: just * about ANY file can host a Trojan, one way or the other. */ trojan_horse_suspect = [ ]; build_covers_all_architectures = true; test_command = "make test"; build_time_adjust=dont_adjust;