Makefile 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. PROJECT_ROOT := $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST)))))
  2. COPRO_DIR := $(PROJECT_ROOT)/lib/STM32CubeWB/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x
  3. NPROCS := 1
  4. OS := $(shell uname -s)
  5. ifeq ($(OS), Linux)
  6. NPROCS := $(shell grep -c ^processor /proc/cpuinfo)
  7. else ifeq ($(OS), Darwin)
  8. NPROCS := $(shell sysctl -n hw.ncpu)
  9. endif
  10. include $(PROJECT_ROOT)/make/defaults.mk
  11. .PHONY: all
  12. all: bootloader_all firmware_all
  13. @$(PROJECT_ROOT)/scripts/dist.sh
  14. .PHONY: whole
  15. whole: flash_radio bootloader_flash firmware_flash
  16. .PHONY: clean
  17. clean: bootloader_clean firmware_clean
  18. @rm -rf $(PROJECT_ROOT)/dist/$(TARGET)
  19. .PHONY: flash
  20. flash: bootloader_flash firmware_flash
  21. .PHONY: debug
  22. debug:
  23. @$(MAKE) -C firmware -j$(NPROCS) debug
  24. .PHONY: blackmagic
  25. blackmagic:
  26. @$(MAKE) -C firmware -j$(NPROCS) blackmagic
  27. .PHONY: wipe
  28. wipe:
  29. @$(PROJECT_ROOT)/scripts/flash.py wipe
  30. @$(PROJECT_ROOT)/scripts/ob.py set
  31. .PHONY: bootloader_all
  32. bootloader_all:
  33. @$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) all
  34. .PHONY: firmware_all
  35. firmware_all:
  36. @$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) all
  37. .PHONY: bootloader_clean
  38. bootloader_clean:
  39. @$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) clean
  40. .PHONY: firmware_clean
  41. firmware_clean:
  42. @$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) clean
  43. .PHONY: bootloader_flash
  44. bootloader_flash:
  45. ifeq ($(FORCE), 1)
  46. @rm $(PROJECT_ROOT)/bootloader/.obj/f*/flash || true
  47. endif
  48. @$(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) flash
  49. .PHONY: firmware_flash
  50. firmware_flash:
  51. ifeq ($(FORCE), 1)
  52. @rm $(PROJECT_ROOT)/firmware/.obj/f*/flash || true
  53. endif
  54. @$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) flash
  55. .PHONY: flash_radio
  56. flash_radio:
  57. @$(PROJECT_ROOT)/scripts/flash.py core2radio 0x080D7000 $(COPRO_DIR)/stm32wb5x_BLE_Stack_light_fw.bin
  58. @$(PROJECT_ROOT)/scripts/ob.py set
  59. .PHONY: flash_radio_fus
  60. flash_radio_fus:
  61. @echo
  62. @echo "================ DON'T DO IT ================"
  63. @echo "= Flashing FUS is going to erase secure enclave ="
  64. @echo "= You will loose ability to use encrypted assets ="
  65. @echo "= type 'find / -exec rm -rf {} \;' ="
  66. @echo "= In case if you still want to continue ="
  67. @echo "================ JUST DON'T ================"
  68. @echo
  69. .PHONY: flash_radio_fus_please_i_m_not_going_to_complain
  70. flash_radio_fus_please_i_m_not_going_to_complain:
  71. @$(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
  72. @$(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw.bin
  73. @$(PROJECT_ROOT)/scripts/ob.py set
  74. FORMAT_SOURCES = $(shell find applications bootloader core -iname "*.h" -o -iname "*.c" -o -iname "*.cpp")
  75. .PHONY: format
  76. format:
  77. @echo "Formatting sources with clang-format"
  78. @clang-format -style=file -i $(FORMAT_SOURCES)