|
| 1 | +empty := |
| 2 | +space := $(empty) $(empty) |
| 3 | +str_is = $(if $(subst $2,,$1),,true) |
| 4 | +single_goal = $(if $(word 2,$(MAKECMDGOALS)),,$(word 1,$(MAKECMDGOALS))) |
| 5 | +single_goal_split = $(subst -,$(space),$1) |
| 6 | +goals_is_single_print_target = $(if $(single_goal),$(if $(call str_is,$(word 1,$(single_goal_split)),print),$(if $(call str_is,$(word 2,$(single_goal_split)),var),true,$(if $(call str_is,$(word 2,$(single_goal_split)),substr),$(if $(call str_is,$(word 3,$(single_goal_split)),vars),true,),)),),) |
1 | 7 | ifneq ($(wildcard config.mk),)
|
| 8 | +ifeq ($(goals_is_single_print_target),) |
2 | 9 | $(info Using config.mk configuration file.)
|
| 10 | +endif |
3 | 11 | include config.mk
|
4 | 12 | endif
|
5 | 13 |
|
@@ -439,3 +447,50 @@ ifdef WINDOWS_TARGET
|
439 | 447 | endif
|
440 | 448 | endif
|
441 | 449 | endif
|
| 450 | + |
| 451 | +var_info = $(if $(value $1),$1 = $(value $1),$1 is defined as an empty value) |
| 452 | +var_eval = $(if $(value $1),$(if $($1),$1 = $($1),$1 evaluates to an empty value),$1 is defined as an empty value) |
| 453 | +var_both = $(if $(value $1),$1 = $(value $1) $(if $($1),$(if $(call str_is,$($1),$(value $1)),(value equal to definition),= $($1)),= (empty value)),$1 is defined as an empty value) |
| 454 | +var_stat = $(call var_info,$1) [$(origin $1) $(flavor $1)] |
| 455 | +var_full = $(call var_both,$1) [$(origin $1) $(flavor $1)] |
| 456 | +info_var = $(info $(call $(if $2,$2,var_info),$1)) |
| 457 | +info_check_var_defined = $(info $(if $(subst $(space),,$(foreach var,$(.VARIABLES),$(if $(subst $1,,$(var)),,1))),$(call $(if $2,$2,var_info),$1),$1 is not defined)) |
| 458 | +info_all_vars = $(foreach var,$(sort $(.VARIABLES)),$(call info_var,$(var),$2)) |
| 459 | +info_all_substr_vars = $(foreach var,$(sort $(.VARIABLES)),$(if $(findstring $1,$(var)),$(call info_var,$(var),$2),)) |
| 460 | +msg_var_eval_crash = is not provided since evaluating variables that use control flow functions will crash |
| 461 | + |
| 462 | +.PHONY: print-all-vars-info print-all-vars-eval print-all-vars-both print-all-vars-stat print-all-vars-full |
| 463 | +.NOTPARALLEL: print-all-vars-info print-all-vars-eval print-all-vars-both print-all-vars-stat print-all-vars-full |
| 464 | +print-all-vars-info: ; @$(call info_all_vars) |
| 465 | +print-all-vars-eval: ; @$(info note: print-all-vars-eval $(msg_var_eval_crash)) |
| 466 | +print-all-vars-both: ; @$(info note: print-all-vars-both $(msg_var_eval_crash)) |
| 467 | +print-all-vars-stat: ; @$(if $(subst all,,$*),$(call info_check_var_defined,$*,var_stat),$(call info_all_vars,var_stat)) |
| 468 | +print-all-vars-full: ; @$(info note: print-all-vars-full $(msg_var_eval_crash)) |
| 469 | + |
| 470 | +.PHONY: print-var-info-% print-var-eval-% print-var-both-% print-var-stat-% print-var-full-% |
| 471 | +.NOTPARALLEL: print-var-info-% print-var-eval-% print-var-both-% print-var-stat-% print-var-full-% |
| 472 | +print-var-info-%: ; @$(call info_check_var_defined,$*) |
| 473 | +print-var-eval-%: ; @$(call info_check_var_defined,$*,var_eval) |
| 474 | +print-var-both-%: ; @$(call info_check_var_defined,$*,var_both) |
| 475 | +print-var-stat-%: ; @$(call info_check_var_defined,$*,var_stat) |
| 476 | +print-var-full-%: ; @$(call info_check_var_defined,$*,var_full) |
| 477 | + |
| 478 | +.PHONY: print-substr-vars-info-% print-substr-vars-eval-% print-substr-vars-both-% print-substr-vars-stat-% print-substr-vars-full-% |
| 479 | +.NOTPARALLEL: print-substr-vars-info-% print-substr-vars-eval-% print-substr-vars-both-% print-substr-vars-stat-% print-substr-vars-full-% |
| 480 | +print-substr-vars-info-%: ; @$(call info_all_substr_vars,$*) |
| 481 | +print-substr-vars-eval-%: ; @$(call info_all_substr_vars,$*,var_eval) |
| 482 | +print-substr-vars-both-%: ; @$(call info_all_substr_vars,$*,var_both) |
| 483 | +print-substr-vars-stat-%: ; @$(call info_all_substr_vars,$*,var_stat) |
| 484 | +print-substr-vars-full-%: ; @$(call info_all_substr_vars,$*,var_full) |
| 485 | + |
| 486 | +.PHONY: troubleshoot-example |
| 487 | +.NOTPARALLEL: troubleshoot-example |
| 488 | +troubleshoot-example: |
| 489 | + @$(call info_check_var_defined,OS,var_both) |
| 490 | + @$(call info_check_var_defined,TERM,var_both) |
| 491 | + @$(call info_check_var_defined,MSYSCON,var_both) |
| 492 | + @$(call info_check_var_defined,HOST_PLATFORM,var_both) |
| 493 | + @$(call info_check_var_defined,WIN_PS_TOOLS,var_both) |
| 494 | + @$(call info_check_var_defined,WIN_SHELL_COMMANDS,var_both) |
| 495 | + |
| 496 | +.DEFAULT_GOAL = |
0 commit comments