## 10 Configuration Files and Variables. ¶

As shown in the previous chapters, GNU `cflow` offers a rich set of options for fine tuning its operation (See Complete Listing of `cflow` Options., for a full list). You will likely use some of them frequently, while using others only from time to time, if at all.

To facilitate its use, GNU `cflow` provides a notion of profiles. A profile is a text file containing a set of often used command line options. The option `--profile=name` instructs `cflow` to read the options from the file name. If the file does not exist, the program will look for file `name.cfo` 5 in a predefined set of directories, called profile search path. By default, these are:

1. ~/.cflow.d
2. pkgdatadir/site-init
3. pkgdatadir/site-init/1.8

where pkgdatadir is package data directory, defined when compiling the package. Normally it is `/usr/share/cflow` or `/usr/local/share/cflow`.

To see the actual search path value, run `cflow --help`. The value is shown near the end of its output.

The search path can be modified from the command line. The option `--prepend-path=dir` adds directory dir at the beginning of the search path.

The syntax of a profile is fairly simple: options are separated by any amount of whitespace characters (including newlines). Comments are introduced by a hash sign and extend to the end of line. For example:

    # Sources use gcc extensions
    --profile=gcc

    # Request brief output
    --brief

    # Preprocess sources
    --cpp='cc -E' -DHAVE_CONFIG_H

The file name `default.cfo` is special: this file is a default profile. At startup, `cflow` looks for it in the search path and, if found, loads it before processing any command line options. There are, however, two notable exceptions: options `--prepend-path` and `-q` (see below) are always processed first, even before loading the default profile, no matter where they are placed in the command line.6

The `-q` option mentioned above disables loading the default profile.

It may sometimes be necessary to cancel the effect of a command line option. For example, you might specify `--brief` in your profile, but then occasionally need to obtain verbose graph. To cancel the effect of any GNU `cflow` option that does not take arguments, prepend ‘`no-`’ to the corresponding long option name. Thus, specifying `--no-brief` cancels the effect of the previous `--brief` option.

#### Footnotes

##### (5)

The profile suffix is an abbreviation of cflow options.

##### (6)

The special nature of these two command line options means also that they are meaningless if used in profiles. If used in a profile, these two options are silently ignored.