Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
TENDRA 4.1.2 RELEASE INFORMATION
2
================================
3
 
4
 
5
COPYRIGHT INFORMATION
6
---------------------
7
 
8
Please read the file COPYRIGHT for the DERA copyright notice.  In addition,
9
the power installer (src/installers/power and its subdirectories) are
10
subject to the following copyright notice:
11
 
12
    Copyright (c) 1996 Open Software Foundation, Inc.
13
 
14
    All Rights Reserved
15
 
16
    Permission to use, copy, modify, and distribute this software and its
17
    documentation for any purpose and without fee is hereby granted, provided
18
    that the above copyright notice appears in all copies and that both the
19
    copyright notice and this permission notice appear in supporting
20
    documentation.
21
 
22
    OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
23
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
    FOR A PARTICULAR PURPOSE.
25
 
26
    IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
27
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
28
    LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
29
    NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
30
    CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
31
 
32
and the Motif 1.2 API description (src/lib/apis/motif1.2 and its
33
subdirectories) are subject to the following copyright:
34
 
35
    COPYRIGHT NOTICE
36
 
37
    This program is the proprietary property of IXI Ltd, a subsidiary
38
    of the Santa Cruz Operation (SCO). Use, reproduction, production
39
    of amended versions and/or transfer of this program is permitted
40
    PROVIDED THAT:
41
 
42
    (a)  This legend be preserved on any such reproduction and amended
43
         version.
44
 
45
    (b)  Any recipient of such reproduction or amended version accept
46
         the conditions set out in this legend.
47
 
48
    IXI accepts no liability whatsoever in relation to any use to
49
    which this program may be put and gives no warranty as to the
50
    program's suitability for any purpose.
51
 
52
    All rights reserved.
53
 
54
    Copyright (c) 1995, 1996
55
 
56
 
57
DOWNLOADING INFORMATION
58
-----------------------
59
 
60
The TenDRA 4.1.2 release is available via the Web site:
61
 
62
	http://alph.dera.gov.uk/TenDRA/
63
 
64
or by FTP from alph.dera.gov.uk, in the directory /pub/TenDRA.  It consists
65
of the gzipped tar archive:
66
 
67
	TenDRA-4.1.2.tar.gz
68
 
69
(about 3.9MB - see the actual site for the precise figure), plus the
70
optional documentation, comprising a copy of the documents available
71
from the TenDRA web site:
72
 
73
	TenDRA-4.1.2-doc.tar.gz
74
 
75
(about 760kB).
76
 
77
 
78
INSTALLATION INFORMATION
79
------------------------
80
 
81
The main source archive, TenDRA-4.1.2.tar.gz, can be extracted using:
82
 
83
	gzip -d TenDRA-4.1.2.tar.gz
84
	tar xvf TenDRA-4.1.2.tar
85
 
86
to give a directory, TenDRA-4.1.2, containing the release source.  If
87
you also want to install the release documentation you will also need to
88
download TenDRA-4.1.2-doc.tar.gz and extract this as above.  The
89
documentation is extracted into the subdirectory TenDRA-4.1.2/doc.
90
 
91
The release is installed by running the shell script INSTALL found in
92
the main source directory.  The default configuration installs the
93
public executables into /usr/local/bin, the private executables,
94
libraries, configuration files etc. into /usr/local/lib/TenDRA, and
95
the manual pages into /usr/local/man. It also assumes that the source
96
has been installed in /usr/local/src/TenDRA-4.1.2.  These locations
97
may be changed by editing the INSTALL script (which is fully commented).
98
 
99
Note that the installation script makes no distinction between build
100
and installation due to the large degree of interdependence between
101
the various tools.  If a separate build phase is required then the
102
system should be installed into a local directory and then re-installed
103
into its permanent location.
104
 
105
Other installation details, such as which compiler to use, can be
106
specified using command-line options to INSTALL, or by editing the
107
script.  For example:
108
 
109
	INSTALL -gcc
110
 
111
will install the release using gcc as the compiler.  After this the
112
work directory can be removed, and:
113
 
114
	INSTALL -tcc
115
 
116
run to bootstrap the system.
117
 
118
It is suggested that the output of INSTALL is piped into a log file
119
for later examination if things go wrong (the script will report whether
120
or not there were errors in the installation, but it isn't always
121
reliable).
122
 
123
The comments in the INSTALL script should be consulted for more details. 
124
 
125
 
126
KNOWN INSTALLATION PROBLEMS
127
---------------------------
128
 
129
Several of the components have been updated to use the posix1 or xpg4
130
APIs rather than the older posix and xpg3.  Due to an error in the
131
TenDRA-4.1.1 posix1 API specification, this means that they may not
132
compile under the TenDRA-4.1.1 (although they will with TenDRA-4.1.2
133
of course).  If this is an issue then modify the Makefiles to use
134
the older APIs.
135
 
136
The location of certain system linker files has changed in later versions
137
of Linux.  The solution is to change the tcc environment files to reflect
138
the new locations.  This can be done by:
139
 
140
	cd src/lib/env/linux/elf
141
	mv 80x86 80x86.old
142
	mv 80x86.new 80x86
143
 
144
before running INSTALL.
145
 
146
 
147
ORGANISATION OF RELEASE
148
-----------------------
149
 
150
The src subdirectory, which contains the source code, is organised into
151
the following top-level directories:
152
 
153
    build		which contains various information used during
154
			installation;
155
 
156
    installers		which contains the compiler back-ends, which
157
			translate the compiler intermediate form, TDF,
158
			to the appropriate machine instructions;
159
 
160
    lib			which contains everything not included in the
161
			other directories;
162
 
163
    producers		which contains the compiler front-ends, which
164
			translate C and C++ to the compiler intermediate
165
			form, TDF;
166
 
167
    tools		which contains various tools for manipulating,
168
			viewing and generating TDF;
169
 
170
    utilities		which contains various compiler generator
171
			utilities used in the development of the TenDRA
172
			software.
173
 
174
The installers directory is split into a common section, containing code
175
which is used by all the back ends, plus a directory for each of the
176
target CPUs:
177
 
178
    680x0		Motorola 68020, 68030 and 68040,
179
    80x86		Intel i386, i486 and Pentium,
180
    alpha		DEC Alpha,
181
    hppa		HP Precision Architecture,
182
    mips		SGI/DEC MIPS,
183
    power		POWER,
184
    ppc601		POWER PC,
185
    sparc		SPARC.
186
 
187
Each CPU directory is also divided into a common section, plus a directory
188
for each of the target operating systems:
189
 
190
    680x0/sunos		680x0 on SunOS 4,
191
    80x86/cygwin32	Intel on Cygwin32,
192
    80x86/freebsd	Intel on FreeBSD,
193
    80x86/linux		Intel on Linux,
194
    80x86/sco		Intel on SCO,
195
    80x86/solaris	Intel on Solaris 2,
196
    80x86/svr4.2	Intel on Unixware,
197
    alpha/osf1		Alpha on OSF/1,
198
    hppa/hpux		HP-PA on HP-UX,
199
    mips/irix		MIPS on Irix,
200
    mips/ultrix		MIPS on Ultrix,
201
    power/aix		POWER on AIX,
202
    ppc601/aix		POWER PC on AIX,
203
    sparc/solaris	SPARC on Solaris 2,
204
    sparc/sunos		SPARC on SunOS 4.
205
 
206
The common installer directory is also subdivided, for convenience, into
207
a number of different subdirectories:
208
 
209
    construct		which contains the main routines for transforming
210
			and optimising the internal representation;
211
 
212
    diag		which contains routines for reading and processing
213
			diagnostic information contained within the TDF;
214
 
215
    dwarf		which contains routines for writing out diagnostic
216
			information as DWARF directives;
217
 
218
    dwarf2		which contains routines for writing out diagnostic
219
			information as DWARF 2 directives;
220
 
221
    linkinfo		which contains routines for reading linkage
222
			information contained within the TDF;
223
 
224
    reader		which contains the main routine for reading the
225
			input TDF and building up the internal representation;
226
 
227
    templ		which contains template files used to generate
228
			the TDF reading routines.
229
 
230
The producers subdirectory is divided into a common directory, containing
231
code shared by both the C and C++ producers, plus directories c and cpp,
232
containing the language specific components.  The differences between
233
the languages are driven from the parser, which is found in the syntax
234
subdirectory of c and cpp.  C merely uses a subset of the routines
235
available for the C++ producer, with a number of run-time or compile-time
236
flags to control the differences between the languages.
237
 
238
The common producer directory is divided, for convenience into a number
239
of subdirectories:
240
 
241
    construct		which contains the main routines for building up
242
			and checking the internal representation;
243
 
244
    obj_c		which contains macros describing the internal
245
			representation;
246
 
247
    obj_templ		which contains various template files used in
248
			automatic code generation;
249
 
250
    obj_tok		which contains TenDRA tokens describing the
251
			internal representation;
252
 
253
    output		which contains the routines of writing the
254
			internal representation to disk as TDF;
255
 
256
    parse		which contains routines for lexical analysis
257
			and preprocessing;
258
 
259
    utility		which contains routines for error reporting,
260
			memory allocation etc.
261
 
262
The tools directory contains the source for a number of different tools:
263
 
264
    disp		translates TDF into a human readable form;
265
 
266
    pl			is a structured TDF assembler;
267
 
268
    tcc			is the front-end to the TenDRA compiler;
269
 
270
    tld			links a number of TDF capsules into one;
271
 
272
    tnc			is an unstructured TDF assember and disassembler;
273
 
274
    tspec		is a specification tool used in the TenDRA API
275
			descriptions.
276
 
277
The utilities directory contains the source for a number of different
278
compiler generator tools:
279
 
280
    calculus		is used to manage the complex type system used
281
			in the producers;
282
 
283
    lexi		is a simple lexical analyser generator (lex is
284
			not used);
285
 
286
    make_err		is used to manage the producer error catalogue;
287
 
288
    make_mf		is a simple makefile generator;
289
 
290
    make_tdf		is used to generate TDF encoding and decoding
291
			routines from the TDF specification;
292
 
293
    shared		contains code common to a number of tools;
294
 
295
    sid			is a parser generator (yacc is not used);
296
 
297
    tuname		is a uname-like utility used in the installation
298
			process.
299
 
300
The lib directory is divided into a number of subdirectories:
301
 
302
    apis		containing the TenDRA API descriptions used in
303
			its API checking facilities;
304
 
305
    cpp			containing the C++ support library (note that this
306
			is only a minimal language support subset of the
307
			complete C++ standard library);
308
 
309
    env			containing the compiler front-end configuration
310
			files;
311
 
312
    libtdf		containing a support library certain aspects of
313
			TDF (such as 64 bits integers);
314
 
315
    machines		containing machine specific tools, libraries and
316
			configuration files;
317
 
318
    startup		containing the C and C++ producer configuration
319
			files;
320
 
321
    tdf			containing a description of the TDF specification
322
			used by make_tdf to generate TDF encoders and
323
			decoders.
324
 
325
 
326
ORGANISATION OF INSTALLED RELEASE
327
---------------------------------
328
 
329
The installation script creates three shell scripts in the public
330
binaries directory (/usr/local/bin in the default set-up).  These are
331
the compiler, tcc, the stand-alone static checker, tchk, and the
332
API specification tool, tspec.  The manual pages for these tools and
333
those which they invoke are installed in the manual page directory
334
(/usr/local/man in the default set-up).  The remaining files are
335
installed into the TenDRA configuration directory (/usr/local/lib/TenDRA
336
in the default set-up).  The remainder of this section describes the
337
files installed into this directory.
338
 
339
For each target machine, a directory:
340
 
341
		    machines/<os>/<os_vers>/<cpu>
342
 
343
is created to hold the machine dependent files, where <os> denotes the
344
operating system name, <os_vers> denotes the operating system version
345
and <cpu> denotes the CPU type (as above).  This machine directory
346
has five subdirectories:
347
 
348
    bin			containing the compiled executables for this
349
			machine; advanced users may wish to put this
350
			directory on their PATH, but the executables
351
			in the public binaries directory should suffice
352
			for most users;
353
 
354
    env			containing the tcc configuration files for this
355
			machine (see above);
356
 
357
    include		containing the modified system headers for this
358
			machine; these are copied directly from the
359
			src/lib/machines directory in the release;
360
 
361
    lib			containing the API token libraries describing the
362
			implementation of the various standard APIs on
363
			this machine; the generation of these libraries
364
			from the API descriptions and the system headers
365
			is the most complex part of the installation;
366
 
367
    startup		containing the compiler configuration files
368
			describing how to navigate through the system
369
			headers on this machine; these are copied directly
370
			from the src/lib/machines directory in the
371
			release.
372
 
373
The remainder of the directories created by the installation are common
374
to all machines.  These are:
375
 
376
    building		containing files automatically generated by tspec
377
			from the API descriptions which are used to build
378
			the API token libraries; these files are only used
379
			during installation and may be deleted if space is
380
			short;
381
 
382
    include		containing the include files automatically generated
383
			by tspec from the API descriptions;
384
 
385
    startup		containing the C and C++ producer configuration
386
			files copied directly from the src/lib/startup
387
			directory in the release.