---
name: "metaxref"
section: "1"
platform: "linux"
package: "dist"
version: "1:3.5-236-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/metaxref"
---

# metaxref(1)

builds cross-reference file/unit/item information

## NAME

metaxref - builds cross-reference file/unit/item information

## SYNOPSIS

**metaxref** \[ -**dhkmsV** \] \[ **-f** *manifest* \] \[ -**L** *dir* \]

## DESCRIPTION

*Metaxref* is a program that scans all the files in your MANIFEST file and produces three files which contains information about how the files in that MANIFEST reference items defined by metaconfig's unit files.

The first two files, *I.fui* and *I.uif* reference the *file*, *unit* and *items* sorted differently. The third file, *Obsolete*, dumps all the known obsolete symbols, in which file they appear and the new symbol that should be used instead.

Note that obsolete symbols do not appear in the main cross-reference files, but are only listed in the *Obsolete* file. That's yet another incentive to use the new symbols in your sources. :-)

## OPTIONS

*Metaxref* recognizes the following options:

- **-d**

  Turn on debug mode.

- **-f *manifest***

  Use an alternate *manifest* file.

- **-h**

  Print help message and exit.

- **-k**

  Keep temporary *.MT* directory.

- **-m**

  Assume lots of memory and swap space. This will drastically improve the symbol lookup time in your source files, at the expense of memory usage.

- **-s**

  Turn on silent mode.

- **-L *dir***

  Override default library location (where the *U* units directory can be found).

- **-V**

  Print version number and exit.

- **-X** *file*

  When examining the source files, ignore any symbols listed in the *file*. This is useful in situations where a particular unit is known not to be needed for your package's portability targets, but your source files nevertheless contain occurrences of words that look to *metaconfig* like symbols defined in that unit. (For example, you might need the word "index" in a source file, but not need the unit that determines whether *strcpy* or *index* should be used.) The *file* can contain blank lines, comment lines introduced with '#', and lines containing a single symbol. If this option is not supplied, any  variable in *.package* is honored instead.

## AUTHOR

Harlan Stenn \<harlan@mumps.pfcs.com\>

## FILES

- LIB/dist/mcon/U/\*.U

  Public unit files.

- U/\*.U

  Private unit files

- I.fui

  Lists information sorted by file, unit and item.

- I.uif

  Lists information sorted by unit, item and file.

- Obsolete

  Lists all the obsolete symbols used by the sources.

  where LIB is /usr/share/dist.

## BUGS

Metaxref will list among the wanted items all those magic symbols defined within units on the ?M: lines. Those are relevant only when metaconfig is invoked with the **-M** option.

## SEE ALSO

[metaconfig(1)](/metaconfig/1.md), [metalint(1)](/metalint/1.md)
