#####################################################################
##                           ROM NAME                              ##

NAME = demo
EXT	 = gbc

##                                                                 ##
#####################################################################

#####################################################################
##                    PATH TO RGBASM BINARIES                      ##

RGBASM  = ../rgbasm
RGBLINK = ../rgblink
RGBFIX  = ../rgbfix

##                                                                 ##
#####################################################################

BIN	:= $(NAME).$(EXT)

# Source folders - including subfolders
SOURCE = source
MYSOURCES := $(shell find $(SOURCE) -type d -print)
SOURCES := $(foreach dir,$(MYSOURCES),$(CURDIR)/$(dir))

ASMFILES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.asm))

# Make it include all source folders - Add a '/' at the end of the path
INCLUDES := $(foreach dir,$(MYSOURCES),-i$(CURDIR)/$(dir)/)

# Prepare object paths
OBJ = $(ASMFILES:.asm=.obj)

all: $(BIN)

rebuild:
	@make clean
	@make
	@rm -f $(OBJ)

clean:
	@echo rm $(OBJ) $(BIN) $(NAME).sym $(NAME).map
	@rm -f $(OBJ) $(BIN) $(NAME).sym $(NAME).map

%.obj : %.asm
	@echo rgbasm $@ $<
	@$(RGBASM) $(INCLUDES) -o$@ $<

$(BIN): $(OBJ)
	@echo rgblink $(BIN)
	@$(RGBLINK) -o $(BIN) -p 0xFF -m $(NAME).map -n $(NAME).sym $(OBJ)
	@echo rgbfix $(BIN)
	@$(RGBFIX) -p 0xFF -v $(BIN)

#####################################################################
