2021-10-21 15:24:34 +03:00
|
|
|
PROJECT_ROOT := $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST)))))
|
|
|
|
COPRO_DIR := $(PROJECT_ROOT)/lib/STM32CubeWB/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x
|
|
|
|
|
2022-01-05 19:10:18 +03:00
|
|
|
PROJECT_SOURCE_DIRECTORIES := \
|
|
|
|
$(PROJECT_ROOT)/applications \
|
|
|
|
$(PROJECT_ROOT)/bootloader/src \
|
|
|
|
$(PROJECT_ROOT)/bootloader/targets \
|
|
|
|
$(PROJECT_ROOT)/core \
|
|
|
|
$(PROJECT_ROOT)/firmware/targets \
|
|
|
|
$(PROJECT_ROOT)/lib/app-template \
|
|
|
|
$(PROJECT_ROOT)/lib/app-scened-template \
|
|
|
|
$(PROJECT_ROOT)/lib/common-api \
|
|
|
|
$(PROJECT_ROOT)/lib/cyfral \
|
|
|
|
$(PROJECT_ROOT)/lib/drivers \
|
|
|
|
$(PROJECT_ROOT)/lib/flipper_file \
|
2022-02-25 18:22:58 +03:00
|
|
|
$(PROJECT_ROOT)/lib/infrared \
|
2022-01-05 19:10:18 +03:00
|
|
|
$(PROJECT_ROOT)/lib/nfc_protocols \
|
|
|
|
$(PROJECT_ROOT)/lib/ST25RFAL002 \
|
|
|
|
$(PROJECT_ROOT)/lib/onewire \
|
|
|
|
$(PROJECT_ROOT)/lib/qrcode \
|
|
|
|
$(PROJECT_ROOT)/lib/subghz \
|
|
|
|
$(PROJECT_ROOT)/lib/toolbox \
|
|
|
|
$(PROJECT_ROOT)/lib/u8g2
|
|
|
|
|
|
|
|
NPROCS := 3
|
2021-10-21 21:12:20 +03:00
|
|
|
OS := $(shell uname -s)
|
|
|
|
|
|
|
|
ifeq ($(OS), Linux)
|
|
|
|
NPROCS := $(shell grep -c ^processor /proc/cpuinfo)
|
|
|
|
else ifeq ($(OS), Darwin)
|
|
|
|
NPROCS := $(shell sysctl -n hw.ncpu)
|
|
|
|
endif
|
|
|
|
|
2021-11-18 11:46:47 +03:00
|
|
|
include $(PROJECT_ROOT)/make/defaults.mk
|
|
|
|
|
2021-10-21 15:24:34 +03:00
|
|
|
.PHONY: all
|
|
|
|
all: bootloader_all firmware_all
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(PROJECT_ROOT)/scripts/dist.sh
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: whole
|
|
|
|
whole: flash_radio bootloader_flash firmware_flash
|
|
|
|
|
|
|
|
.PHONY: clean
|
|
|
|
clean: bootloader_clean firmware_clean
|
2021-11-18 11:46:47 +03:00
|
|
|
@rm -rf $(PROJECT_ROOT)/dist/$(TARGET)
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: flash
|
|
|
|
flash: bootloader_flash firmware_flash
|
|
|
|
|
|
|
|
.PHONY: debug
|
|
|
|
debug:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C firmware -j$(NPROCS) debug
|
2021-10-21 15:24:34 +03:00
|
|
|
|
2021-11-15 22:55:25 +03:00
|
|
|
.PHONY: blackmagic
|
|
|
|
blackmagic:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C firmware -j$(NPROCS) blackmagic
|
2021-11-15 22:55:25 +03:00
|
|
|
|
2021-10-21 15:24:34 +03:00
|
|
|
.PHONY: wipe
|
|
|
|
wipe:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(PROJECT_ROOT)/scripts/flash.py wipe
|
|
|
|
@$(PROJECT_ROOT)/scripts/ob.py set
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: bootloader_all
|
|
|
|
bootloader_all:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) all
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: firmware_all
|
|
|
|
firmware_all:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) all
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: bootloader_clean
|
|
|
|
bootloader_clean:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) clean
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: firmware_clean
|
|
|
|
firmware_clean:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) clean
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: bootloader_flash
|
|
|
|
bootloader_flash:
|
2021-11-11 15:49:19 +03:00
|
|
|
ifeq ($(FORCE), 1)
|
2021-11-18 11:46:47 +03:00
|
|
|
@rm $(PROJECT_ROOT)/bootloader/.obj/f*/flash || true
|
2021-11-01 16:11:25 +03:00
|
|
|
endif
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) flash
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: firmware_flash
|
|
|
|
firmware_flash:
|
2021-11-11 15:49:19 +03:00
|
|
|
ifeq ($(FORCE), 1)
|
2021-11-18 11:46:47 +03:00
|
|
|
@rm $(PROJECT_ROOT)/firmware/.obj/f*/flash || true
|
2021-11-01 16:11:25 +03:00
|
|
|
endif
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) flash
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: flash_radio
|
|
|
|
flash_radio:
|
2021-12-23 19:24:09 +03:00
|
|
|
@$(PROJECT_ROOT)/scripts/flash.py core2radio 0x080D7000 $(COPRO_DIR)/stm32wb5x_BLE_Stack_light_fw.bin
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(PROJECT_ROOT)/scripts/ob.py set
|
2021-10-21 15:24:34 +03:00
|
|
|
|
|
|
|
.PHONY: flash_radio_fus
|
|
|
|
flash_radio_fus:
|
|
|
|
@echo
|
|
|
|
@echo "================ DON'T DO IT ================"
|
|
|
|
@echo "= Flashing FUS is going to erase secure enclave ="
|
|
|
|
@echo "= You will loose ability to use encrypted assets ="
|
|
|
|
@echo "= type 'find / -exec rm -rf {} \;' ="
|
|
|
|
@echo "= In case if you still want to continue ="
|
|
|
|
@echo "================ JUST DON'T ================"
|
|
|
|
@echo
|
|
|
|
|
2021-11-01 16:11:25 +03:00
|
|
|
.PHONY: flash_radio_fus_please_i_m_not_going_to_complain
|
2021-10-21 15:24:34 +03:00
|
|
|
flash_radio_fus_please_i_m_not_going_to_complain:
|
2021-11-18 11:46:47 +03:00
|
|
|
@$(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw_for_fus_0_5_3.bin
|
|
|
|
@$(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw.bin
|
|
|
|
@$(PROJECT_ROOT)/scripts/ob.py set
|
2021-11-01 16:11:25 +03:00
|
|
|
|
2022-01-05 19:10:18 +03:00
|
|
|
.PHONY: lint
|
|
|
|
lint:
|
|
|
|
@echo "Checking source code formatting"
|
|
|
|
@$(PROJECT_ROOT)/scripts/lint.py check $(PROJECT_SOURCE_DIRECTORIES)
|
2021-11-01 16:11:25 +03:00
|
|
|
|
|
|
|
.PHONY: format
|
|
|
|
format:
|
2022-01-05 19:10:18 +03:00
|
|
|
@echo "Reformating sources code"
|
|
|
|
@$(PROJECT_ROOT)/scripts/lint.py format $(PROJECT_SOURCE_DIRECTORIES)
|
2022-03-03 12:48:56 +03:00
|
|
|
|
|
|
|
.PHONY: guruguru
|
|
|
|
guruguru:
|
|
|
|
@echo "ぐるぐる回る"
|
|
|
|
@$(PROJECT_ROOT)/scripts/guruguru.py $(PROJECT_ROOT)
|