-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
86 lines (69 loc) · 2.49 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
PACKAGE = joyboot
LIBS =
VERSION = v1.0
ADD_CFLAGS =
ADD_LFLAGS = lib/*.a
EXTRA_DIST =
TRGT ?= arm-none-eabi-
CC = $(TRGT)gcc
CXX = $(TRGT)g++
OBJCOPY = $(TRGT)objcopy
LDSCRIPT = KW01-bl.ld
DBG_CFLAGS = -ggdb -g -DDEBUG -Wall
DBG_LFLAGS = -ggdb -g -Wall
CFLAGS = $(ADD_CFLAGS) \
-DVERSION=\"$(VERSION)\" -DPACKAGE=\"$(PACKAGE)\" \
-DPREFIX=\"$(PREFIX)\" -DDESTDIR=\"$(DESTDIR)\" -DARDUINO=160 \
-I. -I../../support -Iash -Iash/internals \
-fsingle-precision-constant -Wall -Wextra \
-mcpu=cortex-m0plus -mfloat-abi=soft -mthumb \
-DARDUINO_APP -fno-builtin \
-ffunction-sections -fdata-sections -fno-common \
-fomit-frame-pointer -falign-functions=16 -nostdlib -Os
CXXFLAGS = $(CFLAGS) -std=c++11 -fno-rtti -fno-exceptions
LFLAGS = $(ADD_LFLAGS) $(CFLAGS) \
-nostartfiles -nostdlib -nodefaultlibs \
-Wl,-Map=$(PROJECT).map,--gc-sections \
-Wl,--cref,--no-warn-mismatch,--script=$(LDSCRIPT),--build-id=none
OBJ_DIR = .obj
CSOURCES = $(wildcard *.c)
CPPSOURCES = $(wildcard *.cpp)
ASOURCES = $(wildcard *.S)
COBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(CSOURCES:.c=.o)))
CXXOBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(CPPSOURCES:.cpp=.o)))
AOBJS = $(addprefix $(OBJ_DIR)/, $(notdir $(ASOURCES:.S=.o)))
OBJECTS = $(COBJS) $(CXXOBJS) $(AOBJS)
VPATH = .
QUIET = @
ALL = all
TARGET = $(PACKAGE).elf
CLEAN = clean
$(ALL): $(TARGET)
$(OBJECTS): | $(OBJ_DIR)
$(TARGET): $(OBJECTS) $(LDSCRIPT)
$(QUIET) echo " LD $@"
$(QUIET) $(CXX) $(OBJECTS) $(LFLAGS) -o $@
$(QUIET) echo " OBJCOPY $(PACKAGE).bin"
$(QUIET) $(OBJCOPY) -O binary $@ $(PACKAGE).bin
$(DEBUG): CFLAGS += $(DBG_CFLAGS)
$(DEBUG): LFLAGS += $(DBG_LFLAGS)
CFLAGS += $(DBG_CFLAGS)
LFLAGS += $(DBG_LFLAGS)
$(DEBUG): $(TARGET)
$(OBJ_DIR):
$(QUIET) mkdir $(OBJ_DIR)
$(COBJS) : $(OBJ_DIR)/%.o : %.c Makefile
$(QUIET) echo " CC $< $(notdir $@)"
$(QUIET) $(CC) -c $< $(CFLAGS) -o $@ -MMD
$(OBJ_DIR)/%.o: %.cpp
$(QUIET) echo " CXX $< $(notdir $@)"
$(QUIET) $(CXX) -c $< $(CXXFLAGS) -o $@ -MMD
$(OBJ_DIR)/%.o: %.S
$(QUIET) echo " AS $< $(notdir $@)"
$(QUIET) $(CC) -x assembler-with-cpp -c $< $(CFLAGS) -o $@ -MMD
.PHONY: $(CLEAN)
$(CLEAN):
$(QUIET) rm -f $(wildcard $(OBJ_DIR)/*.d)
$(QUIET) rm -f $(wildcard $(OBJ_DIR)/*.o)
$(QUIET) rm -f $(TARGET) $(PACKAGE).bin $(PACKAGE).symbol
include $(wildcard $(OBJ_DIR)/*.d)