forked from flipperdevices/flipperzero-firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FL-2052] New build system based on scons (flipperdevices#1269)
- Loading branch information
Showing
179 changed files
with
3,988 additions
and
5,198 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -39,3 +39,11 @@ dist | |
|
||
# kde | ||
.directory | ||
|
||
# SCons | ||
.sconsign.dblite | ||
# SCons build dir | ||
build/ | ||
|
||
# Toolchain | ||
toolchain*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,6 @@ | ||
cask "gcc-arm-embedded" | ||
brew "protobuf" | ||
brew "gdb" | ||
brew "heatshrink" | ||
brew "open-ocd" | ||
brew "clang-format" | ||
brew "dfu-util" | ||
brew "imagemagick" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,157 +1,21 @@ | ||
PROJECT_ROOT := $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST))))) | ||
|
||
include $(PROJECT_ROOT)/make/git.mk | ||
include $(PROJECT_ROOT)/assets/copro.mk | ||
include $(PROJECT_ROOT)/assets/splash.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) \ | ||
--splash $(UPDATER_SPLASH_DIR) | ||
|
||
.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 | ||
$(info +-------------------------------------------------+) | ||
$(info | |) | ||
$(info | Hello, this is Flipper team speaking! |) | ||
$(info | |) | ||
$(info | We've migrated to new build system |) | ||
$(info | It's nice and based on scons |) | ||
$(info | |) | ||
$(info | Crash course: |) | ||
$(info | |) | ||
$(info | `./fbt` |) | ||
$(info | `./fbt flash` |) | ||
$(info | `./fbt debug` |) | ||
$(info | |) | ||
$(info | More details in documentation/fbt.md |) | ||
$(info | |) | ||
$(info | Also Please leave your feedback here: |) | ||
$(info | https://flipp.dev/4RDu |) | ||
$(info | or |) | ||
$(info | https://flipp.dev/2XM8 |) | ||
$(info | |) | ||
$(info +-------------------------------------------------+) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.