-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
45 lines (36 loc) · 1.26 KB
/
Makefile
File metadata and controls
45 lines (36 loc) · 1.26 KB
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
.PHONY: clean
#-----------------------------------------------------------------------
# コンパイラの設定
#-----------------------------------------------------------------------
CC = arm-none-eabi-gcc
LD = $(CC) -specs=gba_mb.specs
OBJCOPY = arm-none-eabi-objcopy
OPTUSB = optusb
CFLAGS = -W -Wall -O3 -mcpu=arm7tdmi -mtune=arm7tdmi -ffast-math
#-----------------------------------------------------------------------
# ファイルとディレクトリの設定
#-----------------------------------------------------------------------
TARGET = gabriel
INCLUDE = include
SOURCE = source
BUILD = build
CFILES = $(filter-out $(SOURCE), $(shell find $(SOURCE) -name "*.c"))
OFILES = $(addprefix $(BUILD)/, $(subst $(SOURCE)/, , $(CFILES:.c=.o)))
#-----------------------------------------------------------------------
# ビルドの設定
#-----------------------------------------------------------------------
default:
@[ -d $(BUILD) ] || mkdir -p $(BUILD)
@make all
all: $(TARGET).gba
$(TARGET).gba: $(TARGET).elf
$(OBJCOPY) -O binary $(BUILD)/$^ $@
$(TARGET).elf: $(OFILES)
$(LD) -o $(BUILD)/$@ $^
$(BUILD)/%.o: $(SOURCE)/%.c
$(CC) $(CFLAGS) -I $(INCLUDE) -o $@ -c $<
run-gba: $(TARGET).gba
$(OPTUSB) $^
clean:
rm -f $(BUILD)/*
rm -f $(TARGET).gba