Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – /branches/tendra5-amd64/src/tools/tcc/tccenv.5 – Rev 5

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
.\" ----------------------------------------------------------------------