unifdef man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



UNIFDEF(1)							    UNIFDEF(1)

NAME
     unifdef - strip or reduce ifdefs in C code

SYNOPSIS
     unifdef [-Dname] [-Dname=string] [-Uname] [-ooutput] [-z] [input...]

DESCRIPTION
     Unifdef reads C source files and prints all input lines except those
     excluded by #ifdef constructs that refer to specified identifiers.

     The -D option defines name as a macro with the value 1, causing unifdef
     to simplify

	  #ifdef name
	  Included text
	  #else
	  Excluded text
	  #endif

     to just

	  Included text

     and contrariwise for #ifndef.

     The -U option works like -D except that name is undefined, so the #ifdef
     above would simplify to

	  Excluded text

     -Dname=string causes unifdef to replace occurrences of name with string
     when evaluating #if and #elif expressions.	 For example, unifdef -DBSD=43
     would rewrite

	  #if BSD == 43
	  4.3BSD code
	  #elif BSD == 42
	  4.2BSD code
	  #endif

     as

	  4.3BSD code

     All #ifdef constructs that refer to names not defined with -D or
     undefined with -U are passed unchanged to output.	Unifdef simplifies #if
     expressions that mix defined or undefined names with unknown names to

									Page 1

UNIFDEF(1)							    UNIFDEF(1)

     express operations on just the unknown names.  Thus unifdef -Dsgi would
     rewrite

	  #if defined sgi && !defined KERNEL

     as

	  #ifndef KERNEL

     and would preserve associated #else and #endif sections.  Unifdef
     simplifies #elif chains as if they consisted of #if constructs nested
     within #else sections.  For example, unifdef -DBSD=43 would rewrite

	  #if SYSV
	  System V code
	  #elif BSD == 42
	  4.2BSD code
	  #elif BSD == 43
	  4.3BSD code
	  #elif XENIX
	  Xenix code
	  #endif

     as

	  #if SYSV
	  System V code
	  #else
	  4.3BSD code
	  #if XENIX
	  Xenix code
	  #endif
	  #endif

     Unifdef rewrites #else and #endif lines to conform to ANSI C, by
     enclosing any tokens after these keywords with comment delimiters.	 For
     example,

	  #ifdef DEBUG
	  Debugging code
	  #endif DEBUG

     would be transcribed as

	  #ifdef DEBUG
	  Debugging code
	  #endif /* DEBUG */

									Page 2

UNIFDEF(1)							    UNIFDEF(1)

     Unifdef writes to standard output by default.  The -o option may be used
     in lieu of shell redirection to specify an output file.  More important,
     the file specified by output may be identical to one of the input files,
     or to standard input if there are no arguments.  In this case, unifdef
     will safely overwrite the input file.

     The -z option causes unifdef to simplify or eliminate sections controlled
     by #if constructs that test constant integer expressions.	By default,
     constructs such as

	  #if 0
	  Excluded text
	  #endif

     are left intact.

AUTHOR
     Brendan Eich, 03/16/89

SEE ALSO
     cc(1), cpp(1).

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net