-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathMakefile.rules
57 lines (42 loc) · 1.36 KB
/
Makefile.rules
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
PTL_PATH ?= .
ifeq ($(TARGET),)
$(error You need to define target: $(MAKE) TARGET=(msp430|avr|stm32|...))
endif
TARGETDIR = bin-$(TARGET)
include $(PTL_PATH)/Makefile.paths
include $(PTL_PATH)/Makefile.rules.$(TARGET)
GCC_PATH ?=
CROSS_COMPILE ?= $(TARGET)-
GCC_VER ?=
CC = $(GCC_PATH)$(CROSS_COMPILE)gcc$(GCC_VER)
CXX = $(GCC_PATH)$(CROSS_COMPILE)g++$(GCC_VER)
OBJDUMP ?= $(GCC_PATH)$(CROSS_COMPILE)objdump
OBJCOPY ?= $(GCC_PATH)$(CROSS_COMPILE)objcopy
HW_CONFIG ?= \"hw_config_$(TARGET).hpp\"
CFLAGS ?= -O1 -g -Wreturn-type -ffunction-sections -fdata-sections -DHW_CONFIG=$(HW_CONFIG)
ALL_INCLUDE = -I$(PTL_PATH)/include/ $(TARGET_INCLUDE) $(INCLUDE)
TARGET_CFLAGS ?= $(TARGET_FLAGS)
TARGET_LDFLAGS ?= $(TARGET_FLAGS)
ALL_CFLAGS = $(ALL_INCLUDE) $(TARGET_CFLAGS) $(CFLAGS)
ALL_CXXFLAGS = $(ALL_CFLAGS) -fno-exceptions
LDFLAGS = $(TARGET_LDFLAGS) -Wl,--gc-sections -Wl,[email protected],--cref
.PRECIOUS: $(TARGETDIR)/%.o
ifneq ($(OVERRIDE_RULES),1)
$(TARGETDIR)/%.o: %.cpp
mkdir -p $(TARGETDIR)
$(CXX) $(ALL_CXXFLAGS) -c $^ -o $@
$(TARGETDIR)/%.o: %.c
mkdir -p $(TARGETDIR)
$(CC) $(ALL_CXXFLAGS) -c $^ -o $@
endif
$(TARGETDIR)/%.s: %.cpp
mkdir -p $(TARGETDIR)
$(CXX) $(ALL_CXXFLAGS) -S $^ -o $@
$(TARGETDIR)/%.s: %.c
mkdir -p $(TARGETDIR)
$(CXX) $(ALL_CXXFLAGS) -S $^ -o $@
disasm-%: $(TARGETDIR)/%
$(OBJDUMP) -dSt --demangle $^ >$^.disasm
all:
clean:
rm -f $(TARGETDIR)/*.o