TASS=64tass
PACKER=exomizer
CBMDISK=c1541
SOURCEDIR=.
BINARYDIR=../binary
EXASWMDIR=../examples/modules
EXASWIDIR=../examples/instruments
APPNAME1=SID-Wizard
APPNAME2=SID-Maker
SW-SOURCE=$(APPNAME1).asm
SM-SOURCE=$(APPNAME2).asm
SW-SPLASH-SOURCE=$(APPNAME1)-splashed.asm
SW-EXEC=$(APPNAME1).prg
SM-EXEC=$(APPNAME2).prg
SW-PACK=$(APPNAME1)-packed.prg
SM-PACK=$(APPNAME2)-packed.prg
SW-SPLASH=$(APPNAME1)-splashed.prg
SWL-SOURCE=$(APPNAME1)-light.asm
SML-SOURCE=$(APPNAME2)-light.asm
SWL-EXEC=$(APPNAME1)-light.prg
SML-EXEC=$(APPNAME2)-light.prg
SWL-PACK=$(APPNAME1)-packed-light.prg
SML-PACK=$(APPNAME2)-packed-light.prg
SWM-SOURCE=$(APPNAME1)-medium.asm
SMM-SOURCE=$(APPNAME2)-medium.asm
SWM-EXEC=$(APPNAME1)-medium.prg
SMM-EXEC=$(APPNAME2)-medium.prg
SWM-PACK=$(APPNAME1)-packed-medium.prg
SMM-PACK=$(APPNAME2)-packed-medium.prg
SWM-CONVERTER=SWMconvert
REMOVE=rm -f
COPY=cp -f
GODIR=cd
ICON=SID-Wizard.png
MENUENTRY=SID-Wizard.desktop
CC=gcc
APPDIR=/usr/local/bin/

.PHONY: all all-before all-after
all: all-before SID-Wizard SID-Maker SID-Wizard-light SID-Maker-light SID-Wizard-medium SID-Maker-medium SID-Wizard-Examples SWM-converter all-after

SID-Wizard:
	$(TASS) -o $(BINARYDIR)/$(SW-EXEC) $(SW-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SW-PACK) $(BINARYDIR)/$(SW-EXEC) 
	$(TASS) -o $(BINARYDIR)/$(SW-SPLASH) $(SW-SPLASH-SOURCE)

SID-Maker:
	$(TASS) -o $(BINARYDIR)/$(SM-EXEC) $(SM-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SM-PACK) $(BINARYDIR)/$(SM-EXEC) 

	$(CBMDISK) -format "sid-wizard disk,hm" d64 $(BINARYDIR)/$(APPNAME1).d64
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1).d64 -write $(BINARYDIR)/$(SW-SPLASH) sid-wizard 
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1).d64 -write $(BINARYDIR)/$(SM-PACK) sid-maker

SID-Wizard-medium:
	$(TASS) -o $(BINARYDIR)/$(SWM-EXEC) $(SWM-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SWM-PACK) $(BINARYDIR)/$(SWM-EXEC) 

SID-Maker-medium:
	$(TASS) -o $(BINARYDIR)/$(SMM-EXEC) $(SMM-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SMM-PACK) $(BINARYDIR)/$(SMM-EXEC) 

	$(CBMDISK) -format "sidwizard medium,hm" d64 $(BINARYDIR)/$(APPNAME1)-medium.d64
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1)-medium.d64 -write $(BINARYDIR)/$(SWM-PACK) sidwizard-medium 
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1)-medium.d64 -write $(BINARYDIR)/$(SMM-PACK) sid-maker-medium

SID-Wizard-light:
	$(TASS) -o $(BINARYDIR)/$(SWL-EXEC) $(SWL-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SWL-PACK) $(BINARYDIR)/$(SWL-EXEC) 

SID-Maker-light:
	$(TASS) -o $(BINARYDIR)/$(SML-EXEC) $(SML-SOURCE)
	$(PACKER) sfx sys -o $(BINARYDIR)/$(SML-PACK) $(BINARYDIR)/$(SML-EXEC) 

	$(CBMDISK) -format "sid-wizard light,hm" d64 $(BINARYDIR)/$(APPNAME1)-light.d64
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1)-light.d64 -write $(BINARYDIR)/$(SWL-PACK) sid-wizard-light 
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1)-light.d64 -write $(BINARYDIR)/$(SML-PACK) sid-maker-light

SID-Wizard-Examples:
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1).d64 -write $(EXASWMDIR)/*.prg example.swm 
	$(CBMDISK) -attach $(BINARYDIR)/$(APPNAME1).d64 -write $(EXASWIDIR)/*.prg example.swi
	$(COPY) $(EXASWMDIR)/*.P00 $(BINARYDIR)
	$(COPY) $(EXASWIDIR)/*.P00 $(BINARYDIR)

SWM-converter:
	$(CC) $(SWM-CONVERTER).c -o $(BINARYDIR)/$(SWM-CONVERTER) -lm
	$(COPY) $(BINARYDIR)/$(SWM-CONVERTER) $(APPDIR)
