Sun Aug  8 11:22:54 EDT 1993 -- Doug Dyer: ddyer@afit.af.mil

Install notes for building Austin Kyoto Common Lisp on BSD/386 using
386BSD port files and BSD/386 port files.   

NEWS FLASH: AKCL now compiles itself under BSD/386.  Actually, the
original port yielded an AKCL that could compile itself, but my
machine (using 0.9.4) always crashed before that point.  Thanks for
1.0, BSDI!

======================================================================
Installation - The Short Story (i.e., execute these commands)
% mv bsd386-akcl.tar.Z /usr2
% cd /usr2				; using a different directory 
% zcat bsd386-akcl.tar.Z | tar -xvf -	; will require editing h/BSD386.defs
% mkdir kcl ; cd kcl			; after unpacking BSD386.tar.Z
% zcat ../kcl.tar.Z | tar -xvf -
% cd .. ; mkdir akcl ; cd akcl
% zcat ../akcl-1-615.tar.Z | tar -xvf -
% zcat ../BSD386.tar.Z | tar -xvf -
% add-defs BSD386      ;You may increase MAXPAGE in h/BSD386.h before this step
% make -f Smakefile
% make -f Smakefile rest	; Similarly, you may increase IHSSIZE in 
				; h/frame.h before this step

Now go away and come back in a couple of hours to find the saved_kcl
binary in akcl/unixport.  
=======================================================================

Installation - The Long Story 

1.  I have now automated building AKCL for BSD/386.  You may choose to
stop at two points (for those who wish to enlarge the invocation
history stack), but you won't have to edit files unless you choose to.
Follow these install notes and you should have no problem making AKCL
for BSD/386 1.0.  As an overview, the AKCL and KCL distributions are
to be unpacked in sister directories.  In accordance with the SIGLISP
license, files in the KCL directory won't ever be altered.  Then the
BSD386 tar file will be unpacked in the AKCL directory, overwriting
some files and patching others.  Then we can build AKCL.  Installation
takes about 2 hours, but you won't have to be available for most of
it.  (Perhaps this is a good job to do when you are ready to leave the
computer for a while.)

2.  I chose to unpack things in the /usr2 directory.  It will be most
convenient for you to do so also.  If you choose some other directory,
you'll have to change directory specifications in in h/386bsd.def (at
least, but perhaps that's the only change needed). Assuming you choose
/usr2 and are the superuser...

Put akcl-1-6xx-tar.Z, kcl.tar.Z, 386bsd.tar.Z, and BSD386.tar.Z in /usr2.
Then do 

gizmo(25):/usr2# mkdir kcl ; cd kcl
gizmo(26):/usr2/kcl# zcat ../kcl.tar.Z | tar -xvf -
	(output)
gizmo(27):/usr2/kcl# cd .. ; mkdir akcl ; cd akcl
gizmo(28):/usr2/akcl# zcat ../akcl-1-615.tar.Z | tar -xvf -
	(output)
				;; My convention is to show actual 
				;; output if it is not too long
				;; Long output gets an (output) note

gizmo(30):/usr2/akcl# zcat ../BSD386.tar.Z | tar -xvf -
386bsd.patch
BSD386.patch
Smakefile
Vmf.patch
add-defs
h/
h/ftime.h
h/BSD386.defs
h/BSD386.h
unixport/
unixport/system.c
xbin/
xbin/appendifdata
xbin/relink-script

Remember, directory names are hardwired in files Smakefile and in
386bsd.defs.  If you chose some directory other than /usr2 to unpack
in, edit file names in these two files now.

[Note: If your machine has 16Mb or more, you may wish to increase the
MAXPAGE value in /usr2/akcl/h/386bsd.h at this time.]

3.  Now lets start the build.  We'll begin with `add-defs 386bsd' and
then do `make -f Smakefile'. 

gizmo(31):/usr2/akcl# add-defs BSD386
using BSD386.defs
cc -O merge.c -o ./merge
inserting h/BSD386.defs in ..
 Smakefile, mp/makefile, V/makefile, V/o/makefile, V/lsp/makefile, V/unixport/makefile, V/cmpnew/makefile, unixport/make_kcn,
cmp: h/config.h: No such file or directory
h/BSD386.h and h/config.h were not the same.
ln h/BSD386.h h/config.h
tmpx and V/h/cmpinclude.h were not the same.
ln tmpx V/h/cmpinclude.h

gizmo(32):/usr2/akcl# make -f Smakefile
	(output)

I've edited the Smakefile to stop the build at this point because you
may wish to enlarge the invocation stack history to enable larger
recursive calls.  If your machine has 16Mb or more, you may wish to
increase the IHSSIZE value in /usr2/akcl/h/frame.h at this time.

Now do `make -f Smakefile rest' to complete the build.

gizmo(35):/usr2/akcl# make -f Smakefile rest
	(output...takes a long while)
gizmo(36):/usr2/akcl# 

Now you should have a saved_kcl (binary akcl) that has compiled itself
in the akcl/unixport directory.

======================================================================

For the port buffs:

For those who are want to know, my patches remove the silent specifier
`@' in make description files, replace fgrep with grep, add an include
file, and avoid concatenating null data files.

File			Replace all		With
akcl/Vmakefile		`@ rm'			`rm'
akcl/lsp/makefile	`@ ../xbin'		`../xbin'
akcl/lsp/makefile	`cat '			`../xbin/appendifdata '
akcl/lsp/makefile	`../xbin/append '	`../xbin/appendifdata '
akcl/lsp/makefile	`>>'			`'
akcl/cmpnew/makefile	`@ ../xbin'		`../xbin'
akcl/cmpnew/makefile	`cat '			`../xbin/appendifdata '
akcl/cmpnew/makefile	`../xbin/append '	`../xbin/appendifdata '
akcl/cmpnew/makefile	`>>'			`'
akcl/mp/makefile  	`fgrep'			`grep'
akcl/unixport/makefile  `fgrep'			`grep'

File			Insert at line 34
akcl/c/unixtime.c	#include "ftime.h"

Xbin/appendifdata is a script that doesn't append .data files unless
they are more than one byte long.  This avoids an error when linking
raw_kcl.  

Enjoy,

DOUGLAS E. DYER, Capt, USAF                             AFIT/EN/4612
Doctoral Candiate, Computer Engineering/AI Planning     WPAFB, OH 45433
Air Force Institute of Technology, WPAFB OH             (513) 255-9918
========================================================================












