ab3@stat-l (Rsk the Wombat) (06/25/84)
Here's some notes I made while installing S under 4.2; these
changes seem to make life somewhat simpler, so I thought I'd
share them and ask for comments for other folks out there.
Many of these ideas came from Mike Meyer @ uwstat; The steps that
he recommended are flagged with an "MM" below.
Conventions: ~ is S's home directory.
1. Things to do before you generate the system.
1a. Get the 4.1c-under-4.2 f77 compiler, and install it. I built
it in ~/sf77. It comes with its own (simple) instructions and came up
with no problem. You will need to edit ~/sf77/f77/drivedefs to define
the places where you will stash the driver and compiler phases; I used
~/sf77/bin and ~/sf77/lib. You'll end up (after you delete .o's, etc.)
with the following files:
~/sf77/bin/sf77
~/sf77/lib/of77pass1
~/sf77/lib/of1
~/sf77/lib/oc2
1b. Make the yacc that came with S. You'll need to edit
~/src/yacc/files to change the directory names to reflect where "~" really is.
Make yacc. [MM]
1c. Make the m4 that came with S. First of all, force it to use
the yacc created in 1b by adding the following line to ~/src/m4/makefile:
YACC=~/src/yacc/yacc
Then make m4. It leaves the output in "a.out", so mv it to "m4". [MM]
2. Fixing S's makefiles to use all this hard work from step 1.
2a. Change ~/cmd/makehead; define f77 as
f77=$${SHOME}/sf77/bin/sf77
and m4 as
m4=$${SHOME}/src/m4/m4 [MM]
It turns out that S likes to throw this file (~/cmd/makehead) onto
the beginning of every makefile it uses, so this changes the definition
universally.
2b. Change ~/adm/cmd/MAKEm4 so that it uses the new m4 when
it tests "m4" to find out if it can handle certain constructions. To do this,
change "m4" to "~/src/m4/m4".
3. Telling S where is lives (directories, operating system, and so on).
3a. In the file ~/ENVIRONMENT, make sure that:
OpSys=Berkeley [MM]
and make sure you have defined "SHOME" to point to S's home directory.
3b. In the file ~/newfun/include/u/mach.m, make sure that:
OpSys=Berkeley
Change the line
define(`F77_MAIN',`MAIN_')
to
define(`F77_MAIN',`MAIN__') [MM]
and add the line:
define(`SHOME',`/userb/s') [MM]
(I don't know why you add this; ask Mike Meyer!)
Also, change the definition of MAX_FILE_NAME_LEN to 255 (rather than
14). [MM]
4. Optional things that may help later.
4a. In ~/adm/cmd/SYSGEN, delete the "-s" flag on the make command;
this will keep make from being quiet, and might help if make dies somewhere.
4b. In ~/cmd/MAKE, delete the "-s" flag on the make command.
4c. Backup the following files, in case something weird happens:
~/adm/cmd/LOGFILE
~/adm/cmd/SOLUTION
~/adm/cmd/LOGCOUNT
4d. Fix the file ~/cmd/editor so that the (possible) spurious ":"
is deleted; I also changed the editor-to-use to "vi" instead of "ed". [MM]
5. Deciding what to include in S; and that nasty blit!
5a. Copy the file ~/src/main/big.list to ~/src/main/infun.list;
this will cause S to load everything in together in the main executable.
This is sort of a local decision; on our 11/780, it creates a 1.16 Mbyte
binary.
5b. Edit the file ~/src/main/stop.list so that it contains the
line "blit". [MM] I also included a line "blitid", since that function
appeared in the "infun.list" mentioned above.
6. Building S.
6a. Change to ~/adm/cmd. Type "SYSGEN", or if you want to see what
happens later, "SYSGEN | tee -a a-file-somewhere-which-logs-everything".
6b. When SYSGEN finally finished (the next day, usually), edit
~/S to delete the line that includes a check for a writable directory;
or comment it out. [MM]
6c. Make sure that you run "~/adm/cmd/DOTEST ALL"; it's one way
of checking the whole process. Don't worry if the test files and standard
files don't *exactly* match; this is allowable for two reasons:
1. The precision of the machines may not be the same.
2. It looks like the commands are run with time(1) used;
and the System V and 4.2BSD time(1) commands produce different output.
--
Rsk the Wombat
UUCP: { decvax, ihnp4, uiucdcs, ucbvax } !pur-ee!rsk
{ decwrl, hplabs, psuvax1 } !purdue!rsk
"Hey, has anybody seen a ghost?"