install.doc 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237
  1. .\" $Id$
  2. .if n .nr PD 1v
  3. .if n .nr LL 78m
  4. .if n .ll 78m
  5. .TL
  6. Amsterdam Compiler Kit Installation Guide
  7. .AU
  8. Ed Keizer
  9. (revised for 3rd, 4th and 5th distribution by Ceriel Jacobs)
  10. .AI
  11. Vakgroep Informatica
  12. Vrije Universiteit
  13. Amsterdam
  14. .NH
  15. Introduction
  16. .PP
  17. This document
  18. describes the process of installing the Amsterdam Compiler Kit (ACK).
  19. It depends on the combination of hard- and software how
  20. hard it will be to install the Kit.
  21. This description is intended for a Sun-3 or SPARC workstation.
  22. Installation on VAXen running Berkeley
  23. .UX
  24. or Ultrix,
  25. Sun-2 systems and most System V
  26. .UX
  27. systems should be easy.
  28. As of this distribution, installation on PDP-11's or other
  29. systems with a small address space is no longer supported.
  30. See section 8 for installation on other systems.
  31. .NH
  32. The ACK installation process
  33. .PP
  34. In the ACK installation process, three directory trees are used:
  35. .IP "-"
  36. the ACK source tree. This is the tree on the ACK distribution medium.
  37. For the rest of this document, we will refer to this directory
  38. as $SRC_HOME;
  39. .IP "-"
  40. a configuration tree. This tree is built by the installation process and
  41. is used to do compilations in. Its structure reflects that of the source tree,
  42. but this tree will mostly contain Makefiles and relocatable objects.
  43. For the rest of this document, we will refer to this directory
  44. as $CONFIG;
  45. .IP "-"
  46. an ACK users tree. This tree is also built by the installation process.
  47. For the rest of this document, we will refer to this directory
  48. as $TARGET_HOME;
  49. .LP
  50. After installation,
  51. the directories in $TARGET_HOME contain the following information:
  52. .if n .sp 1
  53. .if n .nr PD 0
  54. .IP "bin" 14
  55. the few utilities that knot things together.
  56. See the section about "Commands".
  57. .IP "lib"
  58. root of a tree containing almost all libraries used by
  59. commands.
  60. Files specific to a certain machine are collected in one subtree
  61. per machine. E.g. "lib/pdp", "lib/z8000".
  62. The names used here are the same names as used for subtrees
  63. of "$SRC_HOME/mach".
  64. .IP "lib/descr"
  65. command descriptor files used by the program ack.
  66. .IP "lib/LLgen"
  67. files used by the LL(1) parser generator.
  68. .IP "lib/flex"
  69. files used by the lexical analyzer generator Flex.
  70. .IP "lib/m2"
  71. definition modules for Modula-2.
  72. .IP "lib.bin"
  73. root of a tree containing almost all binaries used by
  74. commands.
  75. All programs specific to a certain machine are collected in one subtree
  76. per machine. E.g. "lib.bin/pdp", "lib.bin/z8000".
  77. The names used here are the same names as used for subtrees
  78. of "$SRC_HOME/mach".
  79. .IP "lib.bin/ego"
  80. files used by the global optimizer.
  81. .IP "lib.bin/lint"
  82. binaries for the lint passes and lint libraries.
  83. .IP "lib.bin/ceg"
  84. files used by the code-expander-generator.
  85. .IP "etc"
  86. contains the file "ip_spec.t" needed for EM interpreters and EM documentation.
  87. .IP "config"
  88. contains two include files:
  89. .TS
  90. l l.
  91. em_path.h path names used by \fIack\fP, intended for all utilities
  92. local.h various definitions for local versions
  93. .TE
  94. These include files are specific for the current machine, so they
  95. are in a separate directory.
  96. .IP "include/_tail_cc"
  97. .br
  98. include files needed by modules
  99. in the C library from lang/cem/libcc.
  100. .IP "include/tail_ac"
  101. .br
  102. include files for ANSI C.
  103. .IP "include/occam"
  104. include files for occam.
  105. .IP "include/_tail_mon"
  106. .br
  107. more or less system independent include files needed by modules
  108. in the library lang/cem/libcc/mon.
  109. .IP "h"
  110. the #include files for:
  111. .TS
  112. l l.
  113. arch.h definition of the ACK archive format
  114. as_spec.h used by EM assembler and interpreters
  115. bc_io.h used by the Basic run-time system
  116. bc_string.h used by the Basic run-time system
  117. cg_pattern.h used by the backend program "cg" and its bootstrap
  118. cgg_cg.h used by the backend program "ncg" and its bootstrap
  119. em_abs.h contains trap numbers and address for lin and fil
  120. em_ego.h definition of names for some global optimizer
  121. messages
  122. em_flag.h definition of bits in array em_flag in
  123. $TARGET_HOME/lib.bin/em_data.a. Describes parameters
  124. effect on flow of instructions
  125. em_mes.h definition of names for mes pseudo numbers
  126. em_mnem.h instruction => compact mapping
  127. em_pseu.h pseudo instruction => compact mapping
  128. em_ptyp.h useful for compact code reading/writing,
  129. defines classes of parameters
  130. em_reg.h definition of mnemonics indicating register type
  131. em_spec.h definition of constants used in compact code
  132. ip_spec.h used by programs that read e.out files
  133. m2_traps.h used by the Modula-2 run-time system
  134. ocm_chan.h used by the occam run-time system
  135. ocm_parco.h used by the occam run-time system
  136. ocm_proc.h used by the occam run-time system
  137. out.h defines the ACK a.out format
  138. pc_err.h definitions of error numbers in Pascal
  139. pc_file.h macro's used in file handling in Pascal
  140. pc_math.h used by the Pascal runtime system
  141. ranlib.h defines symbol table format for archives
  142. stb.h defines debugger symbol table types
  143. .TE
  144. .IP "modules"
  145. root of a tree containing modules for compiler writers.
  146. .IP "modules/man"
  147. manual pages for all modules.
  148. .IP "modules/lib"
  149. contains module objects.
  150. .IP "modules/h"
  151. include files for some of the modules.
  152. .IP "modules/pkg"
  153. include files for some of the modules.
  154. .IP "doc"
  155. this directory contains the unformatted documents for the Kit.
  156. A list of the available documents can be found in the last section.
  157. These documents must be processed by [nt]roff.
  158. .IP "man"
  159. man files for various utilities.
  160. .if n .nr PD 1v
  161. .LP
  162. When installing ACK on several types of machines with a shared file system,
  163. it may be useful to know that the "doc", "etc", "h",
  164. "include", "lib" and "man" sub-directories do not depend on this
  165. particular installation. They do not contain binaries or path-dependent
  166. information. These directories can therefore be shared between the
  167. ACK installations. This can be accomplished by creating the tree and
  168. suitable symbolic links before starting the installation process.
  169. .LP
  170. For instance, let us say there is a file-system that is accessible from
  171. the different machines as "/usr/share/local", and the ACK binary tree
  172. must be installed in "/usr/local/ack". In this case, proceed as follows:
  173. .IP \-
  174. create a directory "/usr/share/local/ack", with subdirectories
  175. "doc", "etc", "h", "include", "lib" and "man".
  176. .IP \-
  177. create a directory "/usr/local/ack" and
  178. then create symbolic links "doc" to "/usr/share/local/ack/doc", etc.
  179. .LP
  180. If this is done on all machines on which ACK will be installed, the
  181. machine-independent part only has to be installed once, preferably
  182. on the fastest processor (it takes a long time to install all libraries).
  183. .LP
  184. The directories in the source tree contain the following information:
  185. .if n .sp 1
  186. .if n .nr PD 0
  187. .IP "bin" 14
  188. source of some shell-scripts.
  189. .IP "lib"
  190. mostly description files for the "ack" program.
  191. .IP "etc"
  192. the main description of EM sits here.
  193. Files (e.g. em_table) describing
  194. the opcodes and pseudos in use,
  195. the operands allowed, effect in stack etc. etc.
  196. .IP "mach"
  197. just there to group the directories with all sources for each machine.
  198. The section about "Machines" of this manual indicates which subdirectories
  199. are used for which systems.
  200. .br
  201. These directories have subdirectories named:
  202. .in +3n
  203. .TS
  204. l l.
  205. cg the backend (*.m => *.s)
  206. ncg the new backend (*.m => *.s)
  207. as the assembler (*.s => *.o) or
  208. assembler/linker (*.s + libraries => a.out)
  209. cv conversion programs for a.out files
  210. dl down-load programs
  211. top the target optimizer
  212. int source for an interpreter
  213. libbc to create Basic run-time system and libraries
  214. libcc to create C run-time system and libraries
  215. libcc.ansi to create ANSI C run-time system and libraries
  216. libpc to create Pascal run-time system and libraries
  217. libf77 to create Fortran run-time system and libraries
  218. libm2 to create Modula-2 run-time system and libraries
  219. liboc to create occam run-time system and libraries
  220. libem EM runtime system, only depending on CPU type
  221. libend library defining end, edata, etext
  222. libfp to create floating point library
  223. libdb to create debugger support library
  224. libsys system-dependent EM library
  225. libce fast cc-compatible C compiler library support
  226. ce code expander (fast back-end)
  227. test various tests
  228. .TE
  229. .in -3n
  230. Actually, some of these directories will only appear in the configuration tree.
  231. .br
  232. The directory proto contains files used by most machines,
  233. like machine-independent sources and Makefiles.
  234. .in +3n
  235. .TS
  236. l l.
  237. mach/proto/cg current backend sources
  238. mach/proto/ncg new backend sources
  239. mach/proto/as assembler sources
  240. mach/proto/top target optimizer sources
  241. mach/proto/fp floating point package sources
  242. mach/proto/libg makefiles for compiling libraries
  243. mach/proto/grind machine-independent debugger support
  244. .TE
  245. .IP "emtest"
  246. contains prototype of em test set.
  247. .IP "lang"
  248. just there to group the directories for all front-ends.
  249. .IP "lang/pc"
  250. the Pascal front-end.
  251. .IP "lang/pc/libpc"
  252. .br
  253. source of Pascal run-time system (in EM or C).
  254. .IP "lang/pc/test"
  255. some test programs written in Pascal.
  256. .IP "lang/pc/comp"
  257. the Pascal compiler proper.
  258. .IP "lang/cem"
  259. the C front-end.
  260. .IP "lang/cem/libcc"
  261. .br
  262. directories with sources of C runtime system, libraries (in EM or C).
  263. .IP "lang/cem/libcc/gen"
  264. .br
  265. sources for routines in chapter III of
  266. .UX
  267. programmers manual,
  268. excluding stdio.
  269. .IP "lang/cem/libcc/stdio"
  270. .br
  271. stdio sources.
  272. .IP "lang/cem/libcc/math"
  273. .br
  274. sources for mathematical routines, normally available with the
  275. \fB-lm\fP option to \fIcc\fP.
  276. .IP "lang/cem/libcc/mon"
  277. .br
  278. sources for routines in chapter II, mostly written in EM.
  279. .IP "lang/cem/cemcom"
  280. .br
  281. the compiler proper.
  282. .IP "lang/cem/cemcom.ansi"
  283. .br
  284. the ANSI C compiler proper.
  285. .IP "lang/cem/cpp.ansi"
  286. .br
  287. the ANSI C preprocessor.
  288. .IP "lang/cem/libcc.ansi"
  289. .br
  290. the ANSI C library sources.
  291. .IP "lang/cem/ctest"
  292. .br
  293. the C test set.
  294. .IP "lang/cem/ctest/cterr"
  295. .br
  296. programs developed for pinpointing previous errors.
  297. .IP "lang/cem/ctest/ct*"
  298. .br
  299. the test programs.
  300. .IP "lang/cem/lint"
  301. a C program checker.
  302. .IP "lang/cem/lint/lpass1"
  303. .br
  304. the first pass of lint.
  305. .IP "lang/cem/lint/lpass1.ansi"
  306. .br
  307. the first pass of lint, this time for ANSI C.
  308. .IP "lang/cem/lint/lpass2"
  309. .br
  310. the second pass of lint, shared between ANSI C and "old-fashioned" C.
  311. .IP "lang/cem/lint/llib"
  312. .br
  313. programs for producing lint libraries.
  314. .IP "lang/basic"
  315. the Basic front-end.
  316. .IP "lang/basic/src"
  317. .br
  318. the compiler proper.
  319. .IP "lang/basic/lib"
  320. .br
  321. the Basic run-time library source.
  322. .IP "lang/basic/test"
  323. .br
  324. various Basic programs.
  325. .IP "lang/occam"
  326. the occam front-end.
  327. .IP "lang/occam/comp"
  328. .br
  329. the compiler proper.
  330. .IP "lang/occam/lib"
  331. .br
  332. source of occam run-time system (in EM or C).
  333. .IP "lang/occam/test"
  334. .br
  335. some occam programs.
  336. .IP "lang/m2"
  337. the Modula-2 front-end.
  338. .IP "lang/m2/comp"
  339. the compiler proper.
  340. .IP "lang/m2/libm2"
  341. source of Modula-2 run-time system (in EM, C and Modula-2).
  342. .IP "lang/m2/m2mm"
  343. the Modula-2 makefile generator.
  344. .IP "lang/m2/test"
  345. some Modula-2 example programs.
  346. .IP "lang/fortran"
  347. the Fortran front-end (translates Fortran into C). This compiler is not
  348. a part of ACK, but is included because it adds another language.
  349. The Fortran system carries the following copyright notice:
  350. .IP ""
  351. .nf
  352. /**************************************************************
  353. Copyright 1990, 1991 by AT&T Bell Laboratories and Bellcore.
  354. Permission to use, copy, modify, and distribute this software
  355. and its documentation for any purpose and without fee is hereby
  356. granted, provided that the above copyright notice appear in all
  357. copies and that both that the copyright notice and this
  358. permission notice and warranty disclaimer appear in supporting
  359. documentation, and that the names of AT&T Bell Laboratories or
  360. Bellcore or any of their entities not be used in advertising or
  361. publicity pertaining to distribution of the software without
  362. specific, written prior permission.
  363. AT&T and Bellcore disclaim all warranties with regard to this
  364. software, including all implied warranties of merchantability
  365. and fitness. In no event shall AT&T or Bellcore be liable for
  366. any special, indirect or consequential damages or any damages
  367. whatsoever resulting from loss of use, data or profits, whether
  368. in an action of contract, negligence or other tortious action,
  369. arising out of or in connection with the use or performance of
  370. this software.
  371. **************************************************************/
  372. .fi
  373. .IP "lang/fortran/comp"
  374. .br
  375. the compiler proper.
  376. .IP "lang/fortran/lib"
  377. .br
  378. source of Fortran runtime system and libraries.
  379. .IP "fast"
  380. contains sub-directories for installing the fast ACK compatible compilers.
  381. .IP "fast/driver"
  382. .br
  383. contains the sources of the fast ACK compatible compiler drivers.
  384. .IP "fcc"
  385. contains the fast cc-compatible C compiler for SUN-3 and VAX.
  386. .IP "util"
  387. contains directories with sources for various utilities.
  388. .IP "util/ack"
  389. the program used for translation with the Kit.
  390. .IP "util/opt"
  391. the EM peephole optimizer (*.k => *.m).
  392. .IP "util/ego"
  393. the global optimizer.
  394. .IP "util/topgen"
  395. the target optimizer generator.
  396. .IP "util/misc"
  397. decode (*.[km] => *.e) + encode (*.e => *.k).
  398. .IP "util/data"
  399. the C-code for $TARGET_HOME/lib.bin/em_data.a.
  400. These sources are created by the Makefile in `etc`.
  401. .IP "util/ass"
  402. the EM assembler (*.[km] + libraries => e.out).
  403. .IP "util/arch"
  404. the archivers to be used for all EM utilities.
  405. .IP "util/cgg"
  406. a program needed for compiling backends.
  407. .IP "util/ncgg"
  408. a program needed for compiling the newest backends.
  409. .IP "util/cpp"
  410. the C preprocessor.
  411. .IP "util/shf"
  412. various shell files.
  413. .IP "util/LLgen"
  414. the extended LL(1) parser generator.
  415. .IP "util/amisc"
  416. contains some programs handling ACK a.out format, such as anm, asize.
  417. .IP "util/cmisc"
  418. contains some programs to help in resolving name conflicts, and
  419. a dependency generator for makefiles.
  420. .IP "util/led"
  421. the ACK link-editor, reading ACK relocatable a.out format, and writing
  422. ACK a.out format.
  423. .IP "util/int"
  424. an EM interpreter, written in C. Very useful for checking out software,
  425. but slow.
  426. .IP "util/ceg"
  427. code expander generator.
  428. .IP "util/grind"
  429. a symbolic debugger.
  430. .IP "util/byacc"
  431. this is Berkeley yacc, in the public domain.
  432. .IP "util/flex"
  433. this is a replacement for lex. It carries the following copyright notice:
  434. .IP ""
  435. .nf
  436. Copyright (c) 1990 The Regents of the University of California.
  437. All rights reserved.
  438. This code is derived from software contributed to Berkeley by
  439. Vern Paxson.
  440. The United States Government has rights in this work pursuant
  441. to contract no. DE-AC03-76SF00098 between the United States
  442. Department of Energy and the University of California.
  443. Redistribution and use in source and binary forms are permitted
  444. provided that: (1) source distributions retain this entire
  445. copyright notice and comment, and (2) distributions including
  446. binaries display the following acknowledgement: ``This product
  447. includes software developed by the University of California,
  448. Berkeley and its contributors'' in the documentation or other
  449. materials provided with the distribution and in all advertising
  450. materials mentioning features or use of this software. Neither the
  451. name of the University nor the names of its contributors may be
  452. used to endorse or promote products derived from this software
  453. without specific prior written permission.
  454. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  455. IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  456. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  457. PURPOSE.
  458. .fi
  459. .ne 4
  460. .if n .nr PD 1v
  461. .LP
  462. All path names mentioned in the text of this document are relative to
  463. $SRC_HOME, unless they start with '/' or one of $SRC_HOME,
  464. $TARGET_HOME or $CONFIG.
  465. .NH
  466. Restoring the ACK tree
  467. .PP
  468. The process of installing the Amsterdam Compiler Kit is quite simple.
  469. The first step is to restore the Amsterdam Compiler Kit
  470. distribution tree structure.
  471. Proceed as follows
  472. .IP " \-" 10
  473. Create a directory, for example /usr/share/local/src/ack, on a device
  474. with at least 15 Megabytes left. This directory will be $SRC_HOME.
  475. .IP " \-"
  476. Change to that directory (cd ...).
  477. .IP " \-"
  478. Extract all files from the distribution medium, for instance
  479. magtape:
  480. \fBtar x\fP.
  481. .IP " \-"
  482. Keep a copy of the original distribution to be able to repeat the process
  483. of installation in case of disasters.
  484. This copy is also useful as a reference point for diff-listings.
  485. .NH
  486. Adapting ACK to the local system
  487. .PP
  488. Before compiling the sources in the Kit some installation dependent
  489. actions have to be taken.
  490. Most of these are performed by an interactive shell script in the file
  491. .I $SRC_HOME/first/first.
  492. Calling this script should be done
  493. from another directory, for instance an empty directory which will later
  494. become $CONFIG.
  495. .LP
  496. The actions of the
  497. .I first
  498. script are:
  499. .if n .sp 1
  500. .if n .nr PD 0
  501. .IP \-
  502. Asking for the path names of the ACK source directory ($SRC_HOME), the
  503. configuration directory ($CONFIG), and the ACK users directory ($TARGET_HOME).
  504. About 5M are needed for the configuration tree. The disk space needed
  505. for the ACK users tree depends on which front-ends and back-ends are to be
  506. installed.
  507. For instance, on our SPARC systems
  508. we have installed all languages and 6 back-ends, including the
  509. system-independent part. This amounts to about 16M.
  510. On our SUN-3 systems, we have installed all front-ends and 5 back-ends,
  511. but only the machine-dependent part. The machine-independent directories are
  512. symbolic links to the SPARC ACK users tree.
  513. We also have the fast ACK compilers
  514. installed on the SUN-3's.
  515. The total amount of disk-space used is less than 8M.
  516. .IP \-
  517. Asking for what type of system the binary tree must be produced for
  518. and creating the shell script "ack_sys" in the Kit's bin directory.
  519. Several utilities make use of "ack_sys" to determine the type of
  520. system.
  521. The current choice is between:
  522. .TS
  523. c c c
  524. l l l.
  525. answer system type default machine
  526. vax_bsd4_1a VAX11 + BSD4.1a vax4
  527. vax_bsd4_2 VAX11 + BSD4.2 vax4
  528. vax_sysV_2 VAX11 + System V.2 vax4
  529. i386 Intel 80386 system + Xenix System V i386
  530. sun3 Sun-3 Motorola 68020 workstation sun3
  531. sun2 Sun-2 Motorola 68010 workstation sun2
  532. m68_sysV_0 68000 + Uniplus System V.0 mantra
  533. m68020 Motorola 68020 VME131 + System V/68 R2V2.1 m68020
  534. sparc Sun-4 or SPARC workstation running SunOs 4 sparc
  535. sparc_solaris Sun-4 or SPARC workstation running Solaris 2 sparc_solaris
  536. ANY Neither of the above ???
  537. .TE
  538. For some of these, the installation procedure has not been tested, as
  539. we don't have them.
  540. For others, the installation procedure has only been tested with earlier
  541. distributions, as we don't have those systems anymore.
  542. However, the sun3 and sparc systems are known to behave reasonably.
  543. The sparc_solaris system has only been tested with the GNU C compiler,
  544. because we don't have the SUN C compiler (it is unbundled in Solaris 2).
  545. The Sun systems should run SunOs Release 3.0 or newer.
  546. The i386 choice may also be used for Intel 80386 or 80486 systems
  547. running
  548. .UX
  549. System V Release 4. These systems are also able to run Xenix System V
  550. binaries.
  551. If the target system is not on this list, choose one that comes close.
  552. If none of them come close, use the "ANY" choice.
  553. For ANY, any name can be used,
  554. but the Kit will not be able to compile programs for the target system.
  555. See the section about "compilation
  556. on a different machine".
  557. .IP \-
  558. Setting the default machine for which code is
  559. produced to the local type of system according to the table above.
  560. This in done in the file "$TARGET_HOME/config/local.h".
  561. See also section 9.1.
  562. .IP \-
  563. Asking for things that don't have to be installed.
  564. .IP \-
  565. Producing a shell script called "INSTALL" that will take care of the
  566. ACK installation process.
  567. .NH
  568. Compiling the Kit
  569. .PP
  570. The next step in the installation process is to run the "INSTALL"
  571. shell-script. When using a Bourne-shell, type:
  572. .DS
  573. sh INSTALL > INSTALL.out 2>&1 &
  574. .DE
  575. When using a C-shell, type:
  576. .DS
  577. sh INSTALL >& INSTALL.out &
  578. .DE
  579. This shell-script performs the following steps:
  580. .if n .sp 1
  581. .if n .nr PD 0
  582. .IP \-
  583. Produce a configuration tree ($CONFIG), reflecting the structure of the
  584. source tree.
  585. .IP \-
  586. Produce Makefiles in $CONFIG.
  587. As mentioned before, compilations
  588. will be done in the configuration tree, not in the source tree.
  589. Most configuration directories will have Makefiles
  590. used to compile and install the programs in that
  591. directory.
  592. All programs needed for compilation and/or cross compilation
  593. with the Kit are installed in $TARGET_HOME by these Makefiles.
  594. These Makefiles are produced from corresponding files called
  595. "proto.make" in the source tree. In fact, the "proto.make" files
  596. are almost complete Makefiles, except for some macro definitions that
  597. are collected by the \fIfirst\fP script.
  598. The Makefiles adhere to a standard which is described in the
  599. section 9.
  600. .IP \-
  601. Copy "Action" files to the configuration tree and editing them to
  602. reflect the choices concerning the parts of ACK that have to be
  603. installed. "Action" files are described below.
  604. .IP \-
  605. Copy part of the source tree to the ACK users tree (include files,
  606. manual pages, documentation, et cetera).
  607. .IP \-
  608. Calling the "TakeAction" script.
  609. All these Makefiles do not have to be called separately.
  610. We wrote a shell script calling the make's needed to install
  611. the whole Kit.
  612. This script consists of the file $SRC_HOME/TakeAction
  613. and a few files called Action in some configuration directories.
  614. The Action files describe in a very simple form which actions
  615. have to be performed in which directories.
  616. The default action is to start "make install && make clean".
  617. The output of each make is diverted to a file called "Out"
  618. in the same directory as the make was started in.
  619. If the make was successful (return code 0) the Out file is removed
  620. and the script TakeAction produces a small message indicating
  621. that it succeeded in fulfilling its goal.
  622. If the make was not successful (any other return code) the Out file
  623. is left alone for further examination and the script TakeAction
  624. produces a small message indicating that it failed.
  625. .br
  626. For some programs the scripts already know they can't be
  627. installed on the local type of system.
  628. In that case they produce a message "Sorry, ....." and
  629. happily proceed with further installation commands.
  630. .if n .sp 1
  631. .if n .nr PD 1v
  632. .LP
  633. Installation of the Kit might take anything from a few
  634. hours to more than a day, depending on the speed of the local machine and
  635. what must be installed.
  636. .LP
  637. If the installation succeeded, the Kit is ready to be used.
  638. Read section 6 and the manuals provided
  639. with the Kit (in the $TARGET_HOME/man directory) on how to use it.
  640. .NH 2
  641. Problems
  642. .NH 3
  643. on Unisoft m68000 systems.
  644. .PP
  645. The Unisoft C compiler has a bug which impedes the correct
  646. translation of the peephole optimizer.
  647. For a more detailed description of this phenomenon see
  648. the file "$SRC_HOME/mach/m68k2/Unisoft_bug".
  649. (This observation was made in 1985 or so, so it is probably
  650. no longer true).
  651. .NH 3
  652. with backends
  653. .PP
  654. The backends for the PDP11, VAX, Motorola 68000 and 68020,
  655. SPARC, Intel 8086, and Intel 80386
  656. have been heavily used by ourselves and are well tested.
  657. The backends for the other machines are known to run our own
  658. test programs,
  659. but might reveal errors when more heavily used.
  660. .NH 2
  661. An example output of TakeAction.
  662. .LP
  663. .sp 1
  664. .nf
  665. System definition -- done
  666. EM definition library -- done
  667. C utilities -- done
  668. Flex lexical analyzer generator -- done
  669. Yacc parser generator -- done
  670. system-call interface module -- done
  671. .
  672. .
  673. .
  674. EM Global optimizer -- done
  675. ACK archiver -- done
  676. Program 'ack' -- done
  677. Bootstrap for backend tables -- done
  678. Bootstrap for newest form of backend tables -- done
  679. .
  680. .
  681. .
  682. C frontend -- done
  683. ANSI-C frontend -- done
  684. ANSI-C preprocessor -- done
  685. ANSI-C header files -- done
  686. Failed for LINT C program checker, see lang/cem/lint/Out
  687. Pascal frontend -- done
  688. Basic frontend -- done
  689. .
  690. .
  691. .
  692. Vax 4-4 assembler -- done
  693. Vax 4-4 backend -- done
  694. Vax target optimizer -- done
  695. ACK a.out to VAX a.out conversion program -- done
  696. Sorry, Vax code expander library can only be made on vax* systems
  697. Vax 4-4 EM library -- done
  698. Vax 4-4 debugger support library -- done
  699. Vax 4-4 etext,edata,end library -- done
  700. Vax 4-4 systemcall interface -- done
  701. .
  702. .
  703. .
  704. .sp 1
  705. .fi
  706. .LP
  707. The lines starting with "Sorry, " indicate that certain programs cannot
  708. be translated on the local machine.
  709. The lines starting with "Failed for" indicate
  710. that certain programs/libraries were expected to,
  711. but did not compile.
  712. In this example, the installation of LINT failed.
  713. To repeat a certain part of the installation, look in
  714. the Action file, which resides in the root of the configuration tree,
  715. for the directory in which that part is to be found.
  716. If that directory contains an Action file issue the command
  717. "sh $CONFIG/bin/TakeAction", otherwise type "make install".
  718. .NH
  719. Commands
  720. .PP
  721. The following commands are available in the $TARGET_HOME/bin directory after compilation
  722. of the Kit:
  723. .IP "\fIack\fP, \fIacc\fP, \fIabc\fP, \fIapc\fP, \fIocm\fP, \fIm2\fP, \fIf2c\fP and their links" 14
  724. .br
  725. the names mentioned here can be used to compile Pascal, C, etc... programs.
  726. Most of the links can be used to generate code for a particular
  727. machine.
  728. See also the section about "Machines".
  729. .IP \fIarch\fP
  730. the archiver used for the EM- and universal assembler/loader.
  731. .IP \fIaal\fP
  732. the archiver used for ACK objects.
  733. .IP \fIem\fP
  734. this program selects a interpreter to execute an e.out file.
  735. Interpreters exist for PDP-11 and Motorola 68000 systems.
  736. .IP \fIeminform\fP
  737. the program to unravel the post-mortem information of
  738. the EM interpretator for the PDP-11.
  739. .IP \fILLgen\fP
  740. the LL(1) parser generator.
  741. .IP \fIack_sys\fP
  742. a shell script producing an identification of the target system.
  743. Used by some utilities to determine what is, and what is
  744. not feasible on the target system.
  745. .IP \fImarch\fP
  746. a shell script used while compiling libraries.
  747. .IP "\fIasize\fP, \fIanm\fP, \fIastrip\fP"
  748. .br
  749. do the same as \fIsize\fP, \fInm\fP and \fIstrip\fP, but for ACK object format.
  750. .IP \fImkdep\fP
  751. a dependency generator for makefiles.
  752. .IP "\fIcid\fP, \fIprid\fP, \fIcclash\fP"
  753. .br
  754. some utilities for handling name clashes in C programs. Some
  755. systems have C-compilers with only 7 or 8 characters significant in
  756. identifiers.
  757. .IP \fItabgen\fP
  758. a utility for generating character tables for C-programs.
  759. .IP \fIint\fP
  760. an EM interpreter. This one is written in C, and is very useful for checking
  761. out programs.
  762. .IP \fIgrind\fP
  763. a source level debugger for C, ANSI-C, Modula-2 and Pascal.
  764. .IP "\fIafcc\fP, \fIafm2\fP, \fIafpc\fP"
  765. .br
  766. these are ACK-compatible fast C, Modula-2 and Pascal compilers,
  767. available for M68020, VAX and Intel 80386 systems. They compile very fast,
  768. but produce slow code.
  769. .IP \fIfcc\fP
  770. this is a cc-compatible fast C compiler, available on SUN-3 and VAX
  771. systems. It compiles very fast, but produces slow code.
  772. .LP
  773. We currently make the Kit available to our users by telling
  774. them that they should include the $TARGET_HOME/bin directory in
  775. their PATH shell variable.
  776. The programs will still work when moved to a different
  777. directory or linked to.
  778. Copying should preferably be done with tar, since links are
  779. heavily used.
  780. Renaming of the programs linked to \fIack\fP will not always
  781. produce the desired result.
  782. This program uses its call name as an argument.
  783. Any call name not being \fIcc\fP, \fIacc\fP, \fIabc\fP, \fIpc\fP, \fIf2c\fP,
  784. \fIocm\fP, \fIm2\fP, or \fIapc\fP will be
  785. interpreted as the name of a 'machine description' and the
  786. program will try to find a description file with that name.
  787. The installation process will only touch the utilities in the $TARGET_HOME/bin
  788. directory, not copies of these utilities.
  789. .NH
  790. Machines
  791. .PP
  792. Below is a table with entries for all commands in
  793. the bin directory used to (cross)compile for a particular machine.
  794. The name in the first column gives the name in the bin directory.
  795. The column headed dir indicates which subdirectories of
  796. $TARGET_HOME/lib and/or $TARGET_HOME/lib.bin are needed for compilation.
  797. The column head i/p contains the integer and pointer size used in units of
  798. bytes.
  799. The subdirectories with the same name in mach contain the sources.
  800. A * in the column headed 'fp' indicates that floating point can be used
  801. for that particular machine. A + in that column indicates that floating
  802. point is available under the '-fp' option. In this case, software
  803. floating point emulation is used.
  804. .TS
  805. l l l l l l l.
  806. command system i/p languages fp dir remarks
  807. pdp PDP/UNIX V7 2/2 C * pdp
  808. Pascal
  809. Basic
  810. occam
  811. Modula-2
  812. vax4 VAX/BSD 4.? 4/4 C * vax4
  813. System V.2 Pascal
  814. Basic
  815. occam
  816. Modula-2
  817. Fortran
  818. sparc Sun-4 4/4 C * sparc
  819. Pascal
  820. Basic
  821. occam
  822. Modula-2
  823. Fortran
  824. sparc_solaris Sun-4 4/4 C * sparc_solaris
  825. Pascal
  826. Basic
  827. occam
  828. Modula-2
  829. Fortran
  830. m68k2 M68000/ 2/4 C + m68k2
  831. Unisoft Pascal
  832. Basic
  833. occam
  834. Modula-2
  835. m68k4 M68000/ 4/4 C + m68k4
  836. Unisoft Pascal m68k2
  837. Basic
  838. occam
  839. Modula-2
  840. Fortran
  841. pmds M68000/ 2/4 C + pmds Philips Micro
  842. PMDS Pascal m68k2 Devel. System
  843. Basic
  844. occam
  845. Modula-2
  846. pmds4 M68000/ 4/4 C + pmds4 Philips Micro
  847. PMDS Pascal m68k2 Devel. System
  848. Basic m68k4
  849. occam
  850. Modula-2
  851. Fortran
  852. mantra M68000/ 4/4 C + mantra
  853. Sys V.0 Pascal m68k2
  854. Basic m68k4
  855. occam
  856. Modula-2
  857. Fortran
  858. m68020 M68020/ 4/4 C + m68020
  859. Sys V/68 R2V2.1 Pascal
  860. Basic
  861. occam
  862. Modula-2
  863. Fortran
  864. sun3 Sun-3 R4.1 4/4 C + sun3
  865. Pascal m68020
  866. Basic
  867. occam
  868. Modula-2
  869. Fortran
  870. sun2 Sun-2 R3.0 4/4 C + sun2
  871. Pascal m68k4
  872. Basic m68k2
  873. occam
  874. Modula-2
  875. Fortran
  876. i86 IBM PC/IX 2/2 C + i86 IBM PC with PC/IX
  877. Pascal Causes kernel crashes
  878. Basic
  879. occam
  880. Modula-2
  881. xenix3 Microsoft 2/2 C + xenix3 IBM AT with Xenix
  882. Xenix V3 Pascal i86
  883. Basic
  884. occam
  885. Modula-2
  886. i386 SCO Xenix 4/4 C + i386 Intel 80386
  887. System V Pascal Xenix System V
  888. Basic
  889. occam
  890. Modula-2
  891. Fortran
  892. minix Minix PC 2/2 C + minix IBM PC running Minix
  893. Pascal i86
  894. Basic
  895. occam
  896. Modula-2
  897. minixST ST Minix 2/4 C + minixST Atari ST running Minix
  898. Pascal m68k2
  899. Basic
  900. occam
  901. Modula-2
  902. z8000 Zilog 8000 2/2 C z8000 Central Data
  903. Pascal CPU board
  904. Basic Assembler/loader
  905. occam
  906. Modula-2
  907. em22 EM machine 2/2 C * em22 Needs interpreter
  908. Pascal
  909. Basic
  910. occam
  911. Modula-2
  912. em24 EM machine 2/4 C * em24 Needs interpreter
  913. Pascal
  914. Basic
  915. occam
  916. Modula-2
  917. em44 EM machine 4/4 C * em44 Needs interpreter
  918. Pascal
  919. Basic
  920. occam
  921. Modula-2
  922. Fortran
  923. 6500 6502/BBC 2/2 C 6500 Assembler/loader
  924. Pascal
  925. Basic
  926. occam
  927. Modula-2
  928. 6800 Bare 6800 6800 Assembler only
  929. 6805 Bare 6805 6805 Assembler only
  930. 6809 Bare 6809 6809 Assembler only
  931. ns Bare NS16032 4/4 C ns
  932. Pascal
  933. Basic
  934. occam
  935. Modula-2
  936. Fortran
  937. i80 Hermac/z80 2/2 C i80
  938. Pascal
  939. Basic
  940. occam
  941. Modula-2
  942. z80 Hermac/z80 2/2 C z80 \fIi80\fP is faster
  943. Pascal
  944. Basic
  945. occam
  946. Modula-2
  947. s2650 Signetics s2650 Assembler only
  948. arm Acorn 4/4 C * arm Assembler/loader
  949. Archimedes Pascal
  950. Basic
  951. occam
  952. Modula-2
  953. Fortran
  954. .TE
  955. .LP
  956. The commands \fBem22\fP, \fBem24\fP and \fBem44\fP
  957. produce e.out files with EM machine code which must be interpreted.
  958. The Kit contains three interpreters: one running under PDP 11/V7 UNIX,
  959. one for the M68000, running under the PMDS system, Sun systems,
  960. the Mantra system, etc, and a portable one, written in C.
  961. The first one can only interpret 2/2 e.out files,
  962. the second takes 2/4 and 4/4 files,
  963. and the last one takes 2/2, 2/4 and 4/4.
  964. The PDP 11 interpreter executes floating point instructions.
  965. .LP
  966. The program \fB$TARGET_HOME/bin/em\fP calls the appropriate
  967. interpreter.
  968. The interpreters are looked for in the em22, em24 and em44
  969. subdirectories of $TARGET_HOME/lib.bin.
  970. The third interpreter is available as the program \fB$TARGET_HOME/bin/int\fP
  971. in the bin directory.
  972. .NH
  973. Compilation on a different machine.
  974. .PP
  975. The installation mechanism of the Kit is supposed to be portable across
  976. .UX
  977. machines, so
  978. the Kit can be installed and used as a cross-compiler
  979. for the languages it supports on any
  980. .UX
  981. machine.
  982. The presence of most
  983. .UX
  984. utilities is essential for compilation.
  985. A few of the programs certainly needed are: sh, C-compiler, sed, ed,
  986. make, and awk.
  987. .NH 2
  988. Backend
  989. .PP
  990. The existence of a backend with a system call library
  991. for the target system is essential
  992. for producing executable files for that system.
  993. Rewriting the system call library if the one supplied does
  994. not work on the target system is fairly straightforward.
  995. If no backend exists for the target CPU type, a new backend has to be written
  996. which is a major undertaking.
  997. .NH 2
  998. Universal assembler/loader, link editor
  999. .PP
  1000. For most machines, the description files in $TARGET_HOME/lib/*/descr use our
  1001. universal assembler and our link editor.
  1002. The load file produced is not directly
  1003. usable in any system known to us,
  1004. but has to be converted before it can be put to use.
  1005. The \fIcv\fP programs convert our a.out format into
  1006. executable files.
  1007. The \fIdl\fP programs present for some machines unravel
  1008. our a.out files and transmit commands to load memory
  1009. to a microprocessor over a serial line.
  1010. The file $TARGET_HOME/man/man5/ack.out.5 contains a description of the format of
  1011. the universal assembler load file.
  1012. It might be useful to those who wish or need to write their
  1013. own conversion programs.
  1014. Also, a module is included to read and write our a.out format.
  1015. See $TARGET_HOME/man/man3/object.3.
  1016. .NH
  1017. Options
  1018. .NH 2
  1019. Default machine
  1020. .PP
  1021. There is one important option in $TARGET_HOME/config/local.h.
  1022. The utility \fIack\fP uses a default machine name when called
  1023. as \fIacc\fP, \fIcc\fP, \fIabc\fP, \fIapc\fP, \fIpc\fP, \fIocm\fP,
  1024. \fIm2\fP, \fIf2c\fP, or \fIack\fP.
  1025. The machine name used by default is determined by the
  1026. definition of ACKM in $TARGET_HOME/config/local.h.
  1027. The Kit is distributed with "sun3" as the default machine,
  1028. but the shell script "first" in the directory "first" alters this
  1029. to suit the target system.
  1030. There is nothing against using the Kit as a cross-compiler
  1031. and by default produce code that can't run on the local system.
  1032. .NH 2
  1033. Pathnames
  1034. .PP
  1035. Absolute path names are concentrated in "$TARGET_HOME/config/em_path.h".
  1036. Only the utilities \fIack\fP, \fIflex\fP, and \fILLgen\fP use
  1037. absolute path names to access files in the Kit.
  1038. The tree is distributed with /usr/em as the working
  1039. directory.
  1040. The definition of EM_DIR in em_path.h should be altered to
  1041. specify the root
  1042. directory for the Compiler Kit binaries on the local system ($TARGET_HOME).
  1043. This is done automatically by the shell script "first" in the
  1044. directory "first".
  1045. Em_path.h also specifies which directory should be used for
  1046. temporary files.
  1047. Most programs from the Kit do indeed use that directory
  1048. although some remain stubborn and use /tmp.
  1049. .LP
  1050. The shape of the tree should not be altered lightly because
  1051. most Makefiles and the
  1052. utility \fIack\fP know the shape of the ACK tree.
  1053. The knowledge of the utility \fIack\fP about the shape of the tree is
  1054. concentrated in the files in the directory $TARGET_HOME/lib/*/descr and $TARGET_HOME/lib/descr/*.
  1055. .NH
  1056. Makefiles
  1057. .PP
  1058. Most directories contain a "proto.make", from which a Makefile is derived.
  1059. Apart from commands applying to that specific directory these
  1060. files all recognize a few special commands.
  1061. When called with one of these they will apply the command to
  1062. their own directory.
  1063. The special commands are:
  1064. .sp 1
  1065. .IP "install" 20
  1066. recompile and install all binaries and libraries.
  1067. .br
  1068. Some Makefiles allow errors to occur in the programs they call.
  1069. They ignore such errors and notify the user with the message
  1070. "~....... error code n: ignored".
  1071. Whenever such a message appears in the output it can be ignored.
  1072. .IP "cmp"
  1073. recompile all binaries and libraries and compare them to the
  1074. ones already installed.
  1075. .IP pr
  1076. print the sources and documentation on the standard output.
  1077. .IP opr
  1078. make pr | opr
  1079. .br
  1080. Opr should be an off-line printer daemon.
  1081. On some systems it exists under another name e.g. lpr.
  1082. The easiest way to call such a spooler is using a shell script
  1083. with the name opr that calls lpr.
  1084. This script should be placed in /usr/bin or $TARGET_HOME/bin or
  1085. one of the directories in the PATH environment variable.
  1086. .IP clean
  1087. remove all files not needed for day-to-day use,
  1088. that is binaries not in $TARGET_HOME/bin or $TARGET_HOME/lib.bin, object files etc.
  1089. .LP
  1090. Example:
  1091. .DS
  1092. make install
  1093. .DE
  1094. given as command in a configuration directory will cause
  1095. compilation of all programs in the directory and copying of the results
  1096. to the $TARGET_HOME/bin and $TARGET_HOME/lib.bin directories.
  1097. .NH
  1098. Testing
  1099. .PP
  1100. Test sets are available in Pascal, C, Basic and EM assembly:
  1101. .IP EM 8
  1102. the directory $SRC_HOME/emtest contains a few EM test programs.
  1103. The EM assembly files in these tests must be transformed into
  1104. load files.
  1105. These tests use the LIN and NOP instructions to mark the passing of each
  1106. test.
  1107. The NOP instruction prints the current line number during the
  1108. test phase.
  1109. Each test notifies its correctness by calling LIN with a unique
  1110. number followed by a NOP which prints this line number.
  1111. The test finishes normally with 0 as the last number printed
  1112. In all other cases a bug showed its
  1113. existence.
  1114. .IP Pascal
  1115. the directory $SRC_HOME/lang/pc/test contains a few Pascal test programs.
  1116. All these programs print the number of errors found and a
  1117. identification of these errors.
  1118. .sp 1
  1119. .ti +4
  1120. We also tested Pascal with the Validation Suite.
  1121. The Validation Suite is a collection of more than 200 Pascal programs,
  1122. designed by Brian Wichmann and Arthur Sale to test Pascal compilers.
  1123. We are not allowed to distribute it, but a copy may
  1124. be requested from
  1125. .DS
  1126. Richard J. Cichelli
  1127. A.N.P.A.
  1128. 1350 Sullivan Trail
  1129. P.O. Box 598
  1130. Easton, Pennsylvania 18042
  1131. USA
  1132. .DE
  1133. .IP C
  1134. the sub-directories in $SRC_HOME/lang/cem/ctest contain C test programs.
  1135. The idea behind these tests is:
  1136. if there is a program called xx.c, compile it into xx.cem.
  1137. Run it with standard output to xx.cem.r, compare this file to
  1138. xx.cem.g, a file containing the 'ideal' output.
  1139. Any differences will point to implementation differences or
  1140. bugs.
  1141. Giving the command "run gen" or plain "run" starts this
  1142. process.
  1143. The differences will be presented on standard output.
  1144. The contents of the result files depend on the word size,
  1145. the xx.cem.g files on the distribution are intended for a
  1146. 32-bit machine.
  1147. .IP Basic
  1148. the directory $SRC_HOME/lang/basic/test contains some forty Basic programs.
  1149. Not all of these programs are correct, some have syntactic errors,
  1150. some simply don't work.
  1151. The Makefile in that directory attempts to compile and run
  1152. these tests.
  1153. If it compiles its output is compared to a file with suffix .g
  1154. which contains the output to be expected.
  1155. The make should be started with its standard input diverted
  1156. to /dev/null.
  1157. An example of the output of a make is present in the file Out.std.
  1158. .NH
  1159. Documentation
  1160. .PP
  1161. After installation, the manual pages for Amsterdam Compiler Kit can be found
  1162. in the $TARGET_HOME/man directory. Also, the following documents are provided
  1163. in the $TARGET_HOME/doc directory:
  1164. .TS
  1165. l l.
  1166. toolkit.doc general overview (CACM article)
  1167. em.doc description of the EM machine architecture
  1168. ack.doc format of machine description files (lib/*/descr)
  1169. ansi_C.doc ANSI C implementation description
  1170. basic.doc Basic reference manual
  1171. pcref.doc Pascal-frontend reference manual
  1172. val.doc results of running the Pascal Validation Suite
  1173. crefman.doc C-frontend description
  1174. LLgen description of the LL(1) parser generator
  1175. peep.doc internal documentation for the peephole optimizer
  1176. cg.doc documentation for backend writers and maintainers
  1177. regadd.doc addendum to previous document describing register variables
  1178. ncg.doc documentation for the newest backends
  1179. v7bugs.doc bugs in the V7 system and how to fix them
  1180. 6500.doc MSC 6500 backend description
  1181. i80.doc Intel 8080 backend description
  1182. z80.doc Zilog Z80 backend description
  1183. m68020.doc Motorola M68000/M68020 backend description
  1184. sparc.doc SPARC code expander description
  1185. occam.doc occam-frontend description
  1186. ego.doc Global Optimizer description
  1187. top.doc Target Optimizer description
  1188. int.doc description of the EM interpreter written in C
  1189. ceg.doc documentation for code-expander writers and maintainers
  1190. lint.doc documentation of LINT
  1191. m2ref.doc Modula-2 frontend description
  1192. install.doc this document
  1193. install.pr this document (formatted for a simple line printer)
  1194. .TE
  1195. .LP
  1196. Use the Makefile to get readable copies.
  1197. .LP
  1198. Good luck.