M2M2 = /u/ksos/ksos32/tools/m2m2
INITM1 = /u/ksos/ksos11/initial_process/work/init.m1

FILES = init.mod initMisc.mod K32stuff.def KernelCalls.mod NKernelCalls.mod\
initTerm.mod rw.mod strio.mod NKSR.def c32Arith.mod Nlib.mod NPI.mod\
ipcPI.mod timePI.mod sigPI.mod iocPI.mod hardPI.mod udmLib.mod udmComm.mod\
structIo.mod PBBld.mod

BYHAND = NKSR.def NPI.mod Nlib.mod PBBld.mod init.mod initMisc.mod\
initTerm.mod iocPI.mod ipcPI.mod rw.mod sigPI.mod strio.mod structIo.mod\
timePI.mod udmComm.mod udmLib.mod

all: $(FILES)

NKSR.def: NKSR.head
NPI.mod: NPI.head
Nlib.mod: Nlib.head
PBBld.mod: PBBld.head
c32Arith.mod: c32Arith.head
init.mod: init.head
initMisc.mod: initMisc.head
initTerm.mod: initTerm.head
iocPI.mod: iocPI.head
ipcPI.mod: ipcPI.head
rw.mod: rw.head
sigPI.mod: sigPI.head
strio.mod: strio.head
timePI.mod: timePI.head
udmComm.mod: udmComm.head
udmLib.mod: udmLib.head
$(FILES): init.m2 split-init.el
	OLDVERSIONS $(BYHAND)
	emacs -batch init.m2 -l split-init -f split-init -kill
	UPDATE $(BYHAND)
	CHANGES

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

init.Out: $(M2M2) $(INITM1) init_idents init_builtins
	-mv $@ $@~
	$(M2M2) -i init_idents -b init_builtins $(INITM1) > $@

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

m2makefile: $(FILES)
	mkdir .Tmp
	ls *.def *.mod | sed -e '/32/d' -e '/Calls/d' -e 's=.*=~ksos/tools/mpp -Dioc_on -Dipc_on -Dsig_on -Dtime_on -Dtime_conv -DIface & > .Tmp/&=' | csh
	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 $@~ $@
