• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#=============================================================
2# OS-specific definitions
3#=============================================================
4COMMA=,
5OPEN_PAREN=(
6CLOSE_PAREN=)
7BACKSLASH=\$(nullstring)
8ifneq ($(ComSpec)$(COMSPEC),)
9    O_SYS=Windows
10    RM=del /F /Q
11    MKDIR=mkdir
12    CP=copy /Y
13    TYPE=type
14    PS=$(BACKSLASH)
15    Q=
16    coQ=\$(nullstring)
17    fix_platform_path = $(subst /,$(PS), $(1))
18    DEV_NULL = nul
19else
20    O_SYS=Unix
21    RM=rm -rf
22    MKDIR=mkdir -p
23    CP=cp
24    TYPE=cat
25    PS=/
26    Q=$(BACKSLASH)
27    coQ=
28    fix_platform_path=$(1)
29    DEV_NULL=/dev/null
30endif
31
32#=============================================================
33# Toolchain definitions
34#=============================================================
35CC = %{CC}%
36CXX = %{CXX}%
37LD = %{LD}%
38
39
40#=============================================================
41# Applications settings
42#=============================================================
43OUT_NAME = %{EXECUTABLE}%
44
45DBG_ARGS ?=
46
47RUN_ARGS ?=
48
49EXT_CFLAGS ?=
50
51CXXFLAGS += %{CXX_FLAGS}%
52
53CCFLAGS += %{CC_FLAGS}%
54
55LDFLAGS += %{LINKER_FLAGS}%
56
57%{EXTRA_APP_SETTINGS}%
58
59
60#=============================================================
61# Files and directories
62#=============================================================
63SRCS := \
64%{SRCS}%
65
66OBJS := \
67$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(SRCS)))
68
69
70#=============================================================
71# Common rules
72#=============================================================
73.PHONY: all app flash clean run debug
74
75%.o: %.cc
76	$(CXX) $(CXXFLAGS) $(EXT_CFLAGS) $(INCLUDES) -c $< -o $@
77
78%.o: %.c
79	$(CC) $(CCFLAGS) $(EXT_CFLAGS) $(INCLUDES) -c $< -o $@
80
81$(OUT_NAME): $(OBJS)
82	$(LD) $(CXXFLAGS) -o $@ -Ccrossref $(OBJS) $(LDFLAGS)
83
84%{EXTRA_APP_RULES}%
85
86
87#=================================================================
88# Global rules
89#=================================================================
90all: $(OUT_NAME)
91
92app: $(OUT_NAME)
93
94flash: %{BIN_DEPEND}%
95%{BIN_RULE}%
96
97clean:
98	-@$(RM) $(call fix_platform_path,$(OBJS))
99	-@$(RM) $(OUT_NAME) %{EXTRA_RM_TARGETS}%
100
101#=================================================================
102# Execution rules
103#=================================================================
104
105APP_RUN := %{APP_RUN_CMD}%
106APP_DEBUG := %{APP_DEBUG_CMD}%
107
108run: $(OUT_NAME)
109	$(APP_RUN) $(OUT_NAME) $(RUN_ARGS)
110
111debug: $(OUT_NAME)
112	$(APP_DEBUG) $(OUT_NAME) $(RUN_ARGS)
113
114%{EXTRA_EXECUTE_RULES}%
115