2 |
7u83 |
1 |
.\" Crown Copyright (c) 1997
|
|
|
2 |
.\"
|
|
|
3 |
.\" This TenDRA(r) Manual Page is subject to Copyright
|
|
|
4 |
.\" owned by the United Kingdom Secretary of State for Defence
|
|
|
5 |
.\" acting through the Defence Evaluation and Research Agency
|
|
|
6 |
.\" (DERA). It is made available to Recipients with a
|
|
|
7 |
.\" royalty-free licence for its use, reproduction, transfer
|
|
|
8 |
.\" to other parties and amendment for any purpose not excluding
|
|
|
9 |
.\" product development provided that any such use et cetera
|
|
|
10 |
.\" shall be deemed to be acceptance of the following conditions:-
|
|
|
11 |
.\"
|
|
|
12 |
.\" (1) Its Recipients shall ensure that this Notice is
|
|
|
13 |
.\" reproduced upon any copies or amended versions of it;
|
|
|
14 |
.\"
|
|
|
15 |
.\" (2) Any amended version of it shall be clearly marked to
|
|
|
16 |
.\" show both the nature of and the organisation responsible
|
|
|
17 |
.\" for the relevant amendment or amendments;
|
|
|
18 |
.\"
|
|
|
19 |
.\" (3) Its onward transfer from a recipient to another
|
|
|
20 |
.\" party shall be deemed to be that party's acceptance of
|
|
|
21 |
.\" these conditions;
|
|
|
22 |
.\"
|
|
|
23 |
.\" (4) DERA gives no warranty or assurance as to its
|
|
|
24 |
.\" quality or suitability for any purpose and DERA accepts
|
|
|
25 |
.\" no liability whatsoever in relation to any use to which
|
|
|
26 |
.\" it may be put.
|
|
|
27 |
.\"
|
|
|
28 |
.TH tccenv 5
|
|
|
29 |
.SH NAME
|
|
|
30 |
tccenv \- Environments for tcc
|
|
|
31 |
.SH DESCRIPTION
|
|
|
32 |
.IP
|
|
|
33 |
.PP
|
|
|
34 |
\fBTcc\fR environments are used to configure the behaviour of \fBtcc\fR(1),
|
|
|
35 |
a special case of which is specifying the APIs used. The standard
|
|
|
36 |
environments supplied with the release are used to represent a number of
|
|
|
37 |
commonly used APIs, implement certain \fItcc\fR(1) command-line options,
|
|
|
38 |
and provide a means of implementing system-specific options. User-defined
|
|
|
39 |
environments can easily be written to correspond to a user-defined API, or
|
|
|
40 |
to group together a number of \fBtcc\fR(1) command-line options into a
|
|
|
41 |
single file.
|
|
|
42 |
.\" ----------------------------------------------------------------------
|
|
|
43 |
.PP
|
|
|
44 |
An environment is just a file which is interpreted by \fBtcc\fR(1) when it
|
|
|
45 |
is specified with the command-line option -Y\fBstring\fR, where
|
|
|
46 |
\fBstring\fR is the name of the file. Each environment file consists of
|
|
|
47 |
lines of the form
|
|
|
48 |
.IP
|
|
|
49 |
*\fBIDENTIFIER\fR "\fBtext\fR"
|
|
|
50 |
.PP
|
|
|
51 |
where \fBIDENTIFIER\fR is one of the environmental identifiers, \fBtext\fR
|
|
|
52 |
tells \fBtcc\fR(1) how to modify the value given by this identifier, and *
|
|
|
53 |
stands for one of the environment prefixes + < and >.
|
|
|
54 |
.\" ----------------------------------------------------------------------
|
|
|
55 |
.SH USER-DEFINED ENVIRONMENTS
|
|
|
56 |
.IP
|
|
|
57 |
.PP
|
|
|
58 |
The simplest example of a user-defined environment contains lines of the
|
|
|
59 |
form
|
|
|
60 |
.IP
|
|
|
61 |
+FLAG "\fBtext\fR"
|
|
|
62 |
.PP
|
|
|
63 |
which tells \fBtcc\fR(1) to interpret \fBtext\fR as if it were passed on
|
|
|
64 |
the command-line. So, for example, an environment consisting of the lines
|
|
|
65 |
.PP
|
|
|
66 |
.IP
|
|
|
67 |
.TS
|
|
|
68 |
l l.
|
|
|
69 |
+FLAG "-Yposix"
|
|
|
70 |
+FLAG "-Xs"
|
|
|
71 |
+FLAG "-I/home/user/include"
|
|
|
72 |
.TE
|
|
|
73 |
.PP
|
|
|
74 |
will modify \fBtcc\fR(1) to use the POSIX 1003.1 API with strict checks,
|
|
|
75 |
and add the directory /home/user/include to the search path for #included
|
|
|
76 |
files.
|
|
|
77 |
.PP
|
|
|
78 |
.\" ----------------------------------------------------------------------
|
|
|
79 |
By default, \fBtcc\fR(1) looks for environments in the current working
|
|
|
80 |
directory and in the default environments directory. In addition, if the
|
|
|
81 |
system variable \fBTCCENV\fR is defined, this specifies a colon-separated
|
|
|
82 |
list of directories along which \fBtcc\fR(1) searches for any environment
|
|
|
83 |
which is not a full pathname.
|
|
|
84 |
.\" ----------------------------------------------------------------------
|
|
|
85 |
.SH FULL ENVIRONMENT LIST
|
|
|
86 |
.IP
|
|
|
87 |
.PP
|
|
|
88 |
The majority of the standard environments can be divided into two classes:
|
|
|
89 |
those which correspond to APIs and those which implement \fBtcc\fR(1)
|
|
|
90 |
command-line options. (In addition to these, a small number are used to
|
|
|
91 |
enable extra tools and to specify minimum integer sizes.)
|
|
|
92 |
.PP
|
|
|
93 |
The API environments are subdivided into base APIs (such as ANSI, POSIX)
|
|
|
94 |
and extension APIs (such as the X11 environments):
|
|
|
95 |
.\" ----------------------------------------------------------------------
|
|
|
96 |
.PP
|
|
|
97 |
.IP
|
|
|
98 |
.TS
|
|
|
99 |
l l.
|
|
|
100 |
\fBansi\fR the ANSI X3.159 API (this is the default API environment)
|
|
|
101 |
\fBiso\fR the ISO/IEC 9899:1990 (Amendment 1:L1995 (E)) API
|
|
|
102 |
\fBposix\fR the POSIX (IEEE 1003.1:1988) API
|
|
|
103 |
\fBposix1\fR the POSIX.1 (ISO/IEC 9945-1:1990) API
|
|
|
104 |
\fBposix2\fR the POSIX.2 (ISO/IEC 9945-2:1993) API
|
|
|
105 |
\fBxpg3\fR the X/Open Portability Guide 3
|
|
|
106 |
\fBxpg4\fR the X/Open Portability Guide 4
|
|
|
107 |
\fBunix95\fR the X/Open Single UNIX Specification (Spec 1170)
|
|
|
108 |
\fBsvid3\fR the System V Interface Definition (3rd Edition)
|
|
|
109 |
\fBaes\fR the Application Environment Specification (Revision A) API
|
|
|
110 |
|
|
|
111 |
\fBbsd_extn\fR BSD-like extension for use with POSIX, etc.
|
|
|
112 |
\fBx5_lib\fR X11 (Release 5) X Library
|
|
|
113 |
\fBx5_t\fR X11 (Release 5) Intrinsics Toolkit
|
|
|
114 |
\fBx5_mu\fR X11 (Release 5) Miscellaneous Utilities
|
|
|
115 |
\fBx5_aw\fR X11 (Release 5) Athena Widgets
|
|
|
116 |
\fBx5_mit\fR X11 (Release 5) MIT Implementation
|
|
|
117 |
\fBx5_proto\fR X11 (Release 5) Protocol Extension
|
|
|
118 |
\fBx5_ext\fR X11 (Release 5) Extensions
|
|
|
119 |
\fBmotif_1_1\fR Motif (Release 1.1)
|
|
|
120 |
\fBmotif_1_2\fR Motif (Release 1.2)
|
|
|
121 |
|
|
|
122 |
\fBsystem\fR System headers as main API
|
|
|
123 |
\fBsystem+\fR System headers as last resort extension API
|
|
|
124 |
\fBtdf_ext\fR compilation using TDF Version 4.0 extensions
|
|
|
125 |
.TE
|
|
|
126 |
.\" ----------------------------------------------------------------------
|
|
|
127 |
.PP
|
|
|
128 |
Some environments are available which modify access to previously
|
|
|
129 |
specified APIs:
|
|
|
130 |
.PP
|
|
|
131 |
.IP
|
|
|
132 |
.TS
|
|
|
133 |
l l.
|
|
|
134 |
\fBx5_private\fR permit access to X11 Release 5 private headers (*P.h)
|
|
|
135 |
\fBmotif_private\fR permit access to Motif private headers (*P.h)
|
|
|
136 |
.TE
|
|
|
137 |
.PP
|
|
|
138 |
Note that TDF token libraries for all these APIs will not be
|
|
|
139 |
available on all platforms, so it may not be possible run installers
|
|
|
140 |
for programs compiled with all API environments.
|
|
|
141 |
It will always be possible to check code with any API environment
|
|
|
142 |
using \fBtchk\fR(1).
|
|
|
143 |
.\" ----------------------------------------------------------------------
|
|
|
144 |
.PP
|
|
|
145 |
The following environments are used to specify the use of particular
|
|
|
146 |
tools (where available) which are not enabled by default:
|
|
|
147 |
.PP
|
|
|
148 |
.IP
|
|
|
149 |
.TS
|
|
|
150 |
l l.
|
|
|
151 |
\fBc++\fR enables the C++ producer/checker \fBtcpplus\fR.
|
|
|
152 |
\fBpl_tdf\fR enables the PL_TDF compiler \fBpl\fR.
|
|
|
153 |
\fBtnc\fR enables the TDF notation compiler \fBtnc\fR.
|
|
|
154 |
.TE
|
|
|
155 |
.\" ----------------------------------------------------------------------
|
|
|
156 |
.PP
|
|
|
157 |
The default behaviour of \fBtcc\fR(1) is to assume the minimal sizes of
|
|
|
158 |
integer types allowed by ANSI. This behaviour can be modified with the
|
|
|
159 |
following environments:
|
|
|
160 |
.PP
|
|
|
161 |
.IP
|
|
|
162 |
.TS
|
|
|
163 |
l l.
|
|
|
164 |
\fB16bit\fR specifies minimal integer sizes allowed by ANSI (default)
|
|
|
165 |
\fB32bit\fR specifies integer sizes found on most 32-bit machines
|
|
|
166 |
.TE
|
|
|
167 |
.\" ----------------------------------------------------------------------
|
|
|
168 |
.PP
|
|
|
169 |
In addition to these, the following implement target-specific
|
|
|
170 |
options:
|
|
|
171 |
.PP
|
|
|
172 |
.IP
|
|
|
173 |
.TS
|
|
|
174 |
l l.
|
|
|
175 |
\fBaout\fR Use a.out instead of ELF format (386 Linux ELF only).
|
|
|
176 |
\fBstatic\fR Use static instead of dynamic linking (Alpha only).
|
|
|
177 |
.TE
|
|
|
178 |
.\" ----------------------------------------------------------------------
|
|
|
179 |
.SH ENVIRONMENTAL IDENTIFIERS
|
|
|
180 |
.IP
|
|
|
181 |
.PP
|
|
|
182 |
In the following list, the environmental prefix * must be replaced by one
|
|
|
183 |
of + (which replaces the existing value), < (which adds a value to the
|
|
|
184 |
beginning of the existing list), or > (which adds a value to the end of
|
|
|
185 |
the existing list).
|
|
|
186 |
.PP
|
|
|
187 |
.TS
|
|
|
188 |
l l.
|
|
|
189 |
\fB*API_NAME\fR modifies the list of API analysis environment names
|
|
|
190 |
\fB*AS\fR modifies the system assembler executable
|
|
|
191 |
\fB*AS1\fR modifies the auxiliary assembler executable (Mips and Alpha only)
|
|
|
192 |
\fB*CC\fR modifies the system compiler executable
|
|
|
193 |
\fB*CPP_SPEC_LINK\fR modifies the C++ spec linker executable
|
|
|
194 |
\fB*CRT0\fR modifies the first list of initial default .o files
|
|
|
195 |
\fB*CRT1\fR modifies the second list of initial default .o files
|
|
|
196 |
\fB*CRTP_N\fR modifies the list of additional default .o files (-Yprom only)
|
|
|
197 |
\fB*CRTN\fR modifies the list of final default .o files
|
|
|
198 |
\fB*DISP\fR modifies the TDF pretty printer executable
|
|
|
199 |
\fB*DUMP_ANAL\fR modifies the dump-file analyser executable
|
|
|
200 |
\fB*DUMP_LINK\fR modifies the dump linker executable
|
|
|
201 |
\fB*DYN_LINK\fR modifies the dynamic-initialisation linker executable (RS6000 and Sparc only)
|
|
|
202 |
\fB+ENVDIR\fR sets the default environment directory
|
|
|
203 |
\fB+FLAG\fR passes a flag to \fBtcc\fR(1)
|
|
|
204 |
\fB+FLAG_AS\fR passes a flag to the assembler
|
|
|
205 |
\fB+FLAG_AS1\fR passes a flag to the auxiliary assembler (Mips and Alpha only)
|
|
|
206 |
\fB+FLAG_CC\fR passes a flag to the system compiler
|
|
|
207 |
\fB+FLAG_CPP_SPEC_LINK\fR passes a flag to the C++ spec linker
|
|
|
208 |
\fB+FLAG_DISP\fR passes a flag to the TDF pretty printer
|
|
|
209 |
\fB+FLAG_DUMP_ANAL\fR passes a flag to the dump-file analyser
|
|
|
210 |
\fB+FLAG_DUMP_LINK\fR passes a flag to the dump linker
|
|
|
211 |
\fB+FLAG_DYN_LINK\fR passes a flag to the dynamic-initialisation linker ((RS6000 and Sparc only)
|
|
|
212 |
\fB+FLAG_INSTALL\fR passes a flag to the TDF archive builder
|
|
|
213 |
\fB+FLAG_LD\fR passes a flag to the system linker
|
|
|
214 |
\fB+FLAG_PL_TDF\fR passes a flag to the PL_TDF compiler
|
|
|
215 |
\fB+FLAG_SPEC_LINKER\fR passes a flag to the C spec linker
|
|
|
216 |
\fB+FLAG_TCPPLUS\fR passes a flag to the C++ producer
|
|
|
217 |
\fB+FLAG_TCPPLUSPP\fR passes a flag to the C++ preprocessor
|
|
|
218 |
\fB+FLAG_TDFC\fR passes a flag to the C producer
|
|
|
219 |
\fB+FLAG_TDFCPP\fR passes a flag to the C preprocessor
|
|
|
220 |
\fB+FLAG_TLD\fR passes a flag to the TDF linker
|
|
|
221 |
\fB+FLAG_TNC\fR passes a flag to the TDF notation compiler
|
|
|
222 |
\fB+FLAG_TRANS\fR passes a flag to the TDF translator
|
|
|
223 |
\fB*INCL\fR modifies the list of default include file directories
|
|
|
224 |
\fB*INFO\fR modifies the list of API information
|
|
|
225 |
\fB*LD\fR modifies the system linker executable
|
|
|
226 |
\fB*LIB\fR modifies the list of default TDF libraries
|
|
|
227 |
\fB+LINE_START\fR inserts a line in the \fBtcc\fR(1) built-in start-up file
|
|
|
228 |
\fB+LINE_END\fR inserts a line in the \fBtcc\fR(1) built-in end-up file
|
|
|
229 |
\fB*LINK\fR modifies the list of default TDF library directories
|
|
|
230 |
\fB*LINK_ENTRY\fR modifies the linker options specifying the entry point
|
|
|
231 |
\fB+MACHINE\fR sets the target machine type
|
|
|
232 |
\fB+PORTABILITY\fR sets the producer portability table
|
|
|
233 |
\fB*PL_TDF\fR modifies the PL_TDF compiler executable
|
|
|
234 |
\fB*SPEC_LINK\fR modifies the C spec linker executable
|
|
|
235 |
\fB*STARTUP\fR modifies the list of default C producer start-up files
|
|
|
236 |
\fB*STARTUP_DIR\fR modifies the list of default C producer start-up directories
|
|
|
237 |
\fB*STARTUP_CPP\fR modifies the list of default C++ producer start-up files
|
|
|
238 |
\fB*STARTUP_CPP_DIR\fR modifies the list of default C++ producer start-up directories
|
|
|
239 |
\fB*SUFFIX_CPP\fR sets the filename suffix override for C++ source files
|
|
|
240 |
\fB*SYS_LIB\fR modifies the list of default system libraries
|
|
|
241 |
\fB*SYS_LIBC\fR modifies the list of standard system libraries
|
|
|
242 |
\fB*SYS_LINK\fR modifies the list of default system library directories
|
|
|
243 |
\fB*TCPPLUS\fR modifies the C++ producer executable
|
|
|
244 |
\fB*TCPPLUSPP\fR modifies the C++ preprocessor executable
|
|
|
245 |
\fB*TDFC\fR modifies the C producer executable
|
|
|
246 |
\fB*TDFCPP\fR modifies the C preprocessor executable
|
|
|
247 |
\fB+TEMP\fR sets the temporary directory
|
|
|
248 |
\fB*TLD\fR modifies the TDF linker executable
|
|
|
249 |
\fB*TNC\fR modifies the TDF notation compiler executable
|
|
|
250 |
\fB*TRANS\fR modifies the TDF translator executable
|
|
|
251 |
\fB+VERSION\fR sets the target machine version (Mips only)
|
|
|
252 |
.TE
|
|
|
253 |
.\" ----------------------------------------------------------------------
|
|
|
254 |
.SH SEE ALSO
|
|
|
255 |
\fItcc\fR(1), \fItchk\fR(1), \fItcpplus\fR(1), \fIpl\fR(1), \fItnc\fR(1).
|
|
|
256 |
.\" ----------------------------------------------------------------------
|