CFLAGS=-lm -std=c99
LDFLAGS=-lm
CC=gcc -O2 -Wall

READBITS=4
COPYBITS=6
OFFSETBITS=8
COUNTBITS=11

# Modify the following line to point to your own copy of plasma.
PLASMA=${HOME}/box/plasma/plasma -l ${HOME}/box/plasma/native.so
PACK=./pack -r ${READBITS} -c ${COPYBITS} -o ${OFFSETBITS} -n ${COUNTBITS} -v

OBJS= \
	script.bin script_h.bin \
	ztunnel.pkg mandelbrot.pkg smoke.pkg tentacles.pkg voxelscape.pkg mist.pkg cube.pkg \
	sky.pkg spinner.pkg raster.pkg prevoxel.pkg \
	viewsmoke.pkg viewdither.pkg viewzoom.pkg viewtree.pkg viewtwirl.pkg viewbinary.pkg \
	viewcubes.pkg viewgreets.pkg viewcircles.pkg viewend.pkg viewscroll.pkg \
	init_vga_synth_play.pkg \
	zoompic_greets.pkg \
	flower_viewflower.pkg \
	viewpresents_lftlogo.pkg \
	viewlogo_turbulence.pkg \
	blob.pkg tree.pkg twirl.pkg scrolltext.pkg

all:				pack turbulence.eeprom

clean:
				rm -f pack exportsong mktwirl mkblob turbulence.eeprom checksum
				rm -f song.s song_h.s
				rm -f *.bin *.pkg *.o

turbulence.eeprom:		boot.s ${OBJS} propeller.i demo.i song.s song_h.s checksum
				@${PLASMA} -o $@ $<
				./checksum -e $@

script.bin:			script pack demo.i
				@${PACK} -s demo.i $< >$@

script_h.bin:			script_h pack demo.i
				@${PACK} -s demo.i $< >$@

song.s:				turbulence.song exportsong
				./exportsong $< >$@

song_h.s:			hiddenpart.song exportsong
				./exportsong -s _h $< >$@

%.bin:				%.s propeller.i demo.i
				@${PLASMA} -o $@ $<

%.pkg:				%.bin
				@${PACK} $^ >$@

blob.raw:			mkblob
				./mkblob >$@

twirl.raw:			mktwirl
				./mktwirl >$@

blob.pkg:			blob.raw
				@${PACK} $^ >$@

tree.pkg:			tree.raw
				@${PACK} $^ >$@

twirl.pkg:			twirl.raw
				@${PACK} $^ >$@

init_vga_synth_play.pkg:	init.bin vga.bin synth.bin play.bin
				@${PACK} $^ >$@

viewpresents_lftlogo.pkg:	viewpresents.bin lft.raw
				@${PACK} $^ >$@

flower_viewflower.pkg:		flower1.raw viewflower.bin
				@${PACK} $^ >$@

zoompic_greets.bin:		gp4.raw greets.bin
				cat $^ >$@

viewlogo_turbulence.pkg:	viewlogo.bin logo.raw
				@${PACK} $^ >$@

exportsong:			exportsong.o songfile.o

%.o:				%.c
				${CC} -c -o $@ $^
