-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
68 lines (51 loc) · 1.29 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
63
64
65
66
67
68
src = $(wildcard src/*.c)
imgfiles = $(wildcard *.png)
obj = $(src:.c=.o) $(imgfiles:.png=.img.o)
dep = $(obj:.o=.d)
name = mtglife
elf = $(name).elf
bin = $(name).gba
elf_mb = $(name)_mb.elf
bin_mb = $(name)_mb.gba
ARCH = arm-none-eabi
CPP = $(ARCH)-cpp
CC = $(ARCH)-gcc
AS = $(ARCH)-as
OBJCOPY = $(ARCH)-objcopy
EMU = vbam
opt = -O3 -fomit-frame-pointer -mcpu=arm7tdmi -mtune=arm7tdmi -mthumb
#dbg = -g
CFLAGS = $(opt) $(dbg) -pedantic -Wall -I. -I../gbasys/src
LDFLAGS = ../gbasys/libgbasys.a -lm
EMUFLAGS = -T 100 -f 1 --agb-print
.PHONY: all
all: $(bin) $(bin_mb)
$(bin): $(elf)
$(OBJCOPY) -O binary $(elf) $(bin)
gbafix $(bin)
$(bin_mb): $(elf_mb)
$(OBJCOPY) -O binary $(elf_mb) $(bin_mb)
gbafix $(bin_mb)
$(elf): $(obj) ../gbasys/libgbasys.a
$(CC) -o $(elf) $(obj) -specs=gba.specs $(LDFLAGS)
$(elf_mb): $(obj) ../gbasys/libgbasys.a
$(CC) -o $(elf_mb) $(obj) -specs=gba_mb.specs $(LDFLAGS)
-include $(dep)
%.d: %.c data.h
$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
%.img.c: %.png
img2gba $< -h /dev/null
data.h: $(imgfiles)
img2gba $(imgfiles) -o /dev/null
.PHONY: clean
clean:
rm -f $(obj) $(dep) $(bin) $(bin_mb) $(elf) $(elf_mb) data.h
.PHONY: install
install: $(bin)
if2a -n -f -W $<
.PHONY: run
run: $(bin_mb)
if2a -m $<
.PHONY: simrun
simrun: $(bin)
$(EMU) $(EMUFLAGS) $(bin)