Skip to content

Commit bfa269c

Browse files
committed
makefile and build clean up
1 parent 74d5dac commit bfa269c

File tree

2 files changed

+82
-91
lines changed

2 files changed

+82
-91
lines changed

Makefile

Lines changed: 70 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -33,54 +33,41 @@ OUTPUT_FILENAME = $(BOARD)_bootloader-$(GIT_VERSION)
3333
#******************************************************************************
3434
# Tool configure
3535
#******************************************************************************
36-
NRFUTIL = adafruit-nrfutil
37-
38-
ifneq ($(JLINK),)
39-
NRFJPROG = nrfjprog -s $(JLINK)
40-
else
41-
NRFJPROG = nrfjprog
42-
endif
4336

44-
# auto-detect BMP on macOS, otherwise have to specify
45-
BMP_PORT ?= $(shell ls -1 /dev/cu.usbmodem????????1 | head -1)
37+
# Toolchain commands
38+
# Should be added to your PATH
39+
CROSS_COMPILE = arm-none-eabi-
40+
CC := $(CROSS_COMPILE)gcc
41+
AS := $(CROSS_COMPILE)as
42+
AR := $(CROSS_COMPILE)ar -r
43+
LD := $(CROSS_COMPILE)ld
44+
NM := $(CROSS_COMPILE)nm
45+
OBJDUMP := $(CROSS_COMPILE)objdump
46+
OBJCOPY := $(CROSS_COMPILE)objcopy
47+
SIZE := $(CROSS_COMPILE)size
48+
GDB := $(CROSS_COMPILE)gdb
4649

47-
ifeq ($(OS),Windows_NT)
48-
PROGFILES = C:/Program Files (x86)
49-
GNU_INSTALL_ROOT = $(PROGFILES)/GNU Tools ARM Embedded/7 2018-q2-update/bin/
50-
endif
50+
NRFUTIL = adafruit-nrfutil
51+
NRFJPROG = nrfjprog
5152

5253
MK := mkdir
5354
RM := rm -rf
5455

5556
# Verbose mode (V=). 0: default, 1: print out CFLAG, LDFLAG 2: print all compile command
5657
ifeq ("$(V)","2")
57-
QUIET =
58+
QUIET =
5859
else
59-
QUIET = @
60+
QUIET = @
6061
endif
6162

62-
GNU_PREFIX = arm-none-eabi
63-
64-
# Toolchain commands
65-
CC := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-gcc'
66-
AS := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-as'
67-
AR := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-ar' -r
68-
LD := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-ld'
69-
NM := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-nm'
70-
OBJDUMP := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-objdump'
71-
OBJCOPY := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-objcopy'
72-
SIZE := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-size'
73-
GDB := '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-gdb'
74-
75-
GDB_BMP = arm-none-eabi-gdb -ex 'target extended-remote $(BMP_PORT)' -ex 'monitor swdp_scan' -ex 'attach 1'
76-
77-
#function for removing duplicates in a list
78-
remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1),$1))))
63+
# auto-detect BMP on macOS, otherwise have to specify
64+
BMP_PORT ?= $(shell ls -1 /dev/cu.usbmodem????????1 | head -1)
65+
GDB_BMP = $(GDB) -ex 'target extended-remote $(BMP_PORT)' -ex 'monitor swdp_scan' -ex 'attach 1'
7966

8067
#*********************************
8168
# Select the board to build
8269
#*********************************
83-
BOARD_LIST = $(sort $(subst .h,,$(subst src/boards/,,$(wildcard src/boards/*))))
70+
BOARD_LIST = $(sort $(subst src/boards/,,$(wildcard src/boards/*)))
8471

8572
ifeq ($(filter $(BOARD),$(BOARD_LIST)),)
8673
$(info You must provide a BOARD parameter with 'BOARD='. Supported boards are:)
@@ -116,77 +103,77 @@ endif
116103
#******************************************************************************
117104

118105
# src
119-
C_SOURCE_FILES += $(SRC_PATH)/main.c
120-
C_SOURCE_FILES += $(SRC_PATH)/boards.c
121-
C_SOURCE_FILES += $(SRC_PATH)/flash_nrf5x.c
122-
C_SOURCE_FILES += $(SRC_PATH)/dfu_ble_svc.c
123-
C_SOURCE_FILES += $(SRC_PATH)/dfu_init.c
106+
C_SRC += $(SRC_PATH)/boards.c
107+
C_SRC += $(SRC_PATH)/dfu_ble_svc.c
108+
C_SRC += $(SRC_PATH)/dfu_init.c
109+
C_SRC += $(SRC_PATH)/flash_nrf5x.c
110+
C_SRC += $(SRC_PATH)/main.c
124111

125112
# all sources files in specific board
126-
C_SOURCE_FILES += $(wildcard $(SRC_PATH)/boards/$(BOARD)/*.c)
113+
C_SRC += $(wildcard $(SRC_PATH)/boards/$(BOARD)/*.c)
127114

128115
# nrfx
129-
C_SOURCE_FILES += $(NRFX_PATH)/drivers/src/nrfx_power.c
130-
C_SOURCE_FILES += $(NRFX_PATH)/drivers/src/nrfx_nvmc.c
131-
C_SOURCE_FILES += $(NRFX_PATH)/mdk/system_$(MCU_SUB_VARIANT).c
116+
C_SRC += $(NRFX_PATH)/drivers/src/nrfx_power.c
117+
C_SRC += $(NRFX_PATH)/drivers/src/nrfx_nvmc.c
118+
C_SRC += $(NRFX_PATH)/mdk/system_$(MCU_SUB_VARIANT).c
132119

133120
# SDK 11 files
134-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader.c
135-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader_settings.c
136-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader_util.c
137-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_transport_serial.c
138-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_transport_ble.c
139-
C_SOURCE_FILES += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_single_bank.c
121+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader.c
122+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader_settings.c
123+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/bootloader_util.c
124+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_transport_serial.c
125+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_transport_ble.c
126+
C_SRC += $(SDK11_PATH)/libraries/bootloader_dfu/dfu_single_bank.c
140127

141-
C_SOURCE_FILES += $(SDK11_PATH)/drivers_nrf/pstorage/pstorage_raw.c
128+
C_SRC += $(SDK11_PATH)/drivers_nrf/pstorage/pstorage_raw.c
142129

143-
C_SOURCE_FILES += $(SDK11_PATH)/ble/ble_services/ble_dfu/ble_dfu.c
144-
C_SOURCE_FILES += $(SDK11_PATH)/ble/ble_services/ble_dis/ble_dis.c
130+
C_SRC += $(SDK11_PATH)/ble/ble_services/ble_dfu/ble_dfu.c
131+
C_SRC += $(SDK11_PATH)/ble/ble_services/ble_dis/ble_dis.c
145132

146133
# Latest SDK files
147-
C_SOURCE_FILES += $(SDK_PATH)/libraries/timer/app_timer.c
148-
C_SOURCE_FILES += $(SDK_PATH)/libraries/scheduler/app_scheduler.c
149-
C_SOURCE_FILES += $(SDK_PATH)/libraries/util/app_error.c
150-
C_SOURCE_FILES += $(SDK_PATH)/libraries/util/app_util_platform.c
151-
C_SOURCE_FILES += $(SDK_PATH)/libraries/crc16/crc16.c
152-
C_SOURCE_FILES += $(SDK_PATH)/libraries/hci/hci_mem_pool.c
153-
C_SOURCE_FILES += $(SDK_PATH)/libraries/hci/hci_slip.c
154-
C_SOURCE_FILES += $(SDK_PATH)/libraries/hci/hci_transport.c
155-
C_SOURCE_FILES += $(SDK_PATH)/libraries/util/nrf_assert.c
134+
C_SRC += $(SDK_PATH)/libraries/timer/app_timer.c
135+
C_SRC += $(SDK_PATH)/libraries/scheduler/app_scheduler.c
136+
C_SRC += $(SDK_PATH)/libraries/util/app_error.c
137+
C_SRC += $(SDK_PATH)/libraries/util/app_util_platform.c
138+
C_SRC += $(SDK_PATH)/libraries/crc16/crc16.c
139+
C_SRC += $(SDK_PATH)/libraries/hci/hci_mem_pool.c
140+
C_SRC += $(SDK_PATH)/libraries/hci/hci_slip.c
141+
C_SRC += $(SDK_PATH)/libraries/hci/hci_transport.c
142+
C_SRC += $(SDK_PATH)/libraries/util/nrf_assert.c
156143

157144
# UART or USB Serial
158145
ifeq ($(MCU_SUB_VARIANT),nrf52)
159-
C_SOURCE_FILES += $(SDK_PATH)/libraries/uart/app_uart.c
160-
C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/uart/nrf_drv_uart.c
161-
C_SOURCE_FILES += $(SDK_PATH)/drivers_nrf/common/nrf_drv_common.c
146+
C_SRC += $(SDK_PATH)/libraries/uart/app_uart.c
147+
C_SRC += $(SDK_PATH)/drivers_nrf/uart/nrf_drv_uart.c
148+
C_SRC += $(SDK_PATH)/drivers_nrf/common/nrf_drv_common.c
162149

163150
IPATH += $(SDK11_PATH)/libraries/util
164151
IPATH += $(SDK_PATH)/drivers_nrf/common
165152
IPATH += $(SDK_PATH)/drivers_nrf/uart
166153

167154
else
168155
# src
169-
C_SOURCE_FILES += $(SRC_PATH)/usb/usb_desc.c
170-
C_SOURCE_FILES += $(SRC_PATH)/usb/usb.c
171-
C_SOURCE_FILES += $(SRC_PATH)/usb/msc_uf2.c
172-
C_SOURCE_FILES += $(SRC_PATH)/usb/uf2/ghostfat.c
156+
C_SRC += $(SRC_PATH)/usb/usb_desc.c
157+
C_SRC += $(SRC_PATH)/usb/usb.c
158+
C_SRC += $(SRC_PATH)/usb/msc_uf2.c
159+
C_SRC += $(SRC_PATH)/usb/uf2/ghostfat.c
173160

174161
# TinyUSB stack
175-
C_SOURCE_FILES += $(TUSB_PATH)/portable/nordic/nrf5x/dcd_nrf5x.c
176-
C_SOURCE_FILES += $(TUSB_PATH)/common/tusb_fifo.c
177-
C_SOURCE_FILES += $(TUSB_PATH)/device/usbd.c
178-
C_SOURCE_FILES += $(TUSB_PATH)/device/usbd_control.c
179-
C_SOURCE_FILES += $(TUSB_PATH)/class/cdc/cdc_device.c
180-
C_SOURCE_FILES += $(TUSB_PATH)/class/msc/msc_device.c
181-
C_SOURCE_FILES += $(TUSB_PATH)/tusb.c
162+
C_SRC += $(TUSB_PATH)/portable/nordic/nrf5x/dcd_nrf5x.c
163+
C_SRC += $(TUSB_PATH)/common/tusb_fifo.c
164+
C_SRC += $(TUSB_PATH)/device/usbd.c
165+
C_SRC += $(TUSB_PATH)/device/usbd_control.c
166+
C_SRC += $(TUSB_PATH)/class/cdc/cdc_device.c
167+
C_SRC += $(TUSB_PATH)/class/msc/msc_device.c
168+
C_SRC += $(TUSB_PATH)/tusb.c
182169

183170
endif
184171

185172

186173
#******************************************************************************
187174
# Assembly Files
188175
#******************************************************************************
189-
ASM_SOURCE_FILES = $(NRFX_PATH)/mdk/gcc_startup_$(MCU_SUB_VARIANT).S
176+
ASM_SRC = $(NRFX_PATH)/mdk/gcc_startup_$(MCU_SUB_VARIANT).S
190177

191178
#******************************************************************************
192179
# INCLUDE PATH
@@ -292,12 +279,16 @@ ASMFLAGS += -DSOFTDEVICE_PRESENT
292279
ASMFLAGS += -DFLOAT_ABI_HARD
293280
ASMFLAGS += $(MCU_FLAGS)
294281

295-
C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES))
296-
C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES) ) )
282+
283+
#function for removing duplicates in a list
284+
remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1),$1))))
285+
286+
C_SOURCE_FILE_NAMES = $(notdir $(C_SRC))
287+
C_PATHS = $(call remduplicates, $(dir $(C_SRC) ) )
297288
C_OBJECTS = $(addprefix $(BUILD)/, $(C_SOURCE_FILE_NAMES:.c=.o) )
298289

299-
ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCE_FILES))
300-
ASM_PATHS = $(call remduplicates, $(dir $(ASM_SOURCE_FILES) ))
290+
ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SRC))
291+
ASM_PATHS = $(call remduplicates, $(dir $(ASM_SRC) ))
301292
ASM_OBJECTS = $(addprefix $(BUILD)/, $(ASM_SOURCE_FILE_NAMES:.S=.o) )
302293

303294
vpath %.c $(C_PATHS)

tools/build_all.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
11
import os
22
import shutil
3+
import glob
34
import sys
45
import subprocess
56
import time
67

78
subprocess.run("rm -rf _build*", shell=True)
89
subprocess.run("rm -rf bin/*", shell=True)
910

10-
travis = False
11-
if "TRAVIS" in os.environ and os.environ["TRAVIS"] == "true":
12-
travis = True
13-
1411
success_count = 0
1512
fail_count = 0
1613
exit_status = 0
1714

18-
build_format = '| {:30} | {:9} '
19-
build_separator = '-' * 54
15+
build_format = '| {:32} | {:9} | {:5} | {:6} | {:6} |'
16+
build_separator = '-' * 74
2017

18+
# All supported boards
2119
all_boards = []
2220
for entry in os.scandir("src/boards"):
2321
all_boards.append(entry.name)
22+
all_boards.sort()
2423

2524
#sha, version = build_info.get_version_info()
2625

2726
total_time = time.monotonic()
2827

2928
print(build_separator)
30-
print((build_format + '| {:5} |').format('Board', 'Result', 'Time'))
29+
print(build_format.format('Board', 'Result', 'Time', 'Flash', 'SRAM'))
3130
print(build_separator)
3231

3332
for board in all_boards:
@@ -51,15 +50,16 @@
5150
if entry.name.endswith(extension) and "nosd" not in entry.name:
5251
shutil.copy(entry.path, bin_directory)
5352

54-
if travis:
55-
print('travis_fold:start:build-{}\\r'.format(board))
53+
out_file = glob.glob('_build-{}/*.out'.format(board))[0]
54+
size_output = subprocess.run('size {}'.format(out_file), shell=True, stdout=subprocess.PIPE).stdout.decode("utf-8")
55+
size_list = size_output.split('\n')[1].split('\t')
56+
flash_size = int(size_list[0])
57+
sram_size = int(size_list[1]) + int(size_list[2])
5658

57-
print((build_format + '| {:.2f}s |').format(board, success, build_duration))
59+
print(build_format.format(board, success, "{:.2f}s".format(build_duration), flash_size, sram_size))
5860

5961
if make_result.returncode != 0:
6062
print(make_result.stdout.decode("utf-8"))
61-
if travis:
62-
print('travis_fold:end:build-{}\\r'.format(board))
6363

6464
# Build Summary
6565
total_time = time.monotonic() - total_time

0 commit comments

Comments
 (0)