trezor-firmware icon indicating copy to clipboard operation
trezor-firmware copied to clipboard

Makefile improvement by introducing SCONSFLAGS

Open cepetr opened this issue 1 year ago • 0 comments

The build targets in core/Makefile repeatedly include the same scons script flags (see below).

Perhaps we could introduce a new variable, such as SCONSFLAGS, containing all of them (or at least the repeating ones), and pass the content of this variable to all of the targets. This could simplify the Makefile a bit.

The current state is this:

build_boardloader: ## build boardloader
	$(SCONS) CFLAGS="$(CFLAGS)" PRODUCTION="$(PRODUCTION)" TREZOR_MODEL="$(TREZOR_MODEL)" \
		CMAKELISTS="$(CMAKELISTS)" NEW_RENDERING="$(NEW_RENDERING)" $(BOARDLOADER_BUILD_DIR)/boardloader.bin

build_bootloader: ## build bootloader
	$(SCONS) CFLAGS="$(CFLAGS)" PRODUCTION="$(PRODUCTION)" TREZOR_MODEL="$(TREZOR_MODEL)" \
		CMAKELISTS="$(CMAKELISTS)" BOOTLOADER_QA="$(BOOTLOADER_QA)" BOOTLOADER_DEVEL="$(BOOTLOADER_DEVEL)" \
		NEW_RENDERING="$(NEW_RENDERING)" $(BOOTLOADER_BUILD_DIR)/bootloader.bin

build_bootloader_ci: ## build CI device testing bootloader
	$(SCONS) CFLAGS="$(CFLAGS)" PRODUCTION="$(PRODUCTION)" TREZOR_MODEL="$(TREZOR_MODEL)" \
		CMAKELISTS="$(CMAKELISTS)" $(BOOTLOADER_CI_BUILD_DIR)/bootloader.bin

build_bootloader_emu: ## build the unix bootloader emulator
	$(SCONS) CFLAGS="$(CFLAGS)" PRODUCTION="$(PRODUCTION)" TREZOR_MODEL="$(TREZOR_MODEL)" \
	CMAKELISTS="$(CMAKELISTS)" NEW_RENDERING="$(NEW_RENDERING)" $(BOOTLOADER_EMU_BUILD_DIR)/bootloader.elf

build_bootloader_emu_debug: ## build the unix bootloader emulator
	$(SCONS) CFLAGS="$(CFLAGS)" PRODUCTION="$(PRODUCTION)" TREZOR_MODEL="$(TREZOR_MODEL)" \
	CMAKELISTS="$(CMAKELISTS)" NEW_RENDERING="$(NEW_RENDERING)" TREZOR_EMULATOR_DEBUGGABLE=1 \
	$(BOOTLOADER_EMU_BUILD_DIR)/bootloader.elf
...
...
...

The result could look like this:

build_boardloader: ## build boardloader
	$(SCONS) CFLAGS="$(CFLAGS)" $(SCONSFLAGS) $(BOARDLOADER_BUILD_DIR)/boardloader.bin

build_bootloader: ## build bootloader
	$(SCONS) CFLAGS="$(CFLAGS)" $(SCONSFLAGS)  $(BOOTLOADER_BUILD_DIR)/bootloader.bin

build_bootloader_ci: ## build CI device testing bootloader
	$(SCONS) CFLAGS="$(CFLAGS)" $(SCONSFLAGS)  $(BOOTLOADER_CI_BUILD_DIR)/bootloader.bin

build_bootloader_emu: ## build the unix bootloader emulator
	$(SCONS) CFLAGS="$(CFLAGS)" $(SCONSFLAGS)  $(BOOTLOADER_EMU_BUILD_DIR)/bootloader.elf

build_bootloader_emu_debug: ## build the unix bootloader emulator
	$(SCONS) CFLAGS="$(CFLAGS)" $(SCONSFLAGS)  TREZOR_EMULATOR_DEBUGGABLE=1 \
        $(BOOTLOADER_EMU_BUILD_DIR)/bootloader.elf
...
...
...

cepetr avatar May 03 '24 09:05 cepetr