SSPM1 = /u/ksos/ksos11/src/nksr/SSP/work/SSP.m1

FILES = SSP.mod OTHER.mod stringFunctions.mod sundry.mod NIOC.mod\
NIOD.mod NIOT.mod NIOF.mod SIO.mod sysdb.mod userdb.mod groupdb.mod\
termdb.mod secdb.mod KIOS.mod pathManagement.mod auditing.mod\
SSPargumentHandling.mod lin.mod lot.mod cal.mod cgp.mod sspmisc.mod

BYHAND = KIOS.mod NIOC.mod NIOD.mod NIOF.mod NIOT.mod SIO.mod SSP.mod\
SSPargumentHandling.mod auditing.mod cal.mod cgp.mod groupdb.mod\
lin.mod lot.mod pathManagement.mod secdb.mod sspmisc.mod\
stringFunctions.mod sundry.mod sysdb.mod termdb.mod userdb.mod

all: $(FILES)

KIOS.mod: KIOS.head
NIOC.mod: NIOC.head
NIOD.mod: NIOD.head
NIOF.mod: NIOF.head
NIOT.mod: NIOT.head
SIO.mod: SIO.head
SSP.mod: SSP.head
SSPargumentHandling.mod: SSPargumentHandling.head
auditing.mod: auditing.head
cal.mod: cal.head
cgp.mod: cgp.head
groupdb.mod: groupdb.head
lin.mod: lin.head
lot.mod: lot.head
pathManagement.mod: pathManagement.head
secdb.mod: secdb.head
sspmisc.mod: sspmisc.head
sundry.mod: sundry.head
sysdb.mod: sysdb.head
termdb.mod: termdb.head
userdb.mod: userdb.head
$(FILES): SSP.m2 split-SSP.el
	OLDVERSIONS $(BYHAND)
	emacs -batch SSP.m2 -l split-SSP -f split-SSP -kill
	UPDATE $(BYHAND)
	CHANGES

SSP.m2: SSP.Out fix-SSP.el
	-mv SSP.Out~ SSP.Out~~
	emacs -batch SSP.Out -l fix-SSP -f fix-SSP -f basic-save-buffer -kill
	-mv $@ $@~
	mv SSP.Out $@
	mv SSP.Out~ SSP.Out
	-mv SSP.Out~~ SSP.Out~

SSP.Out: $(SSPM1) SSP_idents SSP_builtins
	-mv $@ $@~
	m2m2 -i SSP_idents -b SSP_builtins $(SSPM1) > $@

m2:
	NEWVERSIONS $(BYHAND)
	make -f m2Makefile symbols objects

m2makefile: $(FILES) m2path
	NEWVERSIONS $(BYHAND)
	mkdir .Tmp
	ls *.def *.mod | sed -e '/OTHER/d' -e 's=.*=mpp -DIface -DDIAG -DDEBUG & > .Tmp/&=' | sh
	ls -f .Tmp | sed '/^\.*$$/d' > .TmpDir
	ls .Tmp | diff - .TmpDir
	cd .Tmp ; ln -s ../m2path ; m2make -E
	-mv $@ $@~
	mv .Tmp/makefile $@
	rm -r .Tmp .TmpDir

symbol-index:
	NEWVERSIONS $(BYHAND)
	new_symbol_index
	diff $@~ $@
