M2LIB = /usr/local/lib/m2/NEW
K32TLIB = /u/ksos/ksos32/lib/trusted

stc.out: objects $(K32TLIB)/.lnk/K32baseTypes $(K32TLIB)/.lnk/K32types \
  $(K32TLIB)/.lnk/IOform $(K32TLIB)/.lnk/IOFform $(K32TLIB)/.lnk/K32machine \
  $(M2LIB)/.lnk/UnixProcess $(M2LIB)/.lnk/UnixSignals $(M2LIB)/.lnk/UnixIO \
  $(M2LIB)/.lnk/UnixMCI $(K32TLIB)/.lnk/IOEform $(K32TLIB)/.lnk/IOpack m2path
	m2l -E stc

objects: .lnk/string .lnk/stc .lnk/misc .lnk/extio .lnk/convio .lnk/chario \
  .lnk/bio
	touch $@

symbols: .sym/string .sym/misc .sym/extio .sym/convio .sym/chario .sym/bio
	touch $@

sources: string.mod string.def stc.mod misc.mod misc.def extio.mod extio.def \
  convio.mod convio.def chario.mod chario.def bio.mod bio.def

.lnk/string: string.mod .sym/string $(K32TLIB)/.sym/K32baseTypes m2path
	run.m2c -T -E string.mod

.lnk/stc: stc.mod $(K32TLIB)/.sym/K32baseTypes $(K32TLIB)/.sym/K32types \
  $(K32TLIB)/.sym/IOform $(K32TLIB)/.sym/IOFform .sym/misc .sym/chario \
  .sym/convio .sym/extio m2path
	run.m2c -T -E stc.mod

.lnk/misc: misc.mod .sym/misc $(K32TLIB)/.sym/K32machine \
  $(K32TLIB)/.sym/K32baseTypes $(M2LIB)/.sym/UnixProcess \
  $(M2LIB)/.sym/UnixSignals m2path
	run.m2c -T -E misc.mod

.lnk/extio: extio.mod .sym/extio $(K32TLIB)/.sym/K32machine \
  $(K32TLIB)/.sym/K32baseTypes $(K32TLIB)/.sym/IOform \
  $(K32TLIB)/.sym/IOEform $(K32TLIB)/.sym/IOFform $(K32TLIB)/.sym/IOpack \
  $(M2LIB)/.sym/UnixIO .sym/misc .sym/chario .sym/string .sym/convio \
  .sym/bio m2path
	run.m2c -T -E extio.mod

.lnk/convio: convio.mod .sym/convio $(K32TLIB)/.sym/K32baseTypes .sym/chario \
  m2path
	run.m2c -T -E convio.mod

.lnk/chario: chario.mod .sym/chario $(K32TLIB)/.sym/K32baseTypes \
  $(K32TLIB)/.sym/IOform .sym/misc .sym/convio $(M2LIB)/.sym/UnixIO \
  $(M2LIB)/.sym/UnixMCI m2path
	run.m2c -T -E chario.mod

.lnk/bio: bio.mod .sym/bio $(K32TLIB)/.sym/K32baseTypes \
  $(K32TLIB)/.sym/IOform $(M2LIB)/.sym/UnixIO $(M2LIB)/.sym/UnixMCI \
  .sym/misc .sym/chario .sym/convio m2path
	run.m2c -T -E bio.mod

.sym/string: string.def
	run.m2c -T string.def

.sym/misc: misc.def $(K32TLIB)/.sym/K32machine $(K32TLIB)/.sym/K32baseTypes \
  m2path
	run.m2c -T -E misc.def

.sym/extio: extio.def $(K32TLIB)/.sym/K32baseTypes $(K32TLIB)/.sym/IOform \
  m2path
	run.m2c -T -E extio.def

.sym/convio: convio.def $(K32TLIB)/.sym/K32baseTypes m2path
	run.m2c -T -E convio.def

.sym/chario: chario.def $(K32TLIB)/.sym/K32baseTypes m2path
	run.m2c -T -E chario.def

.sym/bio: bio.def $(K32TLIB)/.sym/K32machine $(K32TLIB)/.sym/K32baseTypes \
  $(K32TLIB)/.sym/IOform m2path
	run.m2c -T -E bio.def

string.mod: RCS/string.mod,v
	co -b -q $@

string.def: RCS/string.def,v
	co -b -q $@

stc.mod: RCS/stc.mod,v
	co -b -q $@

misc.mod: RCS/misc.mod,v
	co -b -q $@

misc.def: RCS/misc.def,v
	co -b -q $@

extio.mod: RCS/extio.mod,v
	co -b -q $@

extio.def: RCS/extio.def,v
	co -b -q $@

convio.mod: RCS/convio.mod,v
	co -b -q $@

convio.def: RCS/convio.def,v
	co -b -q $@

chario.mod: RCS/chario.mod,v
	co -b -q $@

chario.def: RCS/chario.def,v
	co -b -q $@

bio.mod: RCS/bio.mod,v
	co -b -q $@

bio.def: RCS/bio.def,v
	co -b -q $@

m2path: RCS/m2path,v
	co -b -q $@

install: stc.out
	csh -fc "cp stc.out ~ksos/bin/stc"
	touch $@

m2makefile:
	mkdir .Tmp
	ls *.def *.mod | sed -e 's=.*=mpp & > .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

clean:
	rm -f objects symbols install m2makefile
