msxbuild/lib/make/msxbuild.mk
Willem Cazander 89e94e59f1
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -11s
Fixed default goal to new all target.
2024-07-12 18:30:53 +02:00

80 lines
4.1 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# msxbuild.mk - Makefile helper to use with msx projects.
#
MB_@RECIPE := ]
MB_@RECIPEPREFIX := $(.RECIPEPREFIX)
MB_@BASEPATH := $(dir $(lastword $(MAKEFILE_LIST)))../..
MB_@BASEPATH_REAL := $(if $(realpath $(MB_@BASEPATH)),$(realpath $(MB_@BASEPATH)),$(MB_@BASEPATH))
MB_@INCLUDE_CHAIN :=
# Build multiple groups of chains of includes
define __mb_include
.PHONY: $(MB_@BASEPATH)/$(1)
include $(MB_@BASEPATH)/$(1)
$(if $(MB_@INCLUDE_CHAIN),$(eval $(MB_@BASEPATH)/$(1): $(MB_@INCLUDE_CHAIN)))
MB_@INCLUDE_CHAIN := $(MB_@BASEPATH)/$(1)
endef
# Include full library grouped in functional blocks
MB_@INCLUDE_CHAIN := @@include-parent
$(eval $(call __mb_include,lib/make/प्रणाली/mb_xxx.mk))
$(eval $(call __mb_include,lib/make/प्रणाली/mb_doc.mk))
$(eval $(call __mb_include,lib/make/प्रणाली/mb_make_call.mk))
$(eval $(call __mb_include,lib/make/प्रणाली/mb_make_check.mk))
$(eval $(call __mb_include,lib/make/प्रणाली/mb_make_xml.mk))
$(eval $(call __mb_include,lib/make/प्रणाली/mb_make.mk))
@@include-libs:: $(MB_@INCLUDE_CHAIN)
MB_@INCLUDE_CHAIN := @@include-parent
$(eval $(call __mb_include,lib/make/ᐊᑐᕐᓗᒍ/mb_os.mk))
$(eval $(call __mb_include,lib/make/ᐊᑐᕐᓗᒍ/mb_conv.mk))
$(eval $(call __mb_include,lib/make/ᐊᑐᕐᓗᒍ/mb_sdcc.mk))
$(eval $(call __mb_include,lib/make/ᐊᑐᕐᓗᒍ/mb_package.mk))
@@include-libs:: $(MB_@INCLUDE_CHAIN)
MB_@INCLUDE_CHAIN := @@include-parent
$(eval $(call __mb_include,lib/make/麥加系統擴大/mb_msxrom.mk))
$(eval $(call __mb_include,lib/make/麥加系統擴大/mb_msxhub.mk))
$(eval $(call __mb_include,lib/make/麥加系統擴大/mb_msxpipe.mk))
$(eval $(call __mb_include,lib/make/麥加系統擴大/mb_openmsx.mk))
$(eval $(call __mb_include,lib/make/麥加系統擴大/mb_autoexec.mk))
@@include-libs:: $(MB_@INCLUDE_CHAIN)
MB_@INCLUDE_CHAIN := @@include-parent
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_0module.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_help.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_proj.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_assert.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_m80.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_sdcc.mk))
$(eval $(call __mb_include,lib/make/𓃬𓍄𓋹𓀭/mb_flow_clone.mk))
@@include-libs:: $(MB_@INCLUDE_CHAIN)
MB_@INCLUDE_CHAIN :=
$(eval $(call __mb_include,lib/make/mb_flight.mk))
$(eval $(call __mb_include,lib/make/i18n/mb_i18n.mk))
ifneq ("$(MB_I18N)", "off")
$(if $(MB_I18N),$(if $(wildcard $(MB_@BASEPATH)/lib/make/i18n/mb_i18n_$(MB_I18N).mk),,$(error Unsupported i18n language code: $(MB_I18N))))
$(if $(MB_I18N),$(eval include $(MB_@BASEPATH)/lib/make/i18n/mb_i18n_$(MB_I18N).mk))
endif
@include:: $(MB_@INCLUDE_CHAIN)
MB_@INCLUDE_CHAIN :=
# Glue phony targets to get internal @include tree (semi) correct (TODO: fix chain in: mb_flow_0module_setup)
.PHONY: @include @@include-root @@include-libs @@include-mods @@include-parent @@include-tree
@@include-parent:: @@include-mods
@include:: @@include-libs @@include-root
# Document our internal variables, now we have the functions loaded
$(call mb_make_call,mb_doc_variable_rock,MB_@RECIPE,"Recipe prefix to set and indent flow eval rules.")
$(call mb_make_call,mb_doc_variable_rock,MB_@RECIPEPREFIX,"Recipe prefix to restore to after flow eval rules.")
$(call mb_make_call,mb_doc_variable_rock,MB_@BASEPATH,"Path where msxbuild lib folder is located.")
$(call mb_make_call,mb_doc_variable_rock,MB_@BASEPATH_REAL,"Resolved real path of msxbuild.")
# Provider+doc easy single function start point for user
define mb_setup_default
$(MB_   )$(call mb_make_call,mb_make_check_arg2,$(0),$(1),$(2))
$(MB_   )$(call mb_make_call,mb_flow_doc_help)
$(MB_   )$(call mb_make_call,mb_flow_0module_setup,$(2))
$(MB_   )$(call mb_make_call,mb_flow_proj_setup,$(1))
$(MB_   )$(call mb_make_call,mb_flight_proj_flow_video,$(1))
endef
$(call mb_make_call,mb_doc_function,mb_setup_default,"Installs default extenstion to configure dynamic project flow.","<bin-dir> <src-dir>")