-
Notifications
You must be signed in to change notification settings - Fork 5
/
Makefile
63 lines (43 loc) · 1.75 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#####################################################################
## ROM NAME ##
NAME = geometrix
EXT = gbc
## ##
#####################################################################
#####################################################################
## PATH TO RGBDS BINARIES ##
RGBASM = ../rgbasm
RGBLINK = ../rgblink
RGBFIX = ../rgbfix
## ##
#####################################################################
#####################################################################
## Source and include folders - including subfolders ##
SOURCE = ./source
## ##
#####################################################################
BIN := $(NAME).$(EXT)
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)
#####################################################################