Commit | Line | Data |
---|---|---|
02f811f2 C |
1 | File: ReadMe -[Tue Mar 29 22:03:29 1983 by jkf]- |
2 | Location: the root of the lisp distribution tree | |
3 | ||
4 | This directory contains a Makefile which can will direct the | |
5 | initial construction and installation of the Franz Lisp system. After the | |
6 | lisp system is installed, the Makefiles in the subdirectories should be | |
7 | used directly when modifications are made to either piece of code. | |
8 | ||
9 | The lisp system consists of these parts: | |
10 | 1) lisp - lisp interpreter | |
11 | 2) liszt - lisp compiler | |
12 | 3) lxref - lisp cross reference program | |
13 | 4) library of files - collection of lisp files. Some are already loaded | |
14 | into lisp. Others are loaded on demand. Still others are just | |
15 | contributed files. | |
16 | 5) on-line manual - the lisp manual formatted for lineprinter or terminal | |
17 | perusal. The lisp 'help' command refers to this manual | |
18 | 6) lisp manual - the troff input form for the lisp manual. If you can | |
19 | run troff or nroff at your site then you can generate a lisp manual | |
20 | from the files in this directory. | |
21 | 7) pearl AI database program - this is a contributed program. More details | |
22 | can be found in the file pearl/ReadMe. This program will not | |
23 | be generated automatically by the Makefile in this directory. | |
24 | If disk space is short, the pearl subdirectory may be removed | |
25 | and it won't affect any other programs. | |
26 | ||
27 | To build lisp, follow these steps: | |
28 | ||
29 | 1) Run './lispconf' to describe the system you will be building lisp for. | |
30 | Just type './lispconf' and it will describe the possible | |
31 | configurations. Typically, when lisp is distributed it is configured | |
32 | to run under 4.1c on a vax. | |
33 | ||
34 | Look in franz/h/config.h. You may want to alter some of the | |
35 | configuration parameters before you start. | |
36 | ||
37 | 2) Look at the path name defaults in the Makefiles in the various | |
38 | source directories ({franz,liszt}/{vax,68k},utils,lisplib). | |
39 | You can modify these defaults if you like. It is suggested | |
40 | that you leave the lisp library in /usr/lib/lisp. | |
41 | Most code doesn't really depend on where the library is, | |
42 | just as long as when the system is built, the directory | |
43 | name is known. However, some application programs may depend on the | |
44 | library being in /usr/lib/lisp. | |
45 | ||
46 | 3) If this is a distribution of lisp source (as opposed to a complete | |
47 | 4.x distribution) then you will want to copy the | |
48 | lisp library files in lisplib into the lisp library (typically | |
49 | /usr/lib/lisp). [If you don't want to use /usr/lib/lisp change | |
50 | the value of LibDir in the Makefile]. Now type | |
51 | make copylibrary | |
52 | and the library files in lisplib will be copied to the lisp | |
53 | library. If an error message occurs, it may be that you don't | |
54 | have permissions to write in the lisp library. If this is the | |
55 | case, fix the permissions and type 'make copylibrary' again. | |
56 | ||
57 | 4) If you have a working lisp system, then you may be able to bring the | |
58 | system up quickly. Type | |
59 | make fast | |
60 | and the Makefile will attempt to build a new lisp, liszt, and lxref | |
61 | and place them in franz/mylisp, liszt/nliszt and liszt/lxref respectively. | |
62 | [See Note 1 below.] | |
63 | If it fails, then you may just have to start from scratch, see step 5. | |
64 | If it works, go to step 6. | |
65 | ||
66 | 5) To make the entire lisp system, interpreter and compiler, from scratch, | |
67 | type: | |
68 | make slow | |
69 | This may take three to four hours on an unloaded vax. | |
70 | See Note 1 below. | |
71 | ||
72 | 6) once the files are made, type | |
73 | make install | |
74 | and new versions of lisp, liszt and lxref (the compiler cross reference | |
75 | program) will be installed in ObjDir. | |
76 | ||
77 | 7) If you've changed where files live, then you should change the defaults | |
78 | in each of the makefiles: liszt/Makefile, franz/Makefile, doc/Makefile | |
79 | and /usr/lib/lisp/Makefile. | |
80 | ||
81 | ||
82 | Note 1: Two files which are necessary yet which are not distributed | |
83 | are the assembler and linking loader. The assembler is required by | |
84 | liszt after it has compiled a file, the loader is required by the 'cfasl' | |
85 | and 'ffasl' functions. These programs are expected to be in | |
86 | /usr/lib/lisp/as and /usr/lib/lisp/nld. The Makefile will copy | |
87 | them from /bin/as and /bin/ld. If you are running a Berkeley vax | |
88 | distribution, this is ok. If you are using non-berkeley as or ld | |
89 | then you will have to get a copy of the berkeley as or ld and place | |
90 | them in /usr/lib/lisp yourself. We don't distribute them because | |
91 | they require a Unix license and because we want to avoid distributing | |
92 | object files. | |
93 | ||
94 | Note 2: For 68000 systems, we can distribute source for the assembler, | |
95 | by agreement with MIT, Megatest Corp and Sun Microsystems. As an aid | |
96 | to constructing the lisp system on machines with limited memory or swap | |
97 | space, you may have received the assembly language output of the | |
98 | compiler for the lisp library and compiler itself. The 68k compiler | |
99 | starts out running as 1.25 Megabytes and will grow larger as it retains | |
100 | macros and other information about the functions it is compiling. | |
101 | (This may be impossible on certain systems.) | |
102 | ||
103 | The .s files are distributed in files of the form x68k.38.58.*. The | |
104 | source for the assembler is in a file called lispas. In any case, you | |
105 | should still say "cat * | sh", in order to create the appropriate | |
106 | files. To construct the assembler, assemble the .s files, and contruct | |
107 | the lisp system quickly, say "make fromasm" instead of "make slow". | |
108 | ||
109 | ||
110 | Changes: | |
111 | Look in franz/ChangeLog and liszt/ChangeLog for a blow by blow description | |
112 | of bug fixes and new features. Also the file lispnews in this directory | |
113 | describes changes to lisp which affect the user. This file is most | |
114 | easily read with 'mail -f lispnews'. | |
115 | ||
116 | The major changes are described next. | |
117 | ||
118 | opus 38: the reader has changed quite a bit. It now uses symbolic | |
119 | syntax codes and it provides infix macros. | |
120 | The lisp library files have been reorganized in order to make | |
121 | lisp bootstrapable. | |
122 | ||
123 | Future bug fixes: | |
124 | When you find bugs in Lisp or Liszt, mail a letter to franz-bugs@berkeley | |
125 | or ucbvax!franz-bugs. | |
126 | We will mail bug fixes to the franz-composers mailing list. To get on | |
127 | this mailing list, mail a letter to franz-friends-request@berkeley or | |
128 | ucbvax!franz-friends-request. | |
129 | ||
130 | Documentation: | |
131 | The source (troff form, with -me macros) for the Franz Lisp Manual is | |
132 | in the doc subdirectory. There is a line printer printable version | |
133 | in lisplib/manual (which is most likely copied to /usr/lib/lisp/manual). | |
134 | There is also a system manual which may be of interest to people who | |
135 | want to modify the lisp system or just understand how it works. The file | |
136 | is doc/franz.n. | |
137 | ||
138 | ||
139 | The meanings of the default directories and paths in the Makefiles | |
140 | in this directory tree (and LibDir) | |
141 | ||
142 | LibDir : [/usr/lib/lisp] | |
143 | directory containing the lisp library sources, some of which | |
144 | are required to build a lisp system. Change this with caution, | |
145 | Some programs may depend on it being /usr/lib/lisp | |
146 | ||
147 | DestObjDir : [/usr/ucb] | |
148 | place to put the lisp and liszt that we build. Note that for | |
149 | the liszt -r flag to work, the lisp interpreter must be in | |
150 | /usr/ucb | |
151 | ||
152 | ObjDir: Directory containing existing lisp and liszt (if they exist). | |
153 | if they don't exist, then you will do a 'make slow' and the value | |
154 | of ObjDir doesn't matter | |
155 | ||
156 | LispDist: [/usr/src/cmd/lispdist] | |
157 | directory to build distribution in. | |
158 | ||
159 | CcodeDir: [../franz] | |
160 | location of C coded kernel as seen from the liszt directory | |
161 | ||
162 | CopyTo : used as the destination directory of some of the commands in | |
163 | the makefile. it has a different meaning in each. | |
164 | ||
165 |