all: mycodectab1003.c mycodectab1002.c mycodectab1011b.c mycodectab1011e.c mycodectab1033c.c mycodectab1033d.c mycodectab1053b.c \
	mycodec1003.plg mycodec1002.plg mycodec1011e.plg \
	mycodec1033c.plg mycodec1033d.plg mycodec1053b.plg

.SUFFIXES: .txt .cmd .plg .bin

.txt.o:
	mkabs -o $@ -f $<

%.plg: %.cmd
	./cmdtoplg < $< > $@

%.cmd: %.bin
	perl coff2cmd.pl $< > $@

rom1011b.o:
	mkabs -o $@ _cos64NewTab=0x4100

VCC = vcc
VCCFLAGS = -P130 -g -O -fsmall-code
INCDIR = -Ilibc16 -I.
LIBDIR = -Llibc16

.c.o:
	$(VCC) $(VCCFLAGS) $(INCDIR) -o $@ $<

.s.o:
	vsa -o $@ $<

c.o: c.s
mycodec.o: mycodec.c
#Make a link library, so unused functions are not linked in.
LIBOBJS = sinadd.o addsine.o modulated.o
libmy.a: $(LIBOBJS)
	vsar ruv libmy.a $(LIBOBJS)

OBJS1003 = c.o mycodec.o rom1003.o
mycodec1003.bin: $(OBJS1003) libmy.a
	vslink -m mem_desc.vs1003 -k $(OBJS1003) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1002 = c.o mycodec.o rom1002.o
mycodec1002.bin: $(OBJS1002) libmy.a
	vslink -m mem_desc.vs1002 -k $(OBJS1002) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1011B = c.o mycodec.o rom1011b.o
mycodec1011b.bin: $(OBJS1011B) libmy.a
	vslink -m mem_desc.vs1002 -k $(OBJS1011B) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1011E = c.o mycodec.o rom1011e.o
mycodec1011e.bin: $(OBJS1011E) libmy.a
	vslink -m mem_desc.vs1002 -k $(OBJS1011E) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1033C = c.o mycodec.o rom1033c.o
mycodec1033c.bin: $(OBJS1033C) libmy.a
	vslink -m mem_desc.vs1003 -k $(OBJS1033C) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1033D = c.o mycodec.o rom1033d.o
mycodec1033d.bin: $(OBJS1033D) libmy.a
	vslink -m mem_desc.vs1003 -k $(OBJS1033D) -o $@ -L./ -Llibc16/ -lc -lmy

OBJS1053B = c53.o mycodec.o rom1053b.o
mycodec1053b.bin: $(OBJS1053B) libmy.a
	vslink -m mem_desc.vs1003 -k $(OBJS1053B) -o $@ -L./ -Llibc16/ -lc -lmy


mycodectab1003.c: mycodec1003.cmd
	perl cmdtotab.pl mycodec1003.cmd >mycodectab1003.c

mycodectab1002.c: mycodec1002.cmd
	perl cmdtotab.pl mycodec1002.cmd >mycodectab1002.c

mycodectab1011b.c: mycodec1011b.cmd
	perl cmdtotab.pl mycodec1011b.cmd >mycodectab1011b.c

mycodectab1011e.c: mycodec1011e.cmd
	perl cmdtotab.pl mycodec1011e.cmd >mycodectab1011e.c

mycodectab1033c.c: mycodec1033c.cmd
	perl cmdtotab.pl mycodec1033c.cmd >mycodectab1033c.c

mycodectab1033d.c: mycodec1033d.cmd
	perl cmdtotab.pl mycodec1033d.cmd >mycodectab1033d.c

mycodectab1053b.c: mycodec1053b.cmd
	perl cmdtotab.pl mycodec1053b.cmd >mycodectab1053b.c


dist:
	cd docs; gmake pdf
	zip vs1003-dtmf.zip Makefile mem_desc.vs10* rom10*.txt vs1003.h *.s mycodec.c coff2cmd.pl cmdtotab.pl mycodec.cmd mycodectab*.c docs/mycodec.pdf *.cmd

vs1011b:
	../mp3io/mp3io newmode.cmd mycodec1011b.cmd activate.cmd dtmf.cmd

