Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site stat-l Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!inuxc!pur-ee!CS-Mordred!Pucc-H:Pucc-I:Stat-L:ab3 From: ab3@stat-l (Rsk the Wombat) Newsgroups: net.math.stat Subject: Installing S under 4.2bsd Message-ID: <130@stat-l> Date: Mon, 25-Jun-84 12:37:31 EDT Article-I.D.: stat-l.130 Posted: Mon Jun 25 12:37:31 1984 Date-Received: Thu, 28-Jun-84 02:33:14 EDT Organization: Pucc Unix Systems Group Lines: 132 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?"