all : all-plugin ox ox_null ox_sm1 testclient oxlog

KANHOME = ../SSkan

#LFLAG = -lnsl -lsocket /usr/ucblib/libucb.a
LFLAG =
#CFLAGS = -DSOLARIS
CFLAGS = -g
MYOSTYPE = linux
## This is the Makefile at kxx.
## 1998, 2/7  , Old version is at S/kan.backup/kxx.tar.gz.19980206
##
.c.o :
	gcc  $(CFLAGS) -c  $<

all-plugin :
	(cd $(KANHOME)/plugin ; make )

ox.a : 
	/bin/rm -f ox.a
	ln -s $(KANHOME)/plugin/ox.a ox.a
ox_kan.h :
	/bin/rm -f ox_kan.h
	ln -s $(KANHOME)/plugin/ox_kan.h ox_kan.h

ox : oxmain.c ox.a file2.o ox_kan.h
	gcc $(CFLAGS) oxmain.c ox.a file2.o -o ox  $(LFLAG)

ox_null : oxserver00.c ox.a nullstackmachine.o file2.o ox_kan.h
	gcc $(CFLAGS) oxserver00.c ox.a nullstackmachine.o file2.o -o ox_null  $(LFLAG)

ox_sm1 : oxserver00.c sm1stackmachine.o ox_kan.h ox.a $(KANHOME)/Kan/kanlib.a
	(cd $(KANHOME)/Kan ; make kanlib.a)
	gcc $(CFLAGS) oxserver00.c sm1stackmachine.o -o ox_sm1  $(LFLAG) $(KANLIB)

oxlog : oxlog.c
	gcc -o oxlog oxlog.c

## file2.c file2.h is in SSkan/plugin/
file2.o : $(KANHOME)/plugin/file2.c  $(KANHOME)/plugin/file2.h
	gcc $(CFLAGS) -DKXX=1 -I$(KANHOME)/plugin -c $(KANHOME)/plugin/file2.c 

nullstackmachine.o : nullstackmachine.c ox_kan.h
sm1stackmachine.o : sm1stackmachine.c  ox_kan.h

testclient : testclient.c ox.a file2.o ox_kan.h
	gcc $(CFLAGS) testclient.c -o testclient ox.a file2.o $(LFLAG)


KANLIB = $(KANHOME)/Kan/kanlib.a $(KANHOME)/gmp/libgmp.a $(KANHOME)/gmp/mpn/libmpn.a $(KANHOME)/gc/gc.a

## file2 should be linked from kanlib.a

testclient2a : testclient2.c ox.a  ox_kan.h $(KANHOME)/Kan/kanlib.a
	gcc $(CFLAGS) -I$(KANHOME)/Kan testclient2.c ox.a  -o testclient2a  $(LFLAG) $(KANLIB)

testclient2 : testclient2.c  ox_kan.h $(KANHOME)/Kan/kanlib.a ox.a
	gcc $(CFLAGS) -I$(KANHOME)/Kan testclient2.c -o testclient2  $(LFLAG) $(KANLIB)


clean :
	/bin/rm -f ox testclient ox_null ox_sm1 testclient2 core *.o a.out *.dvi *.aux openxxx.log  ox_sm1 oxlog *~

BACKUPDIR = Old/19980112
backup :
	/bin/cp Makefile *.c *.h *.sm1 $(BACKUPDIR)

PR = lpt1
print :
	a2ps ox.sm1 | lpr -P$(PR)
	a2ps oxasir.sm1 | lpr -P$(PR)
	a2ps ox-1.sm1 | lpr -P$(PR)
	a2ps ox_kan.h | lpr -P$(PR)
	a2ps testclient.c | lpr -P$(PR)
	a2ps oxmain.c | lpr -P$(PR)
	a2ps oxserver00.c | lpr -P$(PR)
	a2ps nullstackmachine.c | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/oxmisc.c | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/oxmisc2.c | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/mytcpio.c | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/oxmisc2.h | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/oxx.h | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/file2.c | lpr -P$(PR)
	a2ps $(KANHOME)/plugin/file2.h | lpr -P$(PR)

install :
	cp  ox ox_sm1 ox.sm1 ox-1.sm1 /fuji/taka/S/ox/$(MYOSTYPE)
	cp  $(KANHOME)/Kan/sm1 /fuji/taka/S/ox/$(MYOSTYPE)
	cp -r $(KANHOME)/develop/sch /fuji/taka/S/ox/$(MYOSTYPE)
install-sch :
	cp -r $(KANHOME)/develop/sch /fuji/taka/S/ox/$(MYOSTYPE)

noro :
	cp $(KANHOME)/Kan/sm1 .
	cp $(KANHOME)/Kan/debug/tower-sugar.sm1 .
	cp $(KANHOME)/Kan/debug/tower.sm1 .
	cp $(KANHOME)/Doc/factor-a.sm1 .
	echo "sm1 ox ox_sm1 oxasir.sm1 oxasir.asir tower-sugar.sm1 tower.sm1 factor-a.sm1 are generated in yama:kxx/make noro on " > note.sm1binary.txt
	date >> note.sm1binary.txt
	tar czvf sm1binary.linux.tgz  sm1  ox.sm1  oxasir.sm1  ox ox_sm1  oxlog2.txt oxasir.asir tower-sugar.sm1 tower.sm1 factor-a.sm1 note.sm1binary.txt
	/bin/rm sm1 tower-sugar.sm1 tower.sm1 factor-a.sm1 note.sm1binary.txt
	/bin/rm -f /fuji/taka/S/sm1binary.linux.tgz
	mv sm1binary.linux.tgz /fuji/taka/S

backup2 :
	cp openxxx.tex $(HOME)/berkeley/gbhg3/Bak

clean-binary :
	echo " ../open-sm1-binary*  will be removed"
	echo "after 10 seconds. To cancel type in ctrl-C."
	( sleep 10 ; /bin/rm -rf ../open-sm1-binary* )
