# Location of crt0, system includes, command.com and msxdos.sys
MSXBASE = ../msx

# Location of msxlib
MSXLIB = ../msxlib

CFLAGS = -mz80 -I$(MSXBASE) -I$(MSXLIB)

CODELOC = $(shell grep "1 _HEADER" crt0msx_msxdos_biisi.lst | sed "s/.*size//;s/flags.*//;s/ //g;s/\t//g" | tr -d "\n")

# Choose according to the needs of the project
LDFLAGS = --code-loc 0x$(CODELOC) --data-loc 0 --no-std-crt0\
	$(MSXBASE)/ioport.o $(MSXBASE)/interrupt.o $(MSXLIB)/msxlib.o\
	$(MSXBASE)/putchar.o

# Typical "libs" to be linked in
LIBS =  $(MSXLIB)/msxlib.o \
	$(MSXBASE)/ioport.o \
	$(MSXBASE)/interrupt.o

# Project name extracted from the directory name
PROJ = $(shell basename `pwd`)

# All objects needed for compilation
OBJ = $(PROJ).o ArkosTrackerPlayer_MSX_ehja.o kuva.o crt0msx_msxdos_biisi.o \
      feidi.o skrolli.o konvehti.o

# Other files to be copied to the disk image
EXTRAS = autoexec.bat $(MSXBASE)/msxdos.sys $(MSXBASE)/command.com readme.txt

$(PROJ).com: $(OBJ) crt0msx_msxdos_biisi.lst
	sdcc $(CFLAGS) $(OBJ) $(LDFLAGS) $(LIBS)
	hex2bin -e com $(PROJ).ihx

%.o: %.c
	sdcc $(CFLAGS) -c $<

%.o: %.s
	as-z80 -o $@ $<

crt0msx_msxdos_biisi.o: crt0msx_msxdos_biisi.s biisi_0103.inc
	as-z80 -o $@ $<

crt0msx_msxdos_biisi.lst: crt0msx_msxdos_biisi.s biisi_0103.inc
	as-z80 -l $@ $<

$(PROJ).dsk: $(PROJ).com $(EXTRAS)
	-rm $@
	wrdsk $@ $^

# Run in openMSX
run: $(PROJ).dsk
	om $<

# Run in Nowind
up: $(PROJ).dsk
	nwhostapp -2 -i $<

clean:
	-rm *.lnk *.lst *.asm *.map *.rel *.ihx *.com *~ *.sym *.dsk \
	*.lk *.noi *.o
