-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
47 lines (31 loc) · 1.12 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
RGBASM := $(RGBDS)rgbasm
RGBLINK := $(RGBDS)rgblink
RGBFIX := $(RGBDS)rgbfix
NAME := Red
ROM := $(NAME).gbc
SOURCES := source data
SOURCES := $(shell find $(SOURCES) -type d -print)
ASMFILES := $(foreach dir,$(SOURCES),$(wildcard $(dir)/main.asm))
ASMDEPS := $(foreach dir,$(SOURCES),$(wildcard $(dir)/*.asm))
INCLUDES := $(foreach dir,$(SOURCES),-i$(dir)/)
OBJ := $(ASMFILES:.asm=.o)
.PHONY : all rebuild clean run
all: $(ROM)
clean:
@echo rm $(OBJ) $(ROM) $(NAME).sym $(NAME).map
@rm -f $(OBJ) $(ROM) $(NAME).sym $(NAME).map
# Yeah, I know, this is kind of lazy. The main asm file simply includes the
# other source files. I have reasons for doing this.
source/main.o : $(ASMDEPS)
@echo rgbasm -Wall -Wextra $(INCLUDES) -E -osource/main.o source/main.asm
@$(RGBASM) -Wall -Wextra $(INCLUDES) -E -osource/main.o source/main.asm
$(ROM): $(OBJ)
@echo linking $(ROM)
@$(RGBLINK) -o $(ROM) -p 0xFF -m $(NAME).map -n $(NAME).sym $(OBJ)
@echo rgbfix $(ROM)
@$(RGBFIX) -p 0xFF --mbc-type 0x1B --ram-size 4 -C -t RED -v $(ROM)
@echo ROM fixed!
run: $(ROM) all
sameboy $(ROM)
bgb: $(ROM) all
wine ~/Desktop/bgb.exe $(ROM)