exosphere: release, debug, audit configs

This commit is contained in:
Michael Scire
2020-11-14 14:40:16 -08:00
parent b4c908ba9f
commit 3c595994df
4 changed files with 177 additions and 97 deletions

View File

@@ -1,47 +1,52 @@
TARGETS := exosphere.bin warmboot.bin program.lz4
CLEAN_TARGETS := exosphere-clean program-clean boot_code-clean warmboot-clean
ATMOSPHERE_BUILD_CONFIGS :=
all: release
SUBFOLDERS := $(MODULES)
define ATMOSPHERE_ADD_TARGET
all: exosphere.bin warmboot.bin
ATMOSPHERE_BUILD_CONFIGS += $(strip $1)
clean: $(CLEAN_TARGETS)
@rm -f exosphere.bin
$(strip $1): exosphere$(strip $2).bin warmboot/warmboot$(strip $2).bin
@cp warmboot/warmboot$(strip $2).bin warmboot$(strip $2).bin
exosphere.bin: program.lz4 boot_code.lz4
$(MAKE) -C loader_stub
@cp loader_stub/loader_stub.bin exosphere.bin
@printf LENY >> exosphere.bin
@echo "Built exosphere.bin..."
exosphere$(strip $2).bin: loader_stub/loader_stub$(strip $2).bin
@cp loader_stub/loader_stub$(strip $2).bin exosphere$(strip $2).bin
@printf LENY >> exosphere$(strip $2).bin
@echo "Built exosphere$(strip $2).bin..."
program.lz4: build_program
@cp program/program.lz4 program.lz4
@cp program/boot_code.lz4 boot_code.lz4
warmboot/warmboot$(strip $2).bin:
@$$(MAKE) -C warmboot $(strip $1)
build_program:
$(MAKE) -C program
loader_stub/loader_stub$(strip $2).bin:
@$$(MAKE) -C loader_stub $(strip $1)
warmboot.bin: build_warmboot
@cp warmboot/warmboot.bin warmboot.bin
clean-$(strip $1): clean-program-$(strip $1) clean-loader_stub-$(strip $1) clean-warmboot-$(strip $1)
@rm -rf exosphere$(strip $2).bin warmboot$(strip $2).bin
build_warmboot:
$(MAKE) -C warmboot
clean-program-$(strip $1):
@$$(MAKE) -C program clean-$(strip $1)
boot_code.lz4: program.lz4
clean-loader_stub-$(strip $1):
@$$(MAKE) -C loader_stub clean-$(strip $1)
exosphere-clean:
$(MAKE) -C loader_stub clean
@rm -f exosphere.bin
clean-warmboot-$(strip $1):
@$$(MAKE) -C warmboot clean-$(strip $1)
program-clean:
$(MAKE) -C program clean
@rm -f program.lz4
endef
warmboot-clean:
$(MAKE) -C warmboot clean
@rm -f warmboot.bin
$(eval $(call ATMOSPHERE_ADD_TARGET, release, ))
$(eval $(call ATMOSPHERE_ADD_TARGET, debug, _debug))
$(eval $(call ATMOSPHERE_ADD_TARGET, audit, _audit))
boot_code-clean:
@rm -f boot_code.lz4
clean: clean-program clean-loader_stub clean-warmboot
@rm -rf exosphere*.bin warmboot*.bin
.PHONY: all clean build_program $(CLEAN_TARGETS)
clean-program:
@$(MAKE) -C program clean
clean-loader_stub:
@$(MAKE) -C loader_stub clean
clean-warmboot:
@$(MAKE) -C warmboot clean
.PHONY: all clean clean-program clean-loader_stub clean-warmboot $(foreach config,$(ATMOSPHERE_BUILD_CONFIGS),clean-$(config) clean-program-$(config) clean-loader_stub-$(config) clean-warmboot-$(config))