#Neogeo cd SDL by fosters 
#DC porting by Ian micheal
# team help and support and coding  gpf,blackaura,bluecrab,Quzar
# compiler settings -fbranch-probabilities  -funroll-loops -frerun-loop-opt #-fstrict-aliasing  -fomit-frame-pointer -fstrength-reduce -fschedule-insns2 -freduce-all-givs  #-ffunction-sections -fdata-sections -mieee


AR = ar
AR_FLAGS = cru
RANLIB = ranlib

KOS_LOCAL_CFLAGS=-I$(KOS_BASE)/addons/include/SDL -I.  -Iz80 -Imc68000 \
-DDREAMCAST -DSDL -DINLINE="static inline" -DLOWERCASEFILES

TARGET = neogeocd.elf
OBJS = out/cpu68k.o  z80/z80.o  z80/z80intrf.o  neocdc.o vmu/vmu.o memory/memory.o cdrom/cdrom.o cdrom/dc.o  cdaudio/cdaudiokos.o  sound/sound.o sound/streams.o sound/2610intf.o sound/ay8910.o   sound/fm.o  sound/timer.o sound/ymdeltat.o  video/videopvr.o video/draw_fix.o  swab.o input/input.o pd4990adc.o  
#PROBJS = mc68000/mc68000.a
PROBJS = out/c68k.o out/c68kexec.o  mc68000/m68kops.o  mc68000/m68kcpu.o  mc68000/m68kopac.o  mc68000/m68kopdm.o  mc68000/m68kopnz.o  mc68000/m68kdasm.o 

all: makez80_foo  neogeocd.bin  rm-elf $(TARGET)

makez80_foo:
	gcc -o z80/makez80 -Iz80 -I. z80/makez80.c
	z80/makez80 z80/z80.c -c
	touch makez80_foo




include $(KOS_BASE)/Makefile.rules

KOS_CFLAGS += -funsigned-char -funroll-all-loops -falign-loops -fstrict-aliasing 

clean:
	-rm -f $(TARGET) $(OBJS) makez80_foo mc68000/mc68000.a romdisk.*

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

$(TARGET): $(OBJS) $(PROBJS) romdisk.o
	$(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) \
		$(OBJS) $(PROBJS) romdisk.o $(OBJEXTRA) -L$(KOS_BASE)/lib -lgcc  -lSDL -lpng   -lz  -lm -lmp3 -lm -lkallisti -lgcc $(KOS_LIBS)
romdisk.img:
	$(KOS_GENROMFS) -f romdisk.img -d romdisk -v

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

neogeocd.bin: neogeocd.elf
	$(KOS_OBJCOPY) -O binary neogeocd.elf output.bin
	$(KOS_BASE)/utils/scramble/scramble output.bin neogeocd.bin

mc68000/mc68000.a:
	$(KOS_MAKE) -C mc68000

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


