Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TRADCPP(1)		     General Commands Manual		      TRADCPP(1)

NAME
     tradcpp -- traditional (K&R-style) C macro preprocessor

SYNOPSIS
     tradcpp [-options] [input-file [output-file]]

DESCRIPTION
     The  tradcpp command provides a traditional K&R-style C macro preprocessor.
     It is intended to be suitable for historical Unix uses of the preprocessor,
     such as imake(1), particularly those that depend on preservation of  white-
     space.

     The chief ways in which traditional cpp differs from Standard C are:

	   *   Macro  arguments are expanded within quoted strings.  There is no
	       stringize operator.

	   *   There is no token pasting operator; tokens can be concatenated by
	       placing comments between them.  This process is also not  limited
	       to valid C language tokens.

	   *   Whitespace  is preserved, and in particular tabs are not expanded
	       into spaces.  Furthermore, additional whitespace is not injected.

OPTIONS
     tradcpp has many options, many of which are defined for compatibility  with
     gcc(1) or other compilers.  Many of the options are not yet implemented.

   Common Options
     -C 	   Retain comments in output.

     -Dmacro[=expansion]
		   Provide a definition for the named macro.  If no expansion is
		   provided,  the  value  "1" is used.	Note that like many Unix
		   compilers, tradcpp does not accept a space  between	the  "D"
		   and the macro name.

     -Ipath	   Add	the  specified path to the main list of include directo-
		   ries.  Note that like many Unix compilers, tradcpp  does  not
		   accept a space between the "I" and the directory name.

     -nostdinc	   Do not search the standard system include directories.

     -P 	   Suppress  line  number  information in the output.  Currently
		   line number information is not generated at all and this  op-
		   tion has no effect.

     -Umacro	   Remove  any	existing  definition  for the named macro.  Note
		   that like many Unix compilers,  tradcpp  does  not  accept  a
		   space between the "U" and the macro name.

     -undef	   Remove all predefined macros.

   Warning Options
     Warning options can be disabled or enabled by inserting, or not, the string
     "no-"  between  the  "W"  and the warning name.  Herein the "-Wno-" form is
     shown for options that are enabled by default.

     -Wall	   Turn on all warnings.  The option -Wno-all disables only  the
		   warnings that are disabled by default.

     -w 	   Turn off all warnings.

     -Werror	   Make warnings into fatal errors.

     -Wcomment	   Warn about nested comments.

     -Wno-endif-labels
		   Don't warn about symbols attached to #endif directives.  (The
		   warning is currently not implemented.)

     -Wundef	   Warn  about	undefined symbols appearing in #if and #elif ex-
		   pressions.

     -Wunused-macros
		   Warn about macros that are defined and never used.	Not  im-
		   plemented.

   Depend Options
     -M 	   Generate  dependency  information for make(1) on the standard
		   output, instead of preprocessing.  Not implemented.

     -MD	   Like -M but skip system headers.  Not implemented.

     -MM	   Like -M but write the dependency information to a file  named
		   after  the  input  file with extension .d and preprocess nor-
		   mally to standard output.  Not implemented.

     -MMD	   Like -MM but skip system headers.  Not implemented.

     -MF file	   Send dependency output to the named file instead of	the  de-
		   fault location.  Not implemented.

     -MG	   When  generating  dependency information, assume that missing
		   files are generated instead of failing.  Not implemented.

     -MP	   Issue dummy rules  for  all	include  files.   This	prevents
		   make(1)  from choking if an include file is removed.  Not im-
		   plemented.

     -MQ target    Same as -MT except that any make(1) metacharacters  appearing
		   in the target are escaped.

     -MT target    Set the name of the make(1) target appearing in the generated
		   dependency information.  The default is the name of the input
		   file  with  its  suffix  replaced  with the suffix for object
		   files, normally .o.

   More Include Path Options
     -idirafter path
		   Add the specified path  to  the  "afterwards"  include  path.
		   This path is searched after all directories specified with -I
		   and	the  standard  system  directories.  Directories on this
		   path are treated as containing system include files.

     -imacros file
		   Read in file prior to reading the main input file,  and  pre-
		   process  it,  but  throw  away the output and retain only the
		   macro definitions.

     -include file
		   Read in and preprocess file prior to reading the  main  input
		   file.

     -iprefix prefix
		   Set the path prefix used with the -iwithprefix option.

     -iquote path  Add	path to the list of directories searched for include di-
		   rectives written with quotes.  This list is not searched  for
		   include directives written with angle brackets.

     -iremap string:replacement
		   Substitute  replacement  for  string in the __FILE__ built-in
		   macro.  Not supported.

     -isysroot path
		   Use path as the "system root", that is, the	directory  under
		   which the standard system paths are found.

     -isystem path
		   Add	path  to  the  list of system include directories.  This
		   list is searched after the list given with I.  Files found on
		   this path are treated as system headers.

     -iwithprefix dir
		   Splice dir onto the prefix given with -iprefix and  add  this
		   directory as if it were specified with -idirafter.

     -iwithprefixbefore
		   Like -iwithprefix but adds the result as if it were specified
		   with -I.

   Diagnostic Options
     -debuglog file
		   Write  a trace of actions and operations to file as the input
		   is processed.  Meant for debugging problems in  complex  sub-
		   stitution  schemes  fed  to	tradcpp,  such	as those used by
		   imake(1).

     -dD	   Dump all macro definitions, except for the predefined macros,
		   after the normal preprocessing output.  Not implemented.

     -dI	   Dump all include directives along with the normal preprocess-
		   ing output.	Not implemented.

     -dM	   Dump all macro definitions instead of the normal  preprocess-
		   ing output.	Not implemented.

     -dN	   Like  -dD  but emits only macro names and not the expansions.
		   Not implemented.

     -H 	   Output a trace of the include tree as it gets processed.  Not
		   implemented.

   Other Options
     -CC	   Retain comments in output.  Same as -C, accepted for compati-
		   bility with gcc(1).

     -fdollars-in-identifiers, -fno-dollars-in-identifiers
		   Enable (or disable, respectively) the use of the dollar  sign
		   in identifiers.  Not implemented.

     -ftabstop=num
		   Set	the tab width to the specified value, for reporting col-
		   umn positions in diagnostics.  The default is 8.  Not  imple-
		   mented.

     -std=standard
		   Ask	tradcpp  to conform to the named standard.  The default,
		   and the only supported value, is "krc".

     -traditional  This option is accepted for compatibility with gcc(1) and ig-
		   nored.

     -x lang	   Adjust the preprocessor for the  given  language.   The  only
		   values  accepted  for  lang are "assembler-with-cpp" and "c",
		   neither of which have any effect on the behavior of tradcpp.

FILES
     The default list of directories searched for include files is:
	   /usr/local/include
	   /usr/include

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

STANDARDS
     None.  The whole point of a traditional cpp is that it  reflects  practices
     in pre-standardization implementations of C.  Some information is available
     from  the	first edition of Kernighan and Ritchie.  Much of the rest of the
     behavior is based on lore, pragmatism, material encountered  in  the  wild,
     and comparison to other implementations.

HISTORY
     The original version of tradcpp was written one evening in late 2010.  This
     version had some problems and was put aside.  The first working version was
     released in June 2013.

BUGS
     Probably plenty.

FreeBSD ports 15.quarterly	  June 11, 2013 		      TRADCPP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tradcpp&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help