diff options
Diffstat (limited to 'static/netbsd/man1/tradcpp.1')
| -rw-r--r-- | static/netbsd/man1/tradcpp.1 | 361 |
1 files changed, 361 insertions, 0 deletions
diff --git a/static/netbsd/man1/tradcpp.1 b/static/netbsd/man1/tradcpp.1 new file mode 100644 index 00000000..97e4eddf --- /dev/null +++ b/static/netbsd/man1/tradcpp.1 @@ -0,0 +1,361 @@ +.\" +.\" Copyright (c) 2013 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by David A. Holland. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd June 11, 2013 +.Dt TRADCPP 1 +.Os +.Sh NAME +.Nm tradcpp +.Nd traditional (K&R-style) C macro preprocessor +.Sh SYNOPSIS +.Nm tradcpp +.Op Fl options +.Op Ar input-file Op Ar output-file +.Sh DESCRIPTION +The +.Nm +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 +.Xr imake 1 , +particularly those that depend on preservation of whitespace. +.Pp +The chief ways in which traditional cpp differs from +Standard C are: +.Bl -bullet -offset indent +.It +Macro arguments are expanded within quoted strings. +There is no stringize operator. +.It +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. +.It +Whitespace is preserved, and in particular tabs are not expanded into +spaces. +Furthermore, additional whitespace is not injected. +.El +.Sh OPTIONS +.Nm +has many options, many of which are defined for compatibility with +.Xr gcc 1 +or other compilers. +Many of the options are not yet implemented. +.\" The option lists have been sorted in what I hope is a sensible +.\" order. Please don't arbitrarily alphabetize them. +.Ss Common Options +.Bl -tag -width bubblebabble +.It Fl C +Retain comments in output. +.It Fl Dmacro[=expansion] +Provide a definition for the named macro. +If no expansion is provided, the value +.Dq 1 +is used. +Note that like many Unix compilers, +.Nm +does not accept a space between the +.Dq D +and the macro name. +.It Fl Ipath +Add the specified path to the main list of include directories. +Note that like many Unix compilers, +.Nm +does not accept a space between the +.Dq I +and the directory name. +.It Fl nostdinc +Do not search the standard system include directories. +.It Fl P +Suppress line number information in the output. +Currently line number information is not generated at all and this +option has no effect. +.It Fl Umacro +Remove any existing definition for the named macro. +Note that like many Unix compilers, +.Nm +does not accept a space between the +.Dq U +and the macro name. +.It Fl undef +Remove all predefined macros. +.El +.Ss Warning Options +Warning options can be disabled or enabled by inserting, or not, the +string +.Dq no- +between the +.Dq W +and the warning name. +Herein the +.Dq Fl Wno- +form is shown for options that are enabled by default. +.Bl -tag -width bubblebabble +.It Fl Wall +Turn on all warnings. +The option +.Fl Wno-all +disables only the warnings that are disabled by default. +.It Fl w +Turn off all warnings. +.It Fl Werror +Make warnings into fatal errors. +.It Fl Wcomment +Warn about nested comments. +.It Fl Wno-endif-labels +Don't warn about symbols attached to #endif directives. +(The warning is currently not implemented.) +.It Fl Wundef +Warn about undefined symbols appearing in #if and #elif expressions. +.It Fl Wunused-macros +Warn about macros that are defined and never used. +Not implemented. +.El +.Ss Depend Options +.Bl -tag -width bubblebabble +.It Fl M +Generate dependency information for +.Xr make 1 +on the standard output, instead of preprocessing. +Not implemented. +.It Fl MD +Like +.Fl M +but skip system headers. +Not implemented. +.It Fl MM +Like +.Fl M +but write the dependency information to a file named after the input +file with extension +.Pa \.d +and preprocess normally to standard output. +Not implemented. +.It Fl MMD +Like +.Fl MM +but skip system headers. +Not implemented. +.It Fl MF Ar file +Send dependency output to the named file instead of the default +location. +Not implemented. +.It Fl MG +When generating dependency information, assume that missing files are +generated instead of failing. +Not implemented. +.It Fl MP +Issue dummy rules for all include files. +This prevents +.Xr make 1 +from choking if an include file is removed. +Not implemented. +.It Fl MQ Ar target +Same as +.Fl MT +except that any +.Xr make 1 +metacharacters appearing in the target are escaped. +.It Fl MT Ar target +Set the name of the +.Xr 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 +.Pa .o . +.\" If this option is given more than once, all named targets will +.\" be emitted. +.\" (The current operating mode framework doesn't support that.) +.El +.Ss More Include Path Options +.Bl -tag -width bubblebabble +.It Fl idirafter Ar path +Add the specified path to the +.Dq afterwards +include path. +This path is searched after all directories specified with +.Fl I +and the standard system directories. +Directories on this path are treated as containing system include +files. +.It Fl imacros Ar file +Read in +.Ar file +prior to reading the main input file, and preprocess it, but throw +away the output and retain only the macro definitions. +.It Fl include Ar file +Read in and preprocess +.Ar file +prior to reading the main input file. +.It Fl iprefix Ar prefix +Set the path prefix used with the +.Fl iwithprefix +option. +.It Fl iquote Ar path +Add +.Ar path +to the list of directories searched for include directives written +with quotes. +This list is not searched for include directives written with angle +brackets. +.It Fl iremap Ar string:replacement +Substitute +.Ar replacement +for +.Ar string +in the +.Dv __FILE__ +built-in macro. +Not supported. +.It Fl isysroot Ar path +Use +.Ar path +as the +.Dq system root , +that is, the directory under which the standard system paths are found. +.It Fl isystem Ar path +Add +.Ar path +to the list of system include directories. +This list is searched after the list given with +.Ar I . +Files found on this path are treated as system headers. +.It Fl iwithprefix Ar dir +Splice +.Ar dir +onto the prefix given with +.Fl iprefix +and add this directory as if it were specified with +.Fl idirafter . +.It Fl iwithprefixbefore +Like +.Fl iwithprefix +but adds the result as if it were specified with +.Fl I . +.El +.Ss Diagnostic Options +.Bl -tag -width bubblebabble +.It Fl debuglog Ar file +Write a trace of actions and operations to +.Ar file +as the input is processed. +Meant for debugging problems in complex substitution schemes fed to +.Nm , +such as those used by +.Xr imake 1 . +.It Fl dD +Dump all macro definitions, except for the predefined macros, after +the normal preprocessing output. +Not implemented. +.It Fl dI +Dump all include directives along with the normal preprocessing +output. +Not implemented. +.It Fl dM +Dump all macro definitions instead of the normal preprocessing +output. +Not implemented. +.It Fl dN +Like +.Fl dD +but emits only macro names and not the expansions. +Not implemented. +.It Fl H +Output a trace of the include tree as it gets processed. +Not implemented. +.El +.Ss Other Options +.Bl -tag -width bubblebabble +.It Fl CC +Retain comments in output. +Same as +.Fl C , +accepted for compatibility with +.Xr gcc 1 . +.It Fl fdollars-in-identifiers , Fl fno-dollars-in-identifiers +Enable +.Pq or disable, respectively +the use of the dollar sign in identifiers. +Not implemented. +.It Fl ftabstop=num +Set the tab width to the specified value, for reporting column +positions in diagnostics. +The default is 8. +Not implemented. +.It Fl std=standard +Ask +.Nm +to conform to the named standard. +The default, and the only supported value, is +.Dq krc . +.It Fl traditional +This option is accepted for compatibility with +.Xr gcc 1 +and ignored. +.It Fl x Ar lang +Adjust the preprocessor for the given language. +The only values accepted for +.Ar lang +are +.Dq assembler-with-cpp +and +.Dq c , +neither of which have any effect on the behavior of +.Nm . +.El +.Sh FILES +The default list of directories searched for include files is: +.Bl -item -offset indent -compact +.It +.Pa /usr/local/include +.It +.Pa /usr/include +.El +.Sh SEE ALSO +.Xr cc 1 , +.Xr cpp 1 , +.Xr make 1 +.Sh 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. +.Sh HISTORY +The original version of +.Nm +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. +.\" .Sh AUTHORS +.\" .An David A. Holland +.Sh BUGS +Probably plenty. |
