all: vs1053pcm-ctab.h vs1053pcm.plg vs1053pcm.img pdf

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

pdf: pcmmixer.pdf

pcmmixer.dvi: pcmmixer.tex
	latex pcmmixer.tex
	latex pcmmixer.tex

pcmmixer.pdf: pcmmixer.dvi
	dvipdfm -p a4 pcmmixer.dvi

VCC = vcc
INCDIR = -Ilibc16_v4 -I. -Ivs1053b
LIBDIR = -Llibc16_v4 -L.
#VCCFLAGS = -P130 -g -O -fsmall-code -D STANDALONE
VCCFLAGS = -P130 -O -fsmall-code -D STANDALONE
ASMDEFS  = 

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

.s.o:
	vsa $(ASMDEFS) $(INCDIR) -o $@ $<

vs1053pcm.o: vs1053pcm.c Makefile
	$(VCC) $(VCCFLAGS) $(INCDIR) -D VS1053 -o $@ vs1053pcm.c

####
# Startup codes
####

OBJS = c.o vs1053pcm.o vs1053pcms.o

c.o: c.s Makefile

vs1053pcm.bin: $(OBJS) rom1053.o
	vslink -m mem_desc.vs1053 -k -o $@ $(OBJS) rom1053.o $(LIBDIR) -lsim
# -c

coff2boot: coff2boot.c
	gcc -Wall -O -o coff2boot coff2boot.c


vs1053pcm.img: vs1053pcm.bin coff2boot
	./coff2boot -x 0x50 vs1053pcm.bin vs1053pcm.img
	echo >>vs1053pcm.img

vs1053pcm.cmd: vs1053pcm.bin
	perl coff2cmd.pl vs1053pcm.bin >vs1053pcm.cmd
#	echo "W 2 A 0050" >>vs1053pcm.cmd

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

vs1053pcm-ctab.h: vs1053pcm.cmd
	echo "/* VS1053b vs1053pcm communication application */" >vs1053pcm-ctab.h
	perl cmdtotab.pl vs1053pcm.cmd >>vs1053pcm-ctab.h

sim: vs1053pcm.bin
	vss -m sim_desc.vs1053 -l vs1053pcm.bin -c run.cmd -prof prof.txt

test: vs1053pcm.cmd
	../mp3io/mp3io ../mp3io/4.0x.cmd vs1053pcm.cmd go0d00.cmd -W sweep.raw /home/albert/Utopia-free-sample.mp3

dist: all
	zip vs1053-pcm-src.zip README.txt Makefile *.cmd *.[chs] *.pl *desc* *.txt libc16_v4/*
	zip vs1053-pcm.zip README.txt pcmmixer.pdf vs1053pcm.cmd vs1053pcm.plg vs1053pcm-ctab.h vs1053-pcm-src.zip


