tools: makefile help system improvements
This commit is contained in:
		
							parent
							
								
									21d9945ba9
								
							
						
					
					
						commit
						c83fcab8cb
					
				| @ -16,38 +16,54 @@ | |||||||
| #
 | #
 | ||||||
| # Also:
 | # Also:
 | ||||||
| #
 | #
 | ||||||
| # $(call def-help-section,SECTION,HELP)
 | # $(call def-help-section,TITLE,HELP)     -- show a section heading
 | ||||||
| #
 | #
 | ||||||
| # and:
 | # $(call def-help-subsection,TITLE,HELP)  -- show a subsection heading
 | ||||||
| #
 | #
 | ||||||
| # $(call def-help-subsection,SECTION,HELP)
 | # $(call def-help-hide,TARGET,HELP)       -- temporarily suppress the help)
 | ||||||
|  | # $(call def-help-section-hide,TITLE,HELP)
 | ||||||
|  | # $(call def-help-subsection-hide,TITLE,HELP)
 | ||||||
| #
 | #
 | ||||||
| # HELP is one or more lines, or can be blank.
 | # HELP is one or more lines, or can be blank.
 | ||||||
| # Certain characters such as comma and parentheses are not allowed.
 | # Certain characters are not allowed, comma in particular.
 | ||||||
| # You may want to avoid ' also as it breaks emacs font-lock.
 | # You may want to avoid ' also as it breaks emacs font-lock.
 | ||||||
| 
 | 
 | ||||||
|  | # if the make targets include "help" or there are no targets, show help
 | ||||||
|  | need-help := $(if $(MAKECMDGOALS),$(filter help,$(MAKECMDGOALS)),true) | ||||||
|  | 
 | ||||||
| help: | help: | ||||||
| 	@echo $(if $(need-help),,Type \'make$(dash-f) help\' to get help) | 	@echo $(if $(need-help),,Type \'make$(dash-f) help\' to get help) | ||||||
| 
 | 
 | ||||||
| need-help := $(filter help,$(MAKECMDGOALS)) | # show a make target's help when help has been requested
 | ||||||
| 
 |  | ||||||
| define def-help | define def-help | ||||||
| 	$(if $(need-help),$(warning $1 --$2)) | 	$(if $(need-help), $(warning  make $1 --$2)) | ||||||
| endef | endef | ||||||
| 
 | 
 | ||||||
|  | # show a section heading when help has been requested
 | ||||||
|  | define def-help-section | ||||||
|  | 	$(if $(need-help),$(warning --------------------$1--------------------$2)) | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | # show a subsection heading when help has been requested
 | ||||||
|  | define def-help-subsection | ||||||
|  | 	$(if $(need-help),$(warning ($1))) | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | # no-ops, for hiding help without removing it entirely
 | ||||||
|  | define def-help-hide | ||||||
|  | endef | ||||||
|  | define def-help-section-hide | ||||||
|  | endef | ||||||
|  | define def-help-subsection-hide | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | # utilities
 | ||||||
|  | 
 | ||||||
| # define print-lines
 | # define print-lines
 | ||||||
| # 	@echo $1
 | # 	@echo $1
 | ||||||
| # endef
 | # endef
 | ||||||
| #	$(if $(true),$(printf $1),$(printf '\n'$1))
 | #	$(if $(true),$(printf $1),$(printf '\n'$1))
 | ||||||
| 
 | 
 | ||||||
| define def-help-section |  | ||||||
| 	$(if $(need-help),$(warning --------------------$1--------------------$2)) |  | ||||||
| endef |  | ||||||
| 
 |  | ||||||
| define def-help-subsection |  | ||||||
| 	$(if $(need-help),$(warning $1$2)) |  | ||||||
| endef |  | ||||||
| 
 |  | ||||||
| define last-element | define last-element | ||||||
| 	$(word $(words $1),$1) | 	$(word $(words $1),$1) | ||||||
| endef | endef | ||||||
| @ -55,6 +71,4 @@ endef | |||||||
| this-makefile := $(call last-element,$(MAKEFILE_LIST)) | this-makefile := $(call last-element,$(MAKEFILE_LIST)) | ||||||
| other-makefiles := $(filter-out $(this-makefile),$(MAKEFILE_LIST)) | other-makefiles := $(filter-out $(this-makefile),$(MAKEFILE_LIST)) | ||||||
| parent-makefile := $(call last-element,$(other-makefiles)) | parent-makefile := $(call last-element,$(other-makefiles)) | ||||||
| 
 |  | ||||||
| dash-f := $(if $(filter-out Makefile makefile GNUmakefile, $(parent-makefile)), -f $(parent-makefile)) | dash-f := $(if $(filter-out Makefile makefile GNUmakefile, $(parent-makefile)), -f $(parent-makefile)) | ||||||
| 
 |  | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user