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 := $(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."," [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.","") 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.","") 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."," [value]")