cook_bom man page

cook_bom — bill of materials

Synopsis

cook_bom [ option... ] dirname [ outfile ]
cook_bom -Help
cook_bom -VERSion

Description

The cook_bom program is used to scan a directory and generate a cookbook fragment containing a bill of materials for that directory.  It also includes a recursive reference, via an “#include-cooked” directive, to the bills of materials for nested directories.

Output is sent to the standard output unless an output filename is specified.

Options

The following options are understood:

-DIRectory pathname

This option may be used to specify a directory search path, similar to cook(1) [search_list] functionality.

-Help

Provide some help with using the cook_bom program.

-IGnore string

This option may be used to specify filename patterns to be ignored. It may be given as many times as required.

-PREfix string

This option may be manipulate the name of the manifest files. Defaults to the empty string if not set.

-SUFfix string

This option may be manipulate the name of the manifest files. Defaults to ``/manifest.cook if not set.

-VERSion

Print the version of the cook_bom program being executed.

All other options will produce a diagnostic error.

Example

The intended use of this command is to automatically generate a project file manifest in an efficient way. If you have a cookbook of the form

all_files_in_. = ;
#include manifest.cook
manifest = [all_files_in_.];

set fingerprint mkdir unlink;

%0manifest.cook: ["if" [in "%0" ""] "then" "." "else" "%0"]
{
        cook_bom
                [addprefix '--dir=' [search_list]]
                "--ignore='*~'"
                [need]
                [target]
                ;
}

At the end of this fragment, the manifest variable contains a complete list of all files in the directory tree.  This variable may then be taken apart with the match_mask function to build ingredients lists.

The constructed manifest.cook files work for both whole-project and recursive (not recommended) builds.

Info

Cook Reference Manual