Rev 49 | Rev 58 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 49 | Rev 50 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ############################################# |
1 | ########################################################################################################################## |
2 | # sort out basic conditional information FIRST |
2 | # File automatically-generated by tool: [projectgenerator] version: [3.10.0-B14] date: [Sat Dec 05 16:22:46 GMT 2020] |
3 | 3 | ########################################################################################################################## |
|
4 | #put object paths in the right place |
4 | |
5 | FLASH_OUTPUT="ERROR_no_FLASH_OUTPUT_for_"$(MAKECMDGOALS) |
5 | # ------------------------------------------------ |
6 | 6 | # Generic Makefile (based on gcc) |
|
7 | ifeq ($(MAKECMDGOALS),clean-debug-dashboard-L152) |
7 | # |
8 | FLASH_OUTPUT=debug_dashboard_L152 |
8 | # ChangeLog : |
9 | endif |
9 | # 2017-02-10 - Several enhancements + project update mode |
10 | 10 | # 2015-07-22 - first version |
|
11 | ifeq ($(MAKECMDGOALS),clean-release-dashboard-L152) |
11 | # ------------------------------------------------ |
12 | FLASH_OUTPUT=release-dashboard-L152 |
12 | |
13 | endif |
13 | ###################################### |
14 | 14 | # target |
|
15 | ifeq ($(MAKECMDGOALS),debug-dashboard-L152) |
15 | ###################################### |
16 | CFLAGS += -g -O0 -DDEBUG |
16 | TARGET = Dashboard_L152 |
17 | ASFLAGS+= -g |
17 | |
18 | LDFLAGS+= -g |
18 | |
19 | FLASH_OUTPUT=debug_dashboard_L152 |
19 | ###################################### |
20 | endif |
20 | # building variables |
21 | 21 | ###################################### |
|
22 | 22 | # debug build? |
|
23 | ifeq ($(MAKECMDGOALS),release-dashboard-L152) |
23 | DEBUG = 1 |
24 | CFLAGS += $(OPTIMIZATION) -DRELEASE |
24 | # optimization |
25 | FLASH_OUTPUT=release_dashboard_L152 |
25 | OPT = -Og |
26 | endif |
26 | |
27 | 27 | ||
28 | 28 | ####################################### |
|
29 | 29 | # paths |
|
30 | #------------------------------------------------------------------------------- |
30 | ####################################### |
31 | # User-modifiable options |
31 | # Build path |
32 | #------------------------------------------------------------------------------- |
32 | BUILD_DIR = build |
33 | 33 | ||
34 | # Tool suffix when cross-compiling |
34 | ###################################### |
35 | CROSS_COMPILE = arm-none-eabi- |
35 | # source |
36 | 36 | ###################################### |
|
37 | CC = $(CROSS_COMPILE)gcc |
37 | # C sources |
38 | SIZE = $(CROSS_COMPILE)size |
38 | C_SOURCES = \ |
39 | STRIP = $(CROSS_COMPILE)strip |
39 | Src/main.c \ |
40 | OBJCOPY = $(CROSS_COMPILE)objcopy |
40 | Src/stm32l1xx_it.c \ |
41 | OBJDUMP = $(CROSS_COMPILE)objdump |
41 | Src/stm32l1xx_hal_msp.c \ |
42 | LD = $(CROSS_COMPILE)ld |
42 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_spi.c \ |
43 | AS = $(CROSS_COMPILE)as |
43 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.c \ |
44 | AR = $(CROSS_COMPILE)ar |
44 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.c \ |
45 | 45 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc_ex.c \ |
|
46 | ######################################################### |
46 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash.c \ |
47 | CPUFLAGS = -mfloat-abi=soft -mcpu=cortex-m3 -mthumb |
47 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ex.c \ |
48 | CFLAGS += -Wall -fno-common -c $(CPUFLAGS) |
48 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_flash_ramfunc.c \ |
49 | CFLAGS += $(INCLUDES) -DTRACE_LEVEL=$(TRACE_LEVEL) |
49 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.c \ |
50 | CFLAGS += -DUSE_STDPERIPH_DRIVER |
50 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_dma.c \ |
51 | CFLAGS += -DHSE_Value=8000000L |
51 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr.c \ |
52 | CFLAGS += -DEMB_FLASH -DSTM32L152xE |
52 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_pwr_ex.c \ |
53 | CFLAGS += -fdata-sections -ffunction-sections |
53 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.c \ |
54 | ASFLAGS = -mapcs-32 |
54 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_exti.c \ |
55 | LDFLAGS += -nostartfiles |
55 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c \ |
56 | LDFLAGS += $(CPUFLAGS) --specs=nano.specs |
56 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim_ex.c \ |
57 | OBJCOPYFLAGS = -O binary |
57 | Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.c \ |
58 | OBJDUMPFLAGS = -x --syms -S |
58 | Src/system_stm32l1xx.c |
59 | 59 | ||
60 | # Trace level used for compilation |
60 | # ASM sources |
61 | # (can be overriden by adding TRACE_LEVEL=#number to the command-line) |
61 | ASM_SOURCES = \ |
62 | # TRACE_LEVEL_DEBUG 5 |
62 | startup_stm32l152xe.s |
63 | # TRACE_LEVEL_INFO 4 |
63 | |
64 | # TRACE_LEVEL_WARNING 3 |
64 | # C++ sources |
65 | # TRACE_LEVEL_ERROR 2 |
65 | CPP_SOURCES += src/display.cpp |
66 | # TRACE_LEVEL_FATAL 1 |
66 | CPP_SOURCES += src/splash.cpp |
67 | # TRACE_LEVEL_NO_TRACE 0 |
67 | |
68 | 68 | C_SOURCES += src/switches.c |
|
69 | TRACE_LEVEL = 0 |
69 | C_SOURCES += src/nvram.c |
70 | 70 | ||
71 | # Optimization level |
71 | |
72 | OPTIMIZATION = -Os |
72 | ####################################### |
73 | # Output file basename |
73 | # binaries |
74 | 74 | ####################################### |
|
75 | #tell gcc to generate dependency file |
75 | PREFIX = arm-none-eabi- |
76 | CFLAGS += -MMD |
76 | # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) |
77 | 77 | # either it can be added to the PATH environment variable. |
|
78 | FLASH_LINKER_SCRIPT = STM32L152RE_FLASH.ld |
78 | ifdef GCC_PATH |
79 | 79 | CC = $(GCC_PATH)/$(PREFIX)gcc |
|
80 | #where the project is based relative to this directory |
80 | CXX = $(GCC_PATH)/$(PREFIX)g++ |
81 | PROJROOT = . |
81 | AS = $(GCC_PATH)/$(PREFIX)gcc -x assembler-with-cpp |
82 | # Output directories |
82 | CP = $(GCC_PATH)/$(PREFIX)objcopy |
83 | BIN = $(PROJROOT)/build |
83 | SZ = $(GCC_PATH)/$(PREFIX)size |
84 | 84 | else |
|
85 | OBJPATH = $(BIN)/$(FLASH_OUTPUT) |
85 | CC = $(PREFIX)gcc |
86 | 86 | CXX = $(PREFIX)g++ |
|
87 | DEPENDS = Makefile |
87 | AS = $(PREFIX)gcc -x assembler-with-cpp |
88 | 88 | CP = $(PREFIX)objcopy |
|
89 | 89 | SZ = $(PREFIX)size |
|
90 | ############################################# |
90 | endif |
91 | PRJ_SRC = $(PROJROOT)/Src |
91 | HEX = $(CP) -O ihex |
92 | PRJ_INC = $(PROJROOT)/Inc |
92 | BIN = $(CP) -O binary -S |
93 | 93 | ||
94 | PRJ_OBJ = $(OBJPATH)/PRJ_Obj |
94 | ####################################### |
95 | INCLUDES += -I$(PRJ_INC) |
95 | # CFLAGS |
96 | 96 | ####################################### |
|
97 | PRJ_OBJECTS = $(PRJ_OBJ)/main.o |
97 | # cpu |
98 | 98 | CPU = -mcpu=cortex-m3 |
|
99 | PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_it.o |
99 | |
100 | PRJ_OBJECTS += $(PRJ_OBJ)/stm32l1xx_hal_msp.o |
100 | # fpu |
101 | PRJ_OBJECTS += $(PRJ_OBJ)/serial.o |
101 | # NONE for Cortex-M0/M0+/M3 |
102 | PRJ_OBJECTS += $(PRJ_OBJ)/dials.o |
102 | |
103 | PRJ_OBJECTS += $(PRJ_OBJ)/switches.o |
103 | # float-abi |
104 | PRJ_OBJECTS += $(PRJ_OBJ)/ap_math.o |
104 | |
105 | PRJ_OBJECTS += $(PRJ_OBJ)/displayinfo.o |
105 | |
106 | PRJ_OBJECTS += $(PRJ_OBJ)/nvram.o |
106 | # mcu |
107 | 107 | MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI) |
|
108 | C_OBJECTS += $(PRJ_OBJECTS) |
108 | |
109 | 109 | # macros for gcc |
|
110 | $(PRJ_OBJ)/%.o: $(PRJ_SRC)/%.c $(DEPENDS) |
110 | # AS defines |
111 | $(CC) $(CFLAGS) $< -o $@ |
111 | AS_DEFS = |
112 | 112 | ||
113 | ##################################################### |
113 | # C defines |
114 | #Drivers for CMSIS |
114 | C_DEFS = \ |
115 | CMSIS_PATH=$(PROJROOT)/Drivers/CMSIS |
115 | -DUSE_HAL_DRIVER \ |
116 | DRV_PATH= $(CMSIS_PATH)/Device/ST/STM32L1xx |
116 | -DSTM32L152xE |
117 | DRV_SRC = $(DRV_PATH)/Source/Templates |
117 | |
118 | DRV_OBJ = $(OBJPATH)/Drv_Obj |
118 | |
119 | 119 | # AS includes |
|
120 | INCLUDES += -I$(DRV_PATH)/Include |
120 | AS_INCLUDES = |
121 | INCLUDES += -I$(CMSIS_PATH)/Include |
121 | |
122 | 122 | # C includes |
|
123 | DRV_OBJECTS = $(DRV_OBJ)/system_stm32l1xx.o |
123 | C_INCLUDES = \ |
124 | 124 | -IInc \ |
|
125 | C_OBJECTS += $(DRV_OBJECTS) |
125 | -IDrivers/STM32L1xx_HAL_Driver/Inc \ |
126 | 126 | -IDrivers/STM32L1xx_HAL_Driver/Inc/Legacy \ |
|
127 | $(DRV_OBJ)/%.o: $(DRV_SRC)/%.c $(DEPENDS) |
127 | -IDrivers/CMSIS/Device/ST/STM32L1xx/Include \ |
128 | $(CC) $(CFLAGS) $< -o $@ |
128 | -IDrivers/CMSIS/Include |
129 | 129 | ||
130 | 130 | ||
131 | 131 | ############################################# |
|
132 | 132 | ##Add libraries |
|
133 | ##################################################### |
133 | C_DEFS+=-DSERIAL_UART1 -DSERIAL_UART2 -DSERIAL_UART3 |
134 | #Drivers for HAL |
134 | LIBSERIAL = ../libSerial |
135 | HAL_PATH= $(PROJROOT)/Drivers/STM32L1xx_HAL_Driver |
135 | include $(LIBSERIAL)/libSerial.mk |
136 | HAL_SRC = $(HAL_PATH)/Src |
136 | |
137 | HAL_INC = $(HAL_PATH)/Inc |
137 | # New OLED library |
138 | HAL_OBJ = $(OBJPATH)/Hal_Obj |
138 | HAL = stm32_hal |
139 | 139 | LIBOLED = ../libOLED |
|
140 | INCLUDES += -I$(HAL_INC) |
140 | include $(LIBOLED)/libOLED.mk |
141 | 141 | ||
142 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_adc_ex.o |
142 | LIBPLX = ../libPLX |
143 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_adc.o |
143 | include $(LIBPLX)/libPLX.mk |
144 | 144 | ||
145 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_cortex.o |
145 | LIBSMALLPRINTF = ../libSmallPrintf |
146 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_dac_ex.o |
146 | include $(LIBSMALLPRINTF)/libSmallPrintf.mk |
147 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_dac.o |
147 | |
148 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_dma.o |
148 | C_INCLUDES+= -I. |
149 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_flash_ex.o |
149 | |
150 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_flash_ramfunc.o |
150 | |
151 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_flash.o |
151 | # compile gcc flags |
152 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_gpio.o |
152 | ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
153 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_i2c.o |
153 | |
154 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_irda.o |
154 | CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections |
155 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_pcd_ex.o |
155 | |
156 | #HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_pcd.o |
156 | ifeq ($(DEBUG), 1) |
157 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_pwr_ex.o |
157 | CFLAGS += -g -gdwarf-2 |
158 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_pwr.o |
158 | endif |
159 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_rcc_ex.o |
159 | |
160 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_rcc.o |
160 | |
161 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_spi_ex.o |
161 | # Generate dependency information |
162 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_spi.o |
162 | CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" |
163 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_tim_ex.o |
163 | |
164 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_tim.o |
164 | CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions |
165 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal_uart.o |
165 | |
166 | HAL_OBJECTS += $(HAL_OBJ)/stm32l1xx_hal.o |
166 | ####################################### |
167 | 167 | # LDFLAGS |
|
168 | C_OBJECTS += $(HAL_OBJECTS) |
168 | ####################################### |
169 | 169 | # link script |
|
170 | $(HAL_OBJ)/%.o: $(HAL_SRC)/%.c $(DEPENDS) |
170 | LDSCRIPT = STM32L152RETx_FLASH.ld |
171 | $(CC) $(CFLAGS) $< -o $@ |
171 | |
172 | 172 | # libraries |
|
173 | 173 | LIBS = -lc -lm -lnosys |
|
174 | ############################################# |
174 | LIBDIR = |
175 | 175 | LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections |
|
176 | # this one has assembler too |
176 | |
177 | $(DRV_OBJ)/startup_stm32l152xe.o : $(DRV_SRC)/gcc/startup_stm32l152xe.s $(DEPENDS) |
177 | # default action: build all |
178 | $(AS) $(ASFLAGS) $< -o $@ |
178 | all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin |
179 | 179 | ||
180 | ASM_OBJECTS += $(DRV_OBJ)/startup_stm32l152xe.o |
180 | |
181 | 181 | ####################################### |
|
182 | 182 | # build the application |
|
183 | ############################################# |
183 | ####################################### |
184 | # SPI OLED screen |
184 | # list of C compiled objects |
185 | 185 | OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o))) |
|
186 | 186 | vpath %.c $(sort $(dir $(C_SOURCES))) |
|
187 | OLED_PATH = $(PROJROOT)/SSD1306_lib |
187 | # List of C++ compiled objects |
188 | OLED_SRC = $(OLED_PATH) |
188 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SOURCES:.cpp=.o))) |
189 | OLED_INC = $(OLED_PATH) |
189 | vpath %.cpp $(sort $(dir $(CPP_SOURCES))) |
190 | OLED_OBJ = $(OBJPATH)/OLED_Obj |
190 | # list of ASM program objects |
191 | INCLUDES += -I$(OLED_INC) |
191 | OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) |
192 | 192 | vpath %.s $(sort $(dir $(ASM_SOURCES))) |
|
193 | OLED_OBJECTS += $(OLED_OBJ)/SSD1306.o |
193 | |
194 | OLED_OBJECTS += $(OLED_OBJ)/Font.o |
194 | $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) |
195 | 195 | $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
|
196 | C_OBJECTS += $(OLED_OBJECTS) |
196 | |
197 | 197 | $(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) |
|
198 | $(OLED_OBJ)/%.o: $(OLED_SRC)/%.c $(DEPENDS) |
198 | $(AS) -c $(CFLAGS) $< -o $@ |
199 | $(CC) $(CFLAGS) $< -o $@ |
199 | |
200 | 200 | $(BUILD_DIR)/%.o: %.cpp Makefile | $(BUILD_DIR) |
|
201 | 201 | $(CXX) -c $(CXXFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ |
|
202 | 202 | ||
203 | ############################################# |
203 | $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile |
204 | # PLX communications |
204 | $(CC) $(OBJECTS) $(LDFLAGS) -o $@ |
205 | 205 | $(SZ) $@ |
|
206 | 206 | ||
207 | PLX_PATH = $(PROJROOT)/plx_lib |
207 | $(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf | $(BUILD_DIR) |
208 | PLX_SRC = $(PLX_PATH) |
208 | $(HEX) $< $@ |
209 | PLX_INC = $(PLX_PATH) |
209 | |
210 | PLX_OBJ = $(OBJPATH)/PLX_Obj |
210 | $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf | $(BUILD_DIR) |
211 | INCLUDES += -I$(PLX_INC) |
211 | $(BIN) $< $@ |
212 | 212 | ||
213 | PLX_OBJECTS += $(PLX_OBJ)/plx.o |
213 | $(BUILD_DIR): |
214 | 214 | mkdir $@ |
|
215 | C_OBJECTS += $(PLX_OBJECTS) |
215 | |
216 | 216 | ####################################### |
|
217 | $(PLX_OBJ)/%.o: $(PLX_SRC)/%.c $(DEPENDS) |
217 | # clean up |
218 | $(CC) $(CFLAGS) $< -o $@ |
218 | ####################################### |
219 | 219 | clean: |
|
220 | 220 | -rm -fR $(BUILD_DIR) |
|
221 | 221 | ||
222 | ############################################# |
222 | ####################################### |
223 | # SMALL print |
223 | # dependencies |
224 | 224 | ####################################### |
|
225 | 225 | -include $(wildcard $(BUILD_DIR)/*.d) |
|
226 | SM_PRINT_PATH = $(PROJROOT)/printf_lib |
226 | |
227 | SM_PRINT_SRC = $(SM_PRINT_PATH)/Src |
227 | # *** EOF *** |
228 | SM_PRINT_INC = $(SM_PRINT_PATH)/Inc |
- | |
229 | SM_PRINT_OBJ = $(OBJPATH)/sm_print_Obj |
- | |
230 | INCLUDES += -I$(SM_PRINT_INC) |
- | |
231 | - | ||
232 | SM_PRINT_OBJECTS += $(SM_PRINT_OBJ)/small_printf.o |
- | |
233 | - | ||
234 | C_OBJECTS += $(SM_PRINT_OBJECTS) |
- | |
235 | - | ||
236 | $(SM_PRINT_OBJ)/%.o: $(SM_PRINT_SRC)/%.c $(DEPENDS) |
- | |
237 | $(CC) $(CFLAGS) $< -o $@ |
- | |
238 | - | ||
239 | - | ||
240 | - | ||
241 | - | ||
242 | ############################################# |
- | |
243 | # for version.h |
- | |
244 | INCLUDES += -I. |
- | |
245 | - | ||
246 | $(OBJPATH)/.exist: |
- | |
247 | mkdir -p $(OBJPATH) |
- | |
248 | mkdir -p $(DRV_OBJ) |
- | |
249 | mkdir -p $(HAL_OBJ) |
- | |
250 | mkdir -p $(PRJ_OBJ) |
- | |
251 | mkdir -p $(OLED_OBJ) |
- | |
252 | mkdir -p $(PLX_OBJ) |
- | |
253 | mkdir -p $(SM_PRINT_OBJ) |
- | |
254 | touch $@ |
- | |
255 | - | ||
256 | - | ||
257 | -include $(HAL_OBJECTS:.o=.d) |
- | |
258 | -include $(DRV_OBJECTS:.o=.d) |
- | |
259 | -include $(PRJ_OBJECTS:.o=.d) |
- | |
260 | -include $(OLED_OBJECTS:.o=.d) |
- | |
261 | -include $(PLX_OBJECTS:.o=.d) |
- | |
262 | -include $(SM_PRINT_OBJECTS:.o=.d) |
- | |
263 | - | ||
264 | - | ||
265 | - | ||
266 | ########################################### |
- | |
267 | # clean rules |
- | |
268 | clean-debug-dashboard-L152: clean_base |
- | |
269 | -rm -f $(BIN)/debug_dashboard_L152.* |
- | |
270 | - | ||
271 | clean-release-dashboard-L152: clean_base |
- | |
272 | -rm -f $(BIN)/release_dashboard_L152.* |
- | |
273 | - | ||
274 | - | ||
275 | #common clean rule |
- | |
276 | clean_base: |
- | |
277 | rm -f $(DRV_OBJ)/* |
- | |
278 | rm -f $(HAL_OBJ)/* |
- | |
279 | rm -f $(PRJ_OBJ)/* |
- | |
280 | rm -f $(OLED_OBJ)/* |
- | |
281 | rm -f $(PLX_OBJ)/* |
- | |
282 | rm -f $(SM_PRINT_OBJ)/* |
- | |
283 | - | ||
284 | #Macro expansion in the makefile change the paths used |
- | |
285 | BUILD_TARGETS = $(OBJPATH)/.exist revision flash |
- | |
286 | - | ||
287 | debug-dashboard-L152: $(BUILD_TARGETS) |
- | |
288 | @echo "done debug Dashboard L152" |
- | |
289 | - | ||
290 | release-dashboard-L152: $(BUILD_TARGETS) |
- | |
291 | @echo "done release Dashboard L152" |
- | |
292 | - | ||
293 | FINAL_BUILD=$(BIN)/$(FLASH_OUTPUT) |
- | |
294 | - | ||
295 | - | ||
296 | - | ||
297 | - | ||
298 | - | ||
299 | # updated to separate the debug info from the hex file |
- | |
300 | $(FINAL_BUILD).out: $(C_OBJECTS) $(ASM_OBJECTS) $(FLASH_LINKER_SCRIPT) |
- | |
301 | @ echo "..linking" |
- | |
302 | $(CC) $(LDFLAGS) -Wl,--gc-sections -Wl,-Map,$(FINAL_BUILD).map -T$(FLASH_LINKER_SCRIPT) -o $(FINAL_BUILD).out $(C_OBJECTS) $(ASM_OBJECTS) |
- | |
303 | $(OBJCOPY) --only-keep-debug $(FINAL_BUILD).out $(FINAL_BUILD).debug |
- | |
304 | $(OBJCOPY) --strip-all --strip-debug --add-gnu-debuglink=$(FINAL_BUILD).debug --output-target srec --image-base 0x08000000 $(FINAL_BUILD).out $(FINAL_BUILD).s19 |
- | |
305 | - | ||
306 | %.bin : %.out; |
- | |
307 | # $(OBJCOPY) $(OBJCOPYFLAGS) $< $@ |
- | |
308 | $(OBJDUMP) $(OBJDUMPFLAGS) $< > $<.list |
- | |
309 | # $(OBJDUMP) $(OBJDUMPFLAGS) $< |
- | |
310 | @ echo "...completed." |
- | |
311 | - | ||
312 | #getting the Subversion Repository information |
- | |
313 | #This requires that $(PROJROOT)/src/versions.h is NOT under SVN control (or always will see (Modified) version status) |
- | |
314 | revision: |
- | |
315 | touch $(PROJROOT)/versions.h |
- | |
316 | # @echo subWCrev . $(PROJROOT)/versions_base.h $(PROJROOT)/versions.h |
- | |
317 | - | ||
318 | #final target |
- | |
319 | flash:$(FINAL_BUILD).bin |
- | |
320 | - | ||
321 | - |