1UCPP(1)                     General Commands Manual                    UCPP(1)
2
3
4

NAME

6       ucpp - C preprocessor
7

SYNOPSIS

9       ucpp [ options ] [ file ]
10

DESCRIPTION

12       ucpp  is a C preprocessor mostly compatible with ISO-C99.  It is rather
13       strict and uses only a small amount of memory. It uses  standard  input
14       as primary input if no file argument is given.
15

OPTIONS

17       There are several classes of options.
18
19       Language Options
20
21       -C     keep comments in the output.
22
23       -s     if  a rogue '#' is encountered, do not emit an error and keep it
24              in the output.
25
26       -l     supress the emission of '#line' directives in the output.
27
28       -lg    convert the '#line' to the gcc-style equivalent.
29
30       -CC    disable C++-like comments (a '//' begins a comment,  up  to  the
31              end  of  the  line). Use this option to get closer to C90 behav‐
32              iour.
33
34       -a, -na
35              handle assertions (defined with #assert); -a  also  defines  the
36              standard  assertions  #machine , #cpu and #system (see -e to get
37              the local definition of such assertions).
38
39       -a0    disable assertion support.
40
41       -V     disable support for macros with a variable number of  arguments:
42              in  C99, a macro may be declared with ...  as the last argument;
43              inside the replacement list, __VA_ARGS__ is  replaced  with  the
44              optional  extra  arguments  given in the call to the macro.  Use
45              this option to get closer to C90 behaviour.
46
47       -u     enable UTF-8 support: with this option, the source is considered
48              as an ISO/10646 source, encoded in UTF-8. Characters represented
49              as two bytes or more are considered  as  alphabetic  characters,
50              like letters, and therefore usable in identifiers. These charac‐
51              ters hold the same syntactic value than the  corresponding  Uni‐
52              versal Character Names.
53
54       -X     enable  -a,  -u  and -Y.  This should make ucpp behave closer to
55              what is requested from a "modern" C preprocessor.
56
57       -c90   enable -V and -CC, and do  not  define  __STDC_VERSION__.   This
58              should make ucpp mimic older C90 behaviour.
59
60       -t     disable  trigraph  support;  this  seems to be required for some
61              legacy code.
62
63       Warning Options
64
65       -wt    emit a final warning when trigraphs are encountered.
66
67       -wtt   emit warnings for each trigraph encountered.
68
69       -wa    emit annoying warnings (these are usually useless).
70
71       -w0    supress standard warnings.
72
73       Directory Options
74
75       -Idirectory
76
77       -I directory
78              add directory to the include path, before the  standard  include
79              path.
80
81       -Jdirectory
82
83       -J directory
84              add  directory  to  the include path, after the standard include
85              path.
86
87       -zI    do not use the standard (compile-time) include path.
88
89       -M     emit only the names of encountered files, separated  by  spaces;
90              this  is intended for automatic generation of Makefile dependen‐
91              cies.
92
93       -Ma    do the same as -M but also for system files.
94
95       -o file
96              direct the ouput to file instead of standard output.
97
98       Macro Options
99
100       -Dmacro
101              predefine macro with content 1.
102
103       -Dmacro=def
104              predefine macro with the content def.
105
106       -Umacro
107              undefine macro.
108
109       -Y     predefine system-dependant macros.
110
111       -Z     do not predefine special macros such as __TIME__.
112
113       -Afoo(bar)
114              add foo(bar) to the list of assertions.
115
116       -Bfoo(bar)
117              remove foo(bar) of the list of  assertions;  you  may  also  use
118              -Bfoo to remove all -Bfoo(xxx) from the list of assertions.
119
120       -d     instead of normal output, emit '#define' directives representing
121              all macros defined during processing.
122
123       -e     instead of normal output, emit '#assert' directives representing
124              all assertions defined during processing.
125
126       Miscellaneous Options
127
128       -v     print  version  number,  include  path  and  (optionaly) defined
129              assertions.
130
131       -h     print some help.
132

ENVIRONMENT

134       ucpp is not itself affected by environment variables. However, it  uses
135       library functions that might be affected, depending on the system.
136

AUTHOR

138       Thomas Pornin <pornin@bolet.org>
139

BUGS

141       ucpp  is  considered  stable software. However improbable it is, please
142       report a ticket if the latest version, available from this site:
143
144       https://gitlab.com/scarabeusiv/ucpp
145
146       has the bug.
147
148
149
150                                  Oct 21 2000                          UCPP(1)
Impressum