msxbuild/lib/make/mb_make.mk

112 lines
4.8 KiB
Makefile
Raw Normal View History

MB_MAKE_COMMA := ,
2024-07-07 18:53:06 +00:00
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_COMMA,"Expanded special char; comma.")
MB_MAKE_SPACE := $(subst ,, )
2024-07-07 18:53:06 +00:00
$(call mb_make_call,mb_doc_variable_rock,MB_MAKE_SPACE,"Expanded special char; space.")
MB_MAKE_EQUALS := =
2024-07-07 18:53:06 +00:00
$(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
2024-07-07 18:53:06 +00:00
$(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
2024-07-07 18:53:06 +00:00
$(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
2024-07-07 18:53:06 +00:00
$(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
2024-07-07 18:53:06 +00:00
$(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>")