-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
61 lines (44 loc) · 1.29 KB
/
Makefile
File metadata and controls
61 lines (44 loc) · 1.29 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
export PATH := $(DEVKITARM)/bin:$(PATH)
CC=arm-none-eabi-gcc
CP=arm-none-eabi-g++
OC=arm-none-eabi-objcopy
LD=arm-none-eabi-ld
AR=arm-none-eabi-ar
LIBNAME=ctr
SRC_DIR:=src
OBJ_DIR:=obj
LIB_DIR:=lib
DEP_DIR:=obj
INCPATHS=-Iinclude
THUMBFLAGS=-mthumb -mthumb-interwork
CFLAGS=-std=gnu99 -Os -g -mword-relocations -fomit-frame-pointer -ffast-math $(INCPATHS)
C9FLAGS=-mcpu=arm946e-s -march=armv5te -mlittle-endian
LDFLAGS=
OCFLAGS=--set-section-flags .bss=alloc,load,contents
OBJS:=$(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(wildcard $(SRC_DIR)/*.c))
OBJS+=$(patsubst $(SRC_DIR)/%.s, $(OBJ_DIR)/%.o, $(wildcard $(SRC_DIR)/*.s))
OBJS+=$(patsubst $(SRC_DIR)/%.S, $(OBJ_DIR)/%.o, $(wildcard $(SRC_DIR)/*.S))
OUT_DIR:=$(LIB_DIR) $(OBJ_DIR)
LIB:=$(LIB_DIR)/lib$(LIBNAME).a
.PHONY: clean all install
all: $(LIB)
$(LIB): $(OBJS) | dirs
@echo $(OBJS)
$(AR) -rcs $@ $(OBJS)
obj/%.o: src/%.c | dirs
@echo Compiling $<
$(CC) -c $(CFLAGS) $(C9FLAGS) $< -o $@
obj/%.o: src/%.s | dirs
@echo Compiling $<
$(CC) -c $(CFLAGS) $(C9FLAGS) $< -o $@
obj/%.o: src/%.S | dirs
@echo Compiling $<
$(CC) -c $(CFLAGS) $(C9FLAGS) $< -o $@
dirs: ${OUT_DIR}
${OUT_DIR}:
mkdir -p ${OUT_DIR}
install: all
cp -r include/* $(DEVKITARM)/arm-none-eabi/include
cp $(LIB) $(DEVKITARM)/arm-none-eabi/lib
clean:
rm -rf lib/* obj/*