2 * This is the project ``config'' file. It controls many aspects of
3 * how Aegis interacts with your project.
5 * There are several sections of this file, each dealing with a different
6 * aspect of the interaction between Aegis and the tools used to manage
11 * -------------------------------------------------------------------------
13 * The build tool is delegated.
17 * The build_command field of the config file is used to invoke the relevant
18 * build command. The following command tells cook where to find the recipes.
19 * The ${s Howto.cook} expands to a path into the baseline during development
20 * if the file is not in the change. Look in aesub(5) for more information
21 * about command substitutions.
26 /* cook -book ${s Howto.cook} search_path=$search_path \
27 project=$p change=$c version=$v -star -no-log -action -notouch";
30 * The recipes in the User Guide will all remove their targets before
31 * constructing them, which qualifies them to use the following entry in the
32 * config file. The targets MUST be removed first if this field is true,
33 * otherwise the baseline would cease to be self-consistent.
35 * Fortunately, Cook has a nifty ``set unlink;'' statement which is
36 * placed at the top of the cookbook.
38 link_integration_directory = true;
42 * -------------------------------------------------------------------------
44 * The history tool is delegated.
46 * The fhist program was written by David I. Bell and is admirably
47 * suited to providing a history mechanism with out the "cruft" that
48 * SCCS and RCS impose. The fhist program also comes with two other
49 * utilities, fcomp and fmerge, which use the same minimal difference
52 * Please note that the [# edit #] feature needs to be avoided, or the
53 * -Fored_Update (-fu) flag needs to be used in addition to the
54 * -Conditional_Update (-cu) flag, otherwise updates will complain that
55 * ``Input file "XXX" contains edit A instead of B for module "YYY"''
57 * The history_create_command and the history_put_command are
58 * intentionally identical. This minimizes problems when using
61 * The ${quote ...} construct is used to quote filesnames whicg contain
62 * shell special characters. A minimum of quoting is performed, so if
63 * the filenames do not contail shell special characters, no quotes will
68 * This command is used to create a new project history. The command is
69 * always executed as the project owner. Note he the source is left in
70 * the baseline. The following substitutions are available:
73 * absolute path of the source file
75 * absolute path of the history file
77 * The history_create_command and the history_put_command are
78 * intentionally identical. This minimizes problems when using
81 history_create_command =
82 "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \
83 -p ${quote ${dirname $history}} -r";
86 * This command is used to get a specific edit back from history. The
87 * command may be executed by developers. The following substitutions
91 * absolute path of the history file
93 * edit number, as given by history_query_command
95 * absolute path of the destination file
97 * Note that the destination filename will never look anything like the
98 * history source filename, so the -p is essential.
100 history_get_command =
101 "fhist ${quote ${basename $history}} -e ${quote $e} \
102 -o ${quote $output} -p ${quote ${dirname $history}}";
105 * This command is used to add a new "top-most" entry to the history
106 * file. This command is always executed as the project owner. Note
107 * that the source file is left in the baseline. The following
108 * substitutions are available:
111 * absolute path of source file
113 * absolute path of history file
115 * The history_create_command and the history_put_command are
116 * intentionally identical. This minimizes problems when using
119 history_put_command =
120 "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \
121 -p ${quote ${dirname $history}} -r";
124 * This command is used to query what the history mechanism calls the
125 * "top-most" edit of a history file. The result may be any arbitrary
126 * string, it need not be anything like a number, just so long as it
127 * uniquely identifies the edit for use by the history_get_command at a
128 * later date. The edit number is to be printed on the standard output.
129 * This command may be executed by developers. The following
130 * substitutions are available:
133 * absolute path of the history file
135 history_query_command =
136 "fhist ${quote ${basename $history}} -l 0 \
137 -p ${quote ${dirname $history}} -q";
140 * -------------------------------------------------------------------------
142 * The difference and merge tools are delegated.
146 * Compare two files using fcomp. The -w option produces an output of
147 * the entire file, with insertions an deletions marked by "change bars"
148 * in the left margin. This is superior to context difference, as it
149 * shows the entire file as context. The -s option could be added to
150 * compare runs of white space as equal.
152 * This command is used by aed(1) to produce a difference listing when
153 * file in the development directory was originally copied from the
154 * current version in the baseline.
156 * All of the command substitutions described in aesub(5) are available.
157 * In addition, the following substitutions are also available:
160 * The absolute path name of a file containing the version
161 * originally copied. Usually in the baseline.
163 * The absolute path name of the edited version of the file.
164 * Usually in the development directory.
166 * The absolute path name of the file in which to write the
167 * difference listing. Usually in the development directory.
169 * An exit status of 0 means successful, even of the files differ (and
170 * they usually do). An exit status which is non-zero means something
173 * The non-zero exit status may be used to overload this command with
174 * extra tests, such as line length limits. The difference files must
175 * be produced in addition to these extra tests.
178 "fcomp -w ${quote $original} ${quote $input} -o ${quote $output}";
181 * Compare three files using fmerge. Conflicts are marked in the
184 * This command is used by aed(1) to produce a difference listing when a
185 * file in the development directory is out of date compared to the
186 * current version in the baseline.
188 * All of the command substitutions described in aesub(5) are available.
189 * In addition, the following substitutions are also available:
192 * The absolute path name of a file containing the common ancestor
193 * version of ${MostRecent} and {$Input}. Usually the version
194 * originally copied into the change. Usually in a temporary file.
196 * The absolute path name of a file containing the most recent
197 * version. Usually in the baseline.
199 * The absolute path name of the edited version of the file.
200 * Usually in the development directory.
202 * The absolute path name of the file in which to write the
203 * difference listing. Usually in the development directory.
205 * An exit status of 0 means successful, even of the files differ (and
206 * they usually do). An exit status which is non-zero means something
210 "fmerge ${quote $original} ${quote $MostRecent} ${quote $input} \
211 -o ${quote $output} -c /dev/null";
214 * -------------------------------------------------------------------------
216 * The new file templates are very handy. They allow all sorts of things
217 * to be se automatically. You need to edit them to add your own name,
218 * and copyright conditions.
225 body = "${read_file ${source etc/template/generic abs}}";
230 /* -------------------------------------------------------------------------
232 * The integrate_begin_exceptions are files which are not hard linked
233 * from the baseline to the integration directory. In this case, this
234 * is done to ensure the version stmp is updated appropriately.
237 integrate_begin_exceptions = [ ];
242 /* -------------------------------------------------------------------------
244 * The trojan_horse_suspect field is a list of filename patterns which
245 * indicate files which *could* host a Trojan horse attack. It makes
246 * aedist --receive more cautions. It is NOT a silver bullet: just
247 * about ANY file can host a Trojan, one way or the other.
250 trojan_horse_suspect = [ ];
252 build_covers_all_architectures = true;
254 test_command = "make test";
256 build_time_adjust=dont_adjust;