# Project name:   Memphis
#
# AMU Makefile for MemFS/MemFSFiler modules
# By BDB & Nick Smith, 1993-7

# Toolflags:
SQUEEZE = squeeze -v
MSQUEEZE = modsqz -v
DEPEND = -depend !Depend
CFLAGS= $(DEPEND) -c -zM -ffah -throwback -I^.fslib -IC:
CC=cc
LN = link -rmf -map
AS = aasm $(DEPEND) -throwback -m -q
DATFLAGS = -DP -P -S -D _data -L _length

# Dependencies

LIBS = c:stubs.o c:risc_oslib.o

FSFILES = ^.fslib.FSLIB

FSLIB = $(FSFILES) $(LIBS)

MEMFSBITS = sprstore.o inode.o memcore.o mem.o spr.o compress.o Lfile.o $(FSLIB)

MEMFILERBITS = filermem.o memfiler.o protect.o $(FSLIB)

# Targets

all: MemFS MemFiler 

MemFS: $(MEMFSBITS)
        $(LN) -o $@ $(MEMFSBITS)
#        $(MSQUEEZE) $@
#        $(SQUEEZE) $@

MemFiler: $(MEMFILERBITS)
        $(LN) -o $@ $(MEMFILERBITS)
        $(MSQUEEZE) $@
#        $(SQUEEZE) $@

clean:
        wipe o.* ~v~c
#        remove memfs
#        remove memfiler

.SUFFIXES: .cmhg .o .s .c .cmhg' .dat
.c.o :
                $(CC) $(CFLAGS) $<
.s.o :
                objasm $(DEPEND) $< $@ -stamp -quit
.cmhg.o :
                cmhg $< $@
.cmhg'.o :
		cmhg -b $< $@

.dat.o :
                datatoaof -f $< -o $@ $(DATFLAGS)

# Dynamic dependencies:
o.protect: s.protect
o.protect: hdr.regs
o.protect: hdr.swis
o.memfiler:	c.memfiler
o.memfiler:	C:h.kernel
o.memfiler:	C:h.swis
o.memfiler:	^.fslib.h.ModuleWrap
o.memfiler:	^.fslib.h.util
o.memfiler:	^.fslib.h.interface
o.memfiler:	^.fslib.h.cstart
o.memfiler:	C:h.rol_wimp
o.memfiler:	C:h.os
o.memfiler:	C:h.sprite
o.sprstore:	c.sprstore
o.sprstore:	C:h.kernel
o.sprstore:	C:h.swis
o.sprstore:	C:h.sprite
o.sprstore:	C:h.os
o.sprstore:	^.fslib.h.util
o.sprstore:	^.fslib.h.interface
o.sprstore:	^.fslib.h.core
o.sprstore:	h.spr
o.sprstore:	h.Lfile
o.sprstore:	h.store
o.inode:	c.inode
o.inode:	^.fslib.h.interface
o.inode:	C:h.kernel
o.inode:	^.fslib.h.core
o.inode:	h.store
o.inode:	h.inode
o.inode:	^.fslib.h.util
o.memcore:	c.memcore
o.memcore:	^.fslib.h.FS
o.memcore:	C:h.kernel
o.memcore:	C:h.swis
o.memcore:	^.fslib.h.Interface
o.memcore:	^.fslib.h.ModuleWrap
o.memcore:	^.fslib.h.util
o.memcore:	^.fslib.h.core
o.memcore:	h.store
o.memcore:	h.inode
o.memcore:	^.fslib.h.ticker
o.spr:	c.spr
o.spr:	C:h.kernel
o.spr:	C:h.swis
o.spr:	C:h.sprite
o.spr:	C:h.os
o.spr:	^.fslib.h.interface
o.spr:	^.fslib.h.core
o.spr:	h.spr
o.compress:	c.compress
o.compress:	C:h.kernel
o.compress:	C:h.swis
o.compress:	h.compress
o.Lfile:	c.Lfile
o.Lfile:	C:h.kernel
o.Lfile:	C:h.swis
o.Lfile:	^.fslib.h.util
o.Lfile:	^.fslib.h.interface
o.Lfile:	h.compress
o.Lfile:	h.Lfile
