AS=64tass
AFLAGS= -i
PACKER=exomizer
CBMDISK=c1541
CC=gcc
CP?=cp -f
APPDIR=/usr/local/bin/
APPNAME1=1raster
APPNAMEB=1rasterb
EXAMPLEDIR=./examples
APPNAME2=ORMconvert

all: $(APPNAME1) $(APPNAMEB) $(APPNAME2) $(APPNAME1)-disk.d64
.PHONY: all clean install $(APPNAME1) $(APPNAMEB) $(APPNAME2)
.INTERMEDIATE: $(APPNAME1).prg $(APPNAMEB).prg

#C64 executables
$(APPNAME1): $(APPNAME1).asm player.asm $(EXAMPLEDIR)
	$(AS) $(AFLAGS) -D ORMtype=1 $< -o $@.prg
	$(PACKER) sfx sys $@.prg -o $(APPNAME1)-tracker.prg
	$(RM) $@.prg

$(APPNAMEB): $(APPNAME1).asm player.asm $(EXAMPLEDIR)
	$(AS) $(AFLAGS) -D ORMtype=2 $< -o $@.prg
	$(PACKER) sfx sys $@.prg -o $(APPNAMEB)-tracker.prg
	$(RM) $@.prg

$(APPNAME2): $(APPNAME2).c
	$(CC) $< -o $@ -lm
	wine gcc.exe $< -o $@.exe -lm

#Apps+examples disk
$(APPNAME1)-disk.d64: $(APPNAME1)-tracker.prg $(APPNAMEB)-tracker.prg $(EXAMPLEDIR)/
	$(CBMDISK) -format "1raster-tracker,hm" d64 $@
	$(CBMDISK) -attach $@ -write $(APPNAME1)-tracker.prg $(APPNAME1)-tracker
	$(CBMDISK) -attach $@ -write $(APPNAMEB)-tracker.prg $(APPNAMEB)-tracker
	for inputfile in $(EXAMPLEDIR)/*.orm ; do outputfile=$${inputfile##*/} ; \
     $(CBMDISK) -attach $@ -write $$inputfile $${outputfile%} ; done;
	for inputfile in $(EXAMPLEDIR)/*.orb ; do outputfile=$${inputfile##*/} ; \
     $(CBMDISK) -attach $@ -write $$inputfile $${outputfile%} ; done;

install:
	$(CP) $(APPNAME2) $(APPDIR)

clean:
	$(RM) $(APPNAME1).prg
	$(RM) $(APPNAME1)-tracker.prg
	$(RM) $(APPNAMEB).prg
	$(RM) $(APPNAMEB)-tracker.prg
	$(RM) player.prg
	$(RM) $(APPNAME2)
	$(RM) $(APPNAME2).exe
	$(RM) $(APPDIR)/$(APPNAME2)
	$(RM) $(APPNAME1)-disk.d64

