KOS_ARCH_DIR = $(KOS_BASE)/kernel/arch/$(KOS_ARCH)
KOS_START = $(KOS_ARCH_DIR)/kernel/startup.o

# Change these as you desire.  Be sure to keep the trailing slash!
ROMDIR = "/cd/ng/"
SAVDIR = "/pc/home/jim/emu/ng/save/"

INCS = -I$(KOS_INCS) -I$(KOS_ARCH_DIR)/include -I.
DEFS = -D_arch_$(KOS_ARCH) -DHAVE_CONFIG_H -DROMDIR='$(ROMDIR)' -DSAVDIR='$(SAVDIR)'
LIBS = -L$(KOS_BASE)/lib -lkallisti -ldcutils -lgcc
OBJS = emu.o fb.o io.o mapper.o renderer.o nes6502.o cpu-glue.o dc.o dc-glue.o sound.o dc-sound.o dc-draw.o dc-qsort.o
SUBDIRS = dc-aica
TARGET = tuxnes-dc

SCRAMBLE = /home/jim/dc/scramble
BTARGET  = $(TARGET).bin

all: subdirs $(TARGET)

bin: all 1ST_READ.BIN

subdirs: $(SUBDIRS)

$(SUBDIRS):
	$(KOS_MAKE) -C $@

$(TARGET): $(OBJS)
	$(KOS_CC) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) $(OBJS) $(LIBS)

$(BTARGET): $(TARGET)
	$(KOS_OBJCOPY) -O binary $(TARGET) $(BTARGET)

1ST_READ.BIN: $(BTARGET)
	$(SCRAMBLE) $(BTARGET) 1ST_READ.BIN

%.o: %.c
	$(KOS_CC) $(KOS_CFLAGS) $(INCS) $(DEFS) -c $< -o $@

%.o: %.s
	$(KOS_AS) $(KOS_AFLAGS) $< -o $@

clean:
	for dir in $(SUBDIRS); do \
		$(KOS_MAKE) -C $$dir clean; \
	done
	-rm -f *.o $(TARGET) $(BTARGET) 1ST_READ.BIN

.PHONY: all bin clean subdirs $(SUBDIRS)
