---
name: "ifnames"
section: "1"
platform: "linux"
package: "autoconf"
version: "2.73-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ifnames"
---

# ifnames(1)

Extract CPP conditionals from a set of files

## NAME

ifnames - Extract CPP conditionals from a set of files

## SYNOPSIS

**ifnames** \[*OPTION*\]... \[*FILE*\]...

## DESCRIPTION

Scan all of the C source FILES (or the standard input, if none are given) and write to the standard output a sorted list of all the identifiers that appear in those files in '#if', '#ifdef', '#ifndef', '#elif', '#elifdef', or '#elifndef' directives.  Print each identifier on a line, followed by a space-separated list of the files in which that identifier occurs.

- **-h**, **--help**

  print this help, then exit

- **-V**, **--version**

  print version number, then exit

## AUTHOR

Written by David J. MacKenzie and Paul Eggert.

## REPORTING BUGS

Report bugs to ⟨bug-autoconf@gnu.org⟩, or via Savannah: ⟨https://savannah.gnu.org/support/?group=autoconf⟩.

## COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+/Autoconf: GNU GPL version 3 or later \<https://gnu.org/licenses/gpl.html\>, \<https://gnu.org/licenses/exceptions.html\>\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## SEE ALSO

[**autoconf**(1)](/autoconf/1.md), [**automake**(1)](/automake/1.md), [**autoreconf**(1)](/autoreconf/1.md), [**autoupdate**(1)](/autoupdate/1.md), [**autoheader**(1)](/autoheader/1.md), [**autoscan**(1)](/autoscan/1.md), [**config.guess**(1)](/config.guess/1.md), [**config.sub**(1)](/config.sub/1.md), [**ifnames**(1)](/ifnames/1.md), [**libtool**(1)](/libtool/1.md).

The full documentation for Autoconf is maintained as a Texinfo manual. To read the manual locally, use the command

-

  **info autoconf**

You can also consult the Web version of the manual at ⟨https://gnu.org/software/autoconf/manual/⟩.
