[net.math.stat] Installing S under 4.2bsd

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?"