#
# Genesis Plus (Dreamcast)
# Genesis Plus by Charles MacDonald
# Dreamcast first  Kos port by BlackAura
# SDL Dreamcast port edit Ian micheal
# Dreamcast sound Stef D  

TARGET = dreamcast/genplus.elf
BIN = dreamcast/genplus.bin
FIRSTREAD = dreamcast/1st_read.bin

OBJS = genesis.o vdp.o render.o system.o unzip.o fileio.o loadrom.o io.o mem68k.o memz80.o membnk.o memvdp.o  
OBJS += sound/sound.o sound/fm.o sound/sn76496.o
OBJS += dreamcast/error.o  dreamcast/main.o  dreamcast/snd_stream.o
PROBJS = cpu/z80.o m68k/libm68k.a

all: rm-elf $(TARGET)

include $(KOS_BASE)/Makefile.rules

KOS_LOCAL_CFLAGS =  -I. -Icpu -Idreamcast -Isound -DLSB_FIRST -D_arch_dreamcast -DINLINE="static __inline__"  -DNDEBUG  -DUCHAR_MAX=0xff -DUSHRT_MAX=0xffff -DULONG_MAX=0xffffffff  -Os -fstrict-aliasing -fomit-frame-pointer



clean:
	-rm -f $(TARGET) $(BIN) $(FIRSTREAD) $(OBJS) romdisk.*

rclean:
	-rm -f $(TARGET) $(BIN) $(FIRSTREAD) $(PROBJS) romdisk.*
	$(KOS_MAKE) -C m68k rclean

rm-elf:
	-rm -f $(TARGET) romdisk.*

$(TARGET): $(OBJS) $(PROBJS) romdisk.o
	$(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) \
		$(OBJS) romdisk.o $(PROBJS) $(OBJEXTRA) \
		-L$(KOS_BASE)/lib  -lSDL -lSDL_image -lpng -lz -ljpeg -lSDL_mixer -lSDL -loggvorbisplay -ltremor -lm  -lmp3 -lm -lkallisti -lgcc -limageload  $(KOS_LIBS)

romdisk.img:
	$(KOS_GENROMFS) -f romdisk.img -d dreamcast/romdisk -v

romdisk.o: romdisk.img
	$(KOS_BASE)/utils/bin2o/bin2o romdisk.img romdisk romdisk.o

m68k/libm68k.a:
	$(KOS_MAKE) -C m68k

run: $(TARGET)
	$(KOS_LOADER) $(TARGET)

dist:
	rm -f $(OBJS) romdisk.o romdisk.img
	$(KOS_STRIP) $(TARGET)
	$(KOS_CC_BASE)/bin/sh-elf-objcopy -O binary $(TARGET) $(BIN)
	$(KOS_CC_BASE)/bin/sh-elf-scramble $(BIN) $(FIRSTREAD)
