myos/make/help.mk

91 lines
2.6 KiB
Makefile
Raw Normal View History

2021-06-02 00:54:33 +02:00
##
# HELP
2021-02-09 17:05:00 +01:00
.DEFAULT_GOAL := help
COLOR_RESET ?= \033[0m
COLOR_GREEN ?= \033[32m
COLOR_BROWN ?= \033[33m
COLOR_BLUE ?= \033[36m
2021-06-01 00:52:21 +02:00
.PHONY: FORCE
2021-02-09 17:05:00 +01:00
2021-06-02 00:54:33 +02:00
# target blank1 blank2: Print new line
2021-02-09 17:05:00 +01:00
.PHONY: blank1 blank2
blank1 blank2:
printf "\n"
2021-06-12 03:13:01 +02:00
# target context: Print Context and Call contexts target
2021-02-09 17:05:00 +01:00
.PHONY: context
context:
printf "${COLOR_BROWN}Context:${COLOR_RESET}\n"
2021-06-12 03:13:01 +02:00
$(MAKE) contexts
# target context: Fire context-% target for each CONTEXT
.PHONY: contexts
contexts: $(foreach var,$(CONTEXT),$(if $($(var)),context-$(var)))
2021-02-09 17:05:00 +01:00
2021-06-02 00:54:33 +02:00
# target context-%: Print % value
2021-05-31 20:52:49 +02:00
.PHONY: context-%
2021-05-25 14:55:16 +02:00
context-%:
2021-06-02 00:54:33 +02:00
printf "${COLOR_BLUE}%-37s${COLOR_RESET}" $*
2021-05-30 23:45:30 +02:00
printf "${COLOR_GREEN}"
$(call PRINTF,$($*))
printf "${COLOR_RESET}"
2021-06-02 00:54:33 +02:00
# target doc: Fire functions macros target variables
doc: functions macros targets variables ;
2021-06-06 16:29:54 +02:00
# target doc-%: Fire functions-% macros-% target-% variables-%
2021-06-02 00:54:33 +02:00
doc-%: functions-% macros-% targets-% variables-%;
# target help: Fire usage blank1 target blank2 context
.PHONY: help
help: usage blank1 target blank2 context ## This help
# target functions: Fire functions-.
.PHONY: functions
functions: functions-.
# target functions-%: Print documented functions starting with %
.PHONY: functions-%
functions-%:
awk 'BEGIN {FS = ": "}; $$0 ~ /^# function $*.*:.*$$/ {printf "${COLOR_BLUE}%-39s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST)
# target macros: Fire macros-.
.PHONY: macros
macros: macros-.
# target macros-%: Print documented macros starting with %
.PHONY: macros-%
macros-%:
awk 'BEGIN {FS = ": "}; $$0 ~ /^# macro $*.*:.*$$/ {printf "${COLOR_BLUE}%-39s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST)
# target target: Show common targets
.PHONY: target
target:
printf "${COLOR_BROWN}Targets:${COLOR_RESET}\n"
awk 'BEGIN {FS = ":.*?## "}; $$0 ~ /^[a-zA-Z_-]+:.*?## .*$$/ {printf "${COLOR_BLUE}%-39s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST)
# target targets: Fire targets-.
.PHONY: targets
targets: targets-.
# target targets-%: Print documented targets
.PHONY: targets-%
targets-%:
awk 'BEGIN {FS = ": "}; $$0 ~ /^# target $*.*:.*$$/ {printf "${COLOR_BLUE}%-39s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST)
# target usage: Print Usage
.PHONY: usage
usage:
printf "${COLOR_BROWN}Usage:${COLOR_RESET}\n"
printf "make [target]\n"
# target variables: Fire variables-.
.PHONY: variables
variables: variables-.
# target variables-%: Show documented variables
.PHONY: variables-%
variables-%:
awk 'BEGIN {FS = ": "}; $$0 ~ /^# variable $*.*:.*$$/ {printf "${COLOR_BLUE}%-39s${COLOR_RESET} %s\n", $$1, $$2}' $(MAKEFILE_LIST)