Fixed autoexec boot and found bug in make in splitting folders.
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s

This commit is contained in:
Willem Cazander 2024-07-10 17:03:28 +02:00
parent 8c07ce2b1a
commit ded142d36e
14 changed files with 28 additions and 24 deletions

View file

@ -0,0 +1,297 @@
MB_DOC_FIRE_VARIABLE_FLOW ?= \\n
#*** Recursive variable: MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_FLOW,"Flow builder of fire flow variable data.")
MB_DOC_FIRE_VARIABLE ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE,"Flow builder of firemake variable data.")
MB_DOC_FIRE_VARIABLE_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_DEEP,"Flow builder of makefire deep variable data.")
MB_DOC_FIRE_VARIABLE_ROCK ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_ROCK,"Flow builder of makefire rock variable data.")
MB_DOC_FIRE_VARIABLE_I18N ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_VARIABLE_I18N,"Flow builder of makefire i18n variable data.")
MB_DOC_FIRE_FUNCTION ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION,"Flow builder of firemake function data.")
MB_DOC_FIRE_FUNCTION_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION_DEEP,"Flow builder of firemake deep function data.")
MB_DOC_FIRE_FUNCTION_FLOW ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_FUNCTION_FLOW,"Flow builder of firemake flow function data.")
MB_DOC_FIRE_TARGET ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET,"Flow builder of firemake target data.")
MB_DOC_FIRE_TARGET_DEEP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_DEEP,"Flow builder of firemake deep target data.")
MB_DOC_FIRE_TARGET_RUN ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_RUN,"Flow builder of firemake run target data.")
MB_DOC_FIRE_TARGET_HELP ?= \\n
MB_DOC_FIRE_VARIABLE_FLOW += $(call mb_make_call,_mb_doc_variable4u_flow,MB_DOC_FIRE_TARGET_HELP,"Flow builder of firemake help data.")
MB_DOC_XML_ROOT := firemake
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_ROOT,"XML root tag for firemake output.")
MB_DOC_XML_ATTR_NAME := name
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_ATTR_NAME,"XML name attribute for firemake output.")
MB_DOC_XML_ATTR_LEVEL := level
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_ATTR_LEVEL,"XML level attribute for firemake output.")
MB_DOC_XML_TAG_ARGS := arguments
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_TAG_ARGS,"XML arguments tag for firemake output.")
MB_DOC_XML_TAG_DESC := description
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_TAG_DESC,"XML description tag for firemake output.")
MB_DOC_XML_TAG_VALUE := value
MB_DOC_FIRE_VARIABLE_ROCK += $(call mb_make_call,_mb_doc_variable4u_rock,MB_DOC_XML_TAG_VALUE,"XML value tag for firemake output.")
MB_DOC_FORMAT ?= txt
MB_DOC_FIRE_VARIABLE_DEEP += $(call mb_make_call,_mb_doc_variable4u_deep,MB_DOC_FORMAT,"Output format of documention$(MB_MAKE_COMMA) only 'txt' or 'xml' is supported.")
define _escape
$(MB__    )$(subst <,"<",$(subst >,">",$(subst \\n,\\\n,$(subst ','"'"',$(1)))))
endef
define _mb_doc_variable_txt
$(MB__    )"* "$(2)$(MB_MAKE_EQUALS)$(call mb_make_call,_escape,$(4))\\n$(if $(3),\\t$(3)\\n)\\n
endef
define _mb_doc_variable_xml
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,variable,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_VALUE),$(4))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,variable)
endef
define _mb_doc_variable4u_deep
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),deep,$(1),$(2),$($(1)))
endef
define _mb_doc_variable4u_rock
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),rock,$(1),$(2),$($(1)))
endef
define _mb_doc_variable4u_flow
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),flow,$(1),$(2),$(words $($(1))))
endef
define _mb_doc_variable4u_i18n
$(MB__    )$(call mb_make_call,_mb_doc_variable_$(MB_DOC_FORMAT),i18n,$(1),$(2),$($(1)))
endef
define mb_doc_variable
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE += $$(call mb_make_call,_mb_doc_variable_$$(MB_DOC_FORMAT),build,$(1),$(2),$($(1))))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable,"Saves formatted documention of an variable.","<name> [desc]")
define mb_doc_variable_deep
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_DEEP += $$(call mb_make_call,_mb_doc_variable4u_deep,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_deep,"Saves formatted documention of an deep variable.","<name> [desc]")
define mb_doc_variable_rock
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_ROCK += $$(call mb_make_call,_mb_doc_variable4u_rock,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_rock,"Saves formatted documention of an rock variable.","<name> [desc]")
define mb_doc_variable_flow
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_FLOW += $$(call mb_make_call,_mb_doc_variable4u_flow,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_flow,"Saves formatted documention of an flow variable.","<name> [desc]")
define mb_doc_variable_i18n
$(MB__    )$(eval MB_DOC_FIRE_VARIABLE_I18N += $$(call mb_make_call,_mb_doc_variable4u_i18n,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_variable_i18n,"Saves formatted documention of an i18n variable.","<name> [desc]")
define _mb_doc_function_txt
$(MB__    )"* "$(2)$(if $(4), $(4))$(if $(3),\\n\\t$(3)\\n)\\n
endef
define _mb_doc_function_xml
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,function,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_ARGS),$(4))\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,function)
endef
define _mb_doc_function4u_deep
$(MB__    )$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),deep,$(1),$(2),$(3))
endef
define _mb_doc_function4u_flow
$(MB__    )$(call mb_make_call,_mb_doc_function_$(MB_DOC_FORMAT),flow,$(1),$(2),$(3))
endef
define mb_doc_function
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION += $$(call mb_make_call,_mb_doc_function_$$(MB_DOC_FORMAT),build,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function,"Saves formatted documention of an function.","<name> [desc] [args]")
define mb_doc_function_deep
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION_DEEP += $$(call mb_make_call,_mb_doc_function4u_deep,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function_deep,"Saves formatted documention of an deep function.","<name> [desc] [args]")
define mb_doc_function_flow
$(MB__    )$(eval MB_DOC_FIRE_FUNCTION_FLOW += $$(call mb_make_call,_mb_doc_function4u_flow,$(1),$(2),$(3)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_function_flow,"Saves formatted documention of an flow function.","<name> [desc] [args]")
define _mb_doc_target_txt
$(MB__    )"* "$(2)$(if $(3),\\n\\t$(3))\\n\\n
endef
define _mb_doc_target_xml
$(MB__    )\\n\\t$(call mb_make_call,mb_make_xml_open,target,$(MB_DOC_XML_ATTR_NAME),$(2),$(MB_DOC_XML_ATTR_LEVEL),$(1))$(if $3,\\n\\t\\t$(call mb_make_call,mb_make_xml_tag_value,$(MB_DOC_XML_TAG_DESC),$(3))\\n\\t$(call mb_make_call,mb_make_xml_close,target),\\n\\t$(call mb_make_call,mb_make_xml_close,target))
endef
define mb_doc_target
$(MB__    )$(eval MB_DOC_FIRE_TARGET += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),build,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target,"Saves formatted documention of an target.","<name> [desc]")
define mb_doc_target_deep
$(MB__    )$(eval MB_DOC_FIRE_TARGET_DEEP += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),deep,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_deep,"Saves formatted documention of an deep target.","<name> [desc]")
define mb_doc_target_help
$(MB__    )$(eval MB_DOC_FIRE_TARGET_HELP += $$(call mb_make_call,_mb_doc_target_$(MB_DOC_FORMAT),help,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_help,"Saves formatted documention of an help target.","<name> [desc]")
define mb_doc_target_run
$(MB__    )$(eval MB_DOC_FIRE_TARGET_RUN += $$(call mb_make_call,_mb_doc_target_$$(MB_DOC_FORMAT),run,$(1),$(2)))
endef
MB_DOC_FIRE_FUNCTION_DEEP += $(call mb_make_call,_mb_doc_function4u_deep,mb_doc_target_run,"Saves formatted documention of an run target.","<name> [desc]")
define __mb_doc_flow_help
.RECIPEPREFIX := $(MB__RECIPE)
@help:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Welcome to the $$(if $(1),$(1),MSXBUILD) help system.\\n\\nFor detailed fire help use one of the following targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_HELP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help)
@help-variable:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable,"Lists build variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable)
@help-variable-deep:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-deep,"Lists deep variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-deep)
@help-variable-rock:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the rock make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_ROCK)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-rock,"Lists rock variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-rock)
@help-variable-flow:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_FLOW)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-flow,"Lists flow variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-flow)
@help-variable-i18n:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the i18n make variables;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_I18N)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-variable-i18n,"Lists i18n variables.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-variable-i18n)
@help-function:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the make fire functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function,"Lists build functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function)
@help-function-deep:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the deep make functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function-deep,"Lists deep functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function-deep)
@help-function-flow:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Documention of the flow make functions;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_FLOW)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-function-flow,"Lists flow functions.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-function-flow)
@help-target:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following make fire targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target,"Lists build targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target)
@help-target-deep:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following deep make targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_DEEP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target-deep,"Lists deep targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target-deep)
@help-target-run:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo "Build one of the following run make targets;")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_RUN)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-target-run,"Lists runnable targets.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-target-run)
@help-all:
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),@echo -e "Documention of all fire functions/variables/targets;\\n")
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_open,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables hard as rock"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_ROCK)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables defining flow"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_FLOW)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Variables for i18n letters"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_VARIABLE_I18N)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Functions building flow"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_FUNCTION_FLOW)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets in the deep"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_DEEP)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets that run away"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_RUN)
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,"Targets main project help"))
$(MB__RECIPE)@echo -e $$(MB_DOC_FIRE_TARGET_HELP)
$(MB__RECIPE)$$(if $$(filter xml,$$(MB_DOC_FORMAT)),@echo $$(call mb_make_call,mb_make_xml_close,$$(MB_DOC_XML_ROOT)))
$(MB__RECIPE)$$(if $$(filter txt,$$(MB_DOC_FORMAT)),$$(call mb_make_call,mb_os_echo_good,OK))
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-all,"Lists all documented information.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-all)
@help-firemake:
$(MB__RECIPE)MB_DOC_FORMAT$(MB_MAKE_EQUALS)xml $$(MAKE) -s @help-all
$(MB__    )$$(call mb_make_call,mb_doc_target_help,@help-firemake,"Output all documention in XML for IDE integration.")
$(MB__    )$$(call mb_make_call,mb_make_flag_phony,@help-firemake)
.RECIPEPREFIX := $(MB__RECIPEPREFIX)
endef
define mb_doc_flow_help
$(MB__    )$(if $(1),,$(error $(1) missing))
$(MB__    )$(eval $(call mb_make_call,__mb_doc_flow_help,$(1)))
$(MB__    )$(if $(.DEFAULT_GOAL),,$(eval .DEFAULT_GOAL :$(MB_MAKE_EQUALS) @help))
endef
MB_DOC_FIRE_FUNCTION_FLOW += $(call mb_make_call,_mb_doc_function4u_flow,mb_doc_flow_help,"Prints flow of fire help target.","[project-name]")

View file

@ -0,0 +1,111 @@
MB_MAKE_COMMA := ,
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_COMMA,"Expanded special char; comma.")
MB_MAKE_SPACE := $(subst ,, )
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_SPACE,"Expanded special char; space.")
MB_MAKE_EQUALS := =
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_EQUALS,"Expanded special char; equals.")
MB_MAKE_HASH := \#
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_HASH,"Expanded special char; hash.")
MB_MAKE_COLON := :
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_COLON,"Expanded special char; colon.")
MB_MAKE_DOLLAR := $$
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_DOLLAR,"Expanded special char; dollar.")
define mb_make_flag_phony
.PHONY: $(1)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_flag_phony,"Marks an target as phony.","<target>")
define mb_make_newline
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_newline,"Prints a newline character.")
define mb_make_space2comma
$(MB__    )$(subst $(MB_MAKE_SPACE),$(MB_MAKE_COMMA),$1)
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_space2comma,"Replaces all spaces witth comma's.")
define mb_make_rwildcard
$(MB__    )$(foreach d,$(wildcard $1*),$(call mb_make_rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_rwildcard,"Recursive wildcard search.","<dir> <match>")
define mb_make_lowercase
$(MB__    )$(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1)))))))))))))))))))))))))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_lowercase,"Converts ascii string to lowercase.","<string>")
define mb_make_uppercase
$(MB__    )$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$(1)))))))))))))))))))))))))))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_uppercase,"Converts ascii string to uppercase.","<string>")
define __mb_make_flow_0module
include $$(call mb_make_call,mb_make_rwildcard,$(1),*/0module.mk)
endef
define mb_make_flow_0module
$(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_make_flow_0module,$(1))
$(MB__    )$(eval $(call mb_make_call,__mb_make_flow_0module,$(1)))
endef
$(call mb_make_call,mb_doc_function_flow,mb_make_flow_0module,"Prints flow of recursive 0module.mk include.","<dir>")
define mb_make_check_variable
$(MB__    )$(if $($(1)),,$(error $(1): Is empty))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_variable,"Checks that a variable is not empty.","<variable>")
define mb_make_check_arg1
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg1,"Checks that a function has a given argument.","<function> <arg1>")
define mb_make_check_arg2
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg2,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg3
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg3,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg4
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB__    )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg4,"Checks that a function has the given arguments.","<function> <arg1>")
define mb_make_check_arg5
$(MB__    )$(if $(2),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG1))) \
$(MB__    )$(if $(3),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG2))) \
$(MB__    )$(if $(4),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG3))) \
$(MB__    )$(if $(5),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG4))) \
$(MB__    )$(if $(6),,$(error $(1): $(MB_I18N_MAKE_CHECK_ARG5)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_check_arg5,"Checks that a function has the given arguments.","<function> <arg1>")

View file

@ -0,0 +1,25 @@
MB_MAKE_CALL_DEBUG ?= off
# Workaround for --warn-undefined-variables
1 :=
2 :=
3 :=
4 :=
5 :=
6 :=
7 :=
8 :=
9 :=
define _mb_make_call_debug
$(MB__    )$(if $(filter off,$(MB_MAKE_CALL_DEBUG)),,$(if $(findstring mb_doc_,$(1)),,$(warning DEBUG $(1) $(2) $(3) $(4) $(5) $(6) $(7) $(8) $(9))))
endef
define mb_make_call
$(MB__    )$(call _mb_make_call_debug,$(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9))$(if $(filter file,$(origin $(1))),$(call $(1),$(2),$(3),$(4),$(5),$(6),$(7),$(8),$(9)),$(error $(1) is not defined))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_call,"Checked origin call function wrapper.","<function> [args...]")
# Wait until function is parsed...
$(call mb_make_call,mb_doc_variable_deep,MB_MAKE_CALL_DEBUG,"If on prints debug trace of all make calls.")

View file

@ -0,0 +1,43 @@
MB_MAKE_XML_LT := <
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_LT,"Expanded special char; lesser than.")
MB_MAKE_XML_GT := >
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_GT,"Expanded special char; greater than.")
MB_MAKE_XML_CDATA_START := <![CDATA[
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_CDATA_START,"Expanded special char; XML cdata start.")
MB_MAKE_XML_CDATA_END := ]]>
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_XML_CDATA_END,"Expanded special char; XML cdata end.")
define _escape_xml_attr
$(MB__    )$(subst <,\u0026lt\u003B,$(subst >,\u003Cgt\u003B,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))))
endef
define mb_make_xml_open
$(MB__    )"$(MB_MAKE_XML_LT)"$(1)$(if $(2), $(2)$(MB_MAKE_EQUALS)\"$(call mb_make_call,_escape_xml_value,$(3))\")$(if $(4), $(4)$(MB_MAKE_EQUALS)\"$(call mb_make_call,_escape_xml_attr,$(5))\")"$(MB_MAKE_XML_GT)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_open,"Print xml open tag.","<tag> [attr1-name] [attr1-value] [attr2-name] [attr2-value]")
define mb_make_xml_close
$(MB__    )"$(MB_MAKE_XML_LT)"/$(1)"$(MB_MAKE_XML_GT)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_close,"Print xml close tag.","<tag>")
define _escape_xml_value
$(MB__    )$(subst <,\u003C,$(subst >,\u003E,$(subst $(MB_MAKE_XML_CDATA_START),,$(subst $(MB_MAKE_XML_CDATA_END),,$(1)))))
endef
define mb_make_xml_value
$(MB__    )"$(MB_MAKE_XML_CDATA_START)"$(call mb_make_call,_escape_xml_value,$(1))"$(MB_MAKE_XML_CDATA_END)"
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_value,"Print xml value in cdata wrapper.","<value>")
define mb_make_xml_tag_value
$(MB__    )$(if $(2),$(call mb_make_call,mb_make_xml_open,$(1))$(call mb_make_call,mb_make_xml_value,$(2))$(call mb_make_call,mb_make_xml_close,$(1)))
endef
$(call mb_make_call,mb_doc_function_deep,mb_make_xml_tag_value,"Print xml tag with value inside.","<tag> [value]")