.SUFFIXES: .c .V

# Fix up local paths, machine, etc in file h/`machine`.defs
# which will be inserted just below this point in several makefiles.

# begin makedefs
AKCLDIR=/usr/local/src/akcl-1-599
SHELL=/bin/sh
MACHINE=NeXT
LBINDIR=/usr/local/bin

# For NeXT Operating system 2.

OFLAG= -O
ODIR_DEBUG=  -g
LIBS	= -lm -lg 

CC = cc -DVOL=volatile -I$(AKCLDIR)/o -fwritable-strings

LDCC= ld -noseglinkedit -segprot __TEXT rwx rwx

ODIR_DEBUG= -g

EXTRA_OTARGETS= sbrkNeXT.o unexNeXT.o seekNeXT.o
EXTRAS= $(ODIR)/sbrkNeXT.o $(ODIR)/unexNeXT.o $(ODIR)/seekNeXT.o

MAINDIR = /usr/local/src/kcl
CFLAGS	= -c $(DEFS)  -I../h

MAIN    = ../o/main.o


RSYM	= rsym
SFASL	= $(ODIR)/sfaslNeXT.o

INITFORM=(si::build-symbol-table)(load "../lsp/setdoc.lsp")

MPFILES= $(MPDIR)/mpi-bsd68k.o   $(MPDIR)/libmport.a

# Use symbolic links
SYMB=-s
# the  make to use for saved_kcp the profiler.
#KCP=kcp-sun
KCP=kcp-next

NULLFILE = ../h/secondary_sun_magic
MAINDIR = /usr/local/src/kcl
# end makedefs

HDIR = h
CHANGED=nevernever.c
BOTH=nevernever
MERGE=./merge

all: h/config.h V/cmpnew/cmpvar.lsp
# If the links have not yet been made do it:
# set SYMB=-s in relink-script if you want symbolic links
#	xbin/if-exists xbin/${MACHINE}-fixes "sh xbin/${MACHINE}-fixes"
#	xbin/relink-files $(MAINDIR) $(SYMB)
#	make -f Smakefile merge
#	make -f Smakefile sources
#	@ rm -f   c/include.h
#	make -f Smakefile cmpinclude  
#	make -f  makefile  all  "CC=$(CC)" "SU=$(SU)"
# 	second pass may recompile some cmpnew and lsp files.
	make -f makefile all "CC=$(CC)" "SU=$(SU)"
	@- if  fgrep ASSIGN-DOWN cmpnew/cmpvar.c > /dev/null ; \
	then echo "Make of AKCL `cat minvers` completed." ; \
	else echo "The second pass of make failed to compile the new compiler" ;fi

h/config.h:
	@ echo You should read the README file first:  You forgot to do
	echo "% add-defs machine-name"
	exit 1
	
V/cmpnew/cmpvar.lsp: ${MAINDIR}/cmpnew/cmpvar.lsp
	@ echo You MUST restore the kcl.tar.Z and akcl.tar.Z with original write dates
	@ echo No file in 'V/*/*' should be older than any file in ${MAINDIR}.
	@ echo extract the files again or maybe touch 'V/*' 'V/*/*' 'V/*/*/*'
	exit 1

Vmakefile:  V makedefs
	xbin/make-Vmake > Vmakefile

sources: $(MERGE) Vmakefile
	make -f Vmakefile
	rm -f c/num_include.h c/include.h


merge:  merge.c
	cc -O merge.c -o $(MERGE)

remove-linked-changes:
	echo rm -f bin/dpp c/include.h V/* */V/* | sed s:V/::g | sh

chown:
	echo su and make -f Smakefile chown1
chown1:
	chown $(LOGNAME) o cmpnew lsp unixport c h doc xbin . \
	Smakefile   V/*  */V/* 

clean-V:
	for v in */V/* ; do \
		echo mv $$v $$v.old | sed s:V/::g | sh  ;  \
		echo ln -s ../standard-kcl/$$v $$v | sed s:V/::g | sh ;  \
	done
	for v in V/*; do \
		echo mv $$v $$v.old | sed s:V/::g | sh  ;  \
		echo ln -s standard-kcl/$$v $$v | sed s:V/::g | sh ;  \
	done

setup:
	make -f Smakefile remove-linked-changes
	make -f Smakefile chown1
	echo "xbin/relink-script $(MAINDIR) `pwd`"  | sh
	



cmpinclude:
	for v in c lsp o cmpnew unixport; do \
		rm -f $$v/cmpinclude.h ; \
		ln  h/cmpinclude.h  $$v/cmpinclude.h ; \
	done

tar:
	tar cf ../xkcl.tar .
	
clean:	
	rm -f *~ #* */*~ */#* merge
	for v in o unixport cmpnew lsp ; do  (cd $$v ; make clean ); done

sunview:
	$(MERGE) standard-kcl/unixport/makefile sunv/chang sunv/makefile
	make -f Smakefile "PORTDIR=sunv"


# remove the c files from the changed version, and relink them to 
# the MAINDIR.
redolsp: 
	for v in `echo lsp/V/*.lsp cmpnew/V/*.lsp | sed -e "s:\.lsp::g" -e "s:V/::g"` ;
	do rm -f $$v.lsp $$v.c $$v.data $$v.o ;
	ln $(MAINDIR)/$$v.lsp $$v.lsp ;
	ln $(MAINDIR)/$$v.c $$v.c ;
	ln $(MAINDIR)/$$v.data $$v.data ;
	ln $(MAINDIR)/$$v.h $$v.h ;
	rm unixport/saved_kcl;
	make ;
	make;


doc:
	(cd doc ; make install "LBINDIR=$(LBINDIR)")

xbin/print_doc: xbin/print_doc.c
	$(CC) xbin/print_doc.c -o xbin/print_doc
	

lsp/DOC:  
	echo '(load "lsp/setdoc.lsp")(load "lsp/doc-file.lsp")(doc-file "lsp/DOC" (quote(lisp si)))' | xbin/kcl 


kcp:
	(cd go ; make  "CFLAGS = -I../h -pg  -c -g ")
	(cd unixport ; make kcp)

	
	
	
