Command Line Options

The only required argument for all commands using “undc” is the project database file. The following table lists the command line options for “undc”.

Option
Description
-a[dd] file [files]
-a[dd] @filelist.txt
Specify one or more files to add to the database. Files can be specified in two ways:
  • Individually: Separate filenames with spaces. For example -add *.h *.c adds all *.h and *.c files in the current directory to the project. Absolute paths are added to the project. For relative paths, use the -reladd option.
  • In a text file: Use -add @filelist.txt to add all files that are listed in that file to the project. The file must contain one file per line. Full or relative paths may be used. A # sign in the first column of a line in the listfile indicates a comment.
Wildcards are expanded by the command shell. This option may be used multiple times on the same command line.
-addfoundincludes
Automatically adds any files found via the #include mechanism to the project. This means more detailed information will be available about the entities provided from those files. Use this option with care, as it could make the database much larger than needed.
-create [project file]
Create a new project. Creating a new database overwrites an existing database of the same name.
-db database
Specify the name of the database to create or open. An extension of .udc is provided if no extension is given.
-define definition @definitionfile
Defines a macro which is then saved to the project database for subsequent runs. This is an optional argument which may be used multiple times on the same command line.

A definition prefaced by @ may be used to specify a file that contains macro definitions of the form:
#define foo bar
foo=bar
foo bar
which all define a macro “foo” as “bar”
-d[elete] file [files]
-d[elete] @filelist.txt
Specify one or more files to delete from the database. Wildcards are expanded by the command shell.
Files can be specified in two ways: individually, separated by spaces, or in a text file, with one file per line.
For example -delete *.h *.c removes all *.h and *.c files in the current directory from the project. Or use -delete @filelist.txt to delete all files that are listed in that file to the project. The file must contain one file per line. Full or relative paths may be used. A # sign in the first column of a line in the listfile indicates a comment.
This option may be used multiple times on the same command line.
-error file
Specify a file to which error messages should be logged. If omitted then errors are sent to the standard error destination.
-h[elp]
Show the command line options.
-include includes @includes
An optional argument to add a path to the analysis include path. This include path will be saved in your project database file. This argument may be specified multiple times on the same command line

A file prefaced by @ can be used to list include directories (one per line).
-list [status]
Lists files in the project. Specify “status” to report the current status of each file: “Okay” if current or “Changed” if file has been modified since last parse.
-list_files
Outputs to the screen the list of source files configured in the project. Useful for as input to the “-add” option for recreating a project.
-list_defines
Outputs to the screen the list of macros defined in the project. Useful as input to the -defines option for recreating a project.
-list_includes
Outputs to the screen the list of include paths configured in the project. Useful as input to the -includes option for recreating a projects configuration.
-no_cache
Turns off the c-preprocessor include cache. The include cache remembers what has been included and reuses information if that include is encountered. This trades memory for speed, but memory use can grow large. In some situations, particularly in large projects or on memory limited machines it may be better to turn the cache off. Note that there are also situations where turning the include cache on or off can affect analysis results, particularly where include actions are dependent on where they are included.
-quiet
Use for quiet processing, i.e. status messages will not be written to the screen. This argument is optional. By default, some status messages are written to standard output.
-rebuild
Performs a full reparse of all project source files whether they have been modified or not.
-refresh
Performs an incremental reparse of the project source files. Only modified and dependent files are re-parsed. This is the default action when no other option is specified. If project parameters have changed since the last build, be sure to use -rebuild instead of -refresh.
-reladd
Add a relative source file reference to a project.
-rellist
List source files with relative references.
-v[erbose]
Use for verbose processing, i.e. status messages will be written to the screen. This argument is optional.

The following sections show example uses of undc.


Scientific Toolworks, Inc.
http://www.scitools.com