msxbuild/lib/make/प्रणाली/mb_make.mk
Willem Cazander ded142d36e
All checks were successful
Run test asserts / Test-Asserts (push) Successful in -6s
Fixed autoexec boot and found bug in make in splitting folders.
2024-07-10 17:03:28 +02:00

112 lines
4.8 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.

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>")