 936a2f64b2
			
		
	
	
		936a2f64b2
		
			
		
	
	
	
	
		
			
			* FuriHal: add more supported radio stacks * Bt: correct ble stack enum value * Bt: update cli testing commands implementation * Scripts: always emitting ob data to update manifest; added ob_custradio.data for non-light radio stacks * Scripts: added stack type whitelist & disclaimer message * ble: remove scanner * ble: remove HCI and advances ble stacks support * bt: correctly close RPC session before bt reinit * Scripts: update bundler: estimating flash layout & refusing to build dangerous packages; app frame: not adding redundant log handlers * Docs: additional details on bundling updates; fixed updater error codes * Docs: wording fixes for OTA.md Co-authored-by: hedger <hedger@nanode.su> Co-authored-by: gornekich <n.gorbadey@gmail.com> Co-authored-by: SG <who.just.the.doctor@gmail.com>
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| PROJECT_ROOT := $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST)))))
 | |
| 
 | |
| include			$(PROJECT_ROOT)/make/git.mk
 | |
| include			$(PROJECT_ROOT)/assets/copro.mk
 | |
| 
 | |
| PROJECT_SOURCE_DIRECTORIES := \
 | |
| 	$(PROJECT_ROOT)/applications \
 | |
| 	$(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/drivers \
 | |
| 	$(PROJECT_ROOT)/lib/flipper_file \
 | |
| 	$(PROJECT_ROOT)/lib/infrared \
 | |
| 	$(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
 | |
| 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
 | |
| 
 | |
| include	$(PROJECT_ROOT)/make/defaults.mk
 | |
| 
 | |
| .PHONY: all
 | |
| all: firmware_all
 | |
| 	@$(PROJECT_ROOT)/scripts/dist.py copy -t $(TARGET) -p firmware -s $(DIST_SUFFIX)
 | |
| 
 | |
| .PHONY: whole
 | |
| whole: flash_radio firmware_flash
 | |
| 
 | |
| .PHONY: clean
 | |
| clean: firmware_clean updater_clean
 | |
| 	@rm -rf $(PROJECT_ROOT)/dist/$(TARGET)
 | |
| 
 | |
| .PHONY: flash
 | |
| flash: firmware_flash
 | |
| 
 | |
| .PHONY: debug
 | |
| debug:
 | |
| 	@$(MAKE) -C firmware -j$(NPROCS) debug
 | |
| 
 | |
| .PHONY: debug_other
 | |
| debug_other:
 | |
| 	@$(MAKE) -C firmware -j$(NPROCS) debug_other
 | |
| 
 | |
| .PHONY: blackmagic
 | |
| blackmagic:
 | |
| 	@$(MAKE) -C firmware -j$(NPROCS) blackmagic
 | |
| 
 | |
| .PHONY: wipe
 | |
| wipe:
 | |
| 	@$(PROJECT_ROOT)/scripts/flash.py wipe
 | |
| 	@$(PROJECT_ROOT)/scripts/ob.py set
 | |
| 
 | |
| .PHONY: firmware_all
 | |
| firmware_all:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) all
 | |
| 
 | |
| .PHONY: firmware_clean
 | |
| firmware_clean:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) clean
 | |
| 
 | |
| .PHONY: firmware_flash
 | |
| firmware_flash:
 | |
| ifeq ($(FORCE), 1)
 | |
| 	@rm $(PROJECT_ROOT)/firmware/.obj/f*-firmware/flash || true
 | |
| endif
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) flash
 | |
| 
 | |
| .PHONY: updater
 | |
| updater:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) RAM_EXEC=1 all
 | |
| 
 | |
| .PHONY: updater_clean
 | |
| updater_clean:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) RAM_EXEC=1 clean
 | |
| 
 | |
| .PHONY: updater_debug
 | |
| updater_debug:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) RAM_EXEC=1 debug
 | |
| 
 | |
| .PHONY: updater_package_bin
 | |
| updater_package_bin: firmware_all updater
 | |
| 	@$(PROJECT_ROOT)/scripts/dist.py copy -t $(TARGET) -p firmware updater -s $(DIST_SUFFIX) --bundlever "$(VERSION_STRING)"
 | |
| 
 | |
| .PHONY: updater_package
 | |
| updater_package: firmware_all updater assets_manifest
 | |
| 	@$(PROJECT_ROOT)/scripts/dist.py copy \
 | |
| 	-t $(TARGET) -p firmware updater \
 | |
| 	-s $(DIST_SUFFIX) -r $(PROJECT_ROOT)/assets/resources \
 | |
| 	--bundlever "$(VERSION_STRING)" \
 | |
| 	--radio $(COPRO_STACK_BIN_PATH) \
 | |
| 	--radiotype $(COPRO_STACK_TYPE) \
 | |
| 	$(COPRO_DISCLAIMER) \
 | |
| 	--obdata $(PROJECT_ROOT)/scripts/$(COPRO_OB_DATA)
 | |
| 
 | |
| .PHONY: assets_manifest
 | |
| assets_manifest:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/assets manifest
 | |
| 
 | |
| .PHONY: assets_rebuild
 | |
| assets_rebuild:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/assets clean all
 | |
| 
 | |
| .PHONY: flash_radio
 | |
| flash_radio:
 | |
| 	@$(PROJECT_ROOT)/scripts/flash.py core2radio $(COPRO_STACK_BIN_PATH) --addr=$(COPRO_STACK_ADDR)
 | |
| 	@$(PROJECT_ROOT)/scripts/ob.py set
 | |
| 
 | |
| .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 lose 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
 | |
| 
 | |
| .PHONY: flash_radio_fus_please_i_m_not_going_to_complain
 | |
| flash_radio_fus_please_i_m_not_going_to_complain:
 | |
| 	@$(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOSE_FLIPPER_FEATURES_THAT_USE_CRYPTO_ENCLAVE $(COPRO_FIRMWARE_DIR)/stm32wb5x_FUS_fw_for_fus_0_5_3.bin
 | |
| 	@$(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOSE_FLIPPER_FEATURES_THAT_USE_CRYPTO_ENCLAVE $(COPRO_FIRMWARE_DIR)/stm32wb5x_FUS_fw.bin
 | |
| 	@$(PROJECT_ROOT)/scripts/ob.py set
 | |
| 
 | |
| .PHONY: lint
 | |
| lint:
 | |
| 	@echo "Checking source code formatting"
 | |
| 	@$(PROJECT_ROOT)/scripts/lint.py check $(PROJECT_SOURCE_DIRECTORIES)
 | |
| 
 | |
| .PHONY: format
 | |
| format:
 | |
| 	@echo "Reformating sources code"
 | |
| 	@$(PROJECT_ROOT)/scripts/lint.py format $(PROJECT_SOURCE_DIRECTORIES)
 | |
| 
 | |
| .PHONY: guruguru
 | |
| guruguru:
 | |
| 	@echo "ぐるぐる回る"
 | |
| 	@$(PROJECT_ROOT)/scripts/guruguru.py $(PROJECT_ROOT)
 | |
| 
 | |
| .PHONY: generate_compile_db
 | |
| generate_compile_db:
 | |
| 	@$(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) generate_compile_db
 |