36 lines
		
	
	
		
			885 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			885 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# makefile self-documentation
 | 
						|
# http://www.cmcrossroads.com/print/article/self-documenting-makefiles
 | 
						|
 | 
						|
help:
 | 
						|
	@echo $(if $(need-help),,Type \'make$(dash-f) help\' to get help)
 | 
						|
 | 
						|
need-help := $(filter help,$(MAKECMDGOALS))
 | 
						|
 | 
						|
define def-help
 | 
						|
	$(if $(need-help),$(warning $1 --$2))
 | 
						|
endef
 | 
						|
 | 
						|
# define print-lines
 | 
						|
# 	@echo $1
 | 
						|
# endef
 | 
						|
#	$(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
 | 
						|
	$(word $(words $1),$1)
 | 
						|
endef
 | 
						|
 | 
						|
this-makefile := $(call last-element,$(MAKEFILE_LIST))
 | 
						|
other-makefiles := $(filter-out $(this-makefile),$(MAKEFILE_LIST))
 | 
						|
parent-makefile := $(call last-element,$(other-makefiles))
 | 
						|
 | 
						|
dash-f := $(if $(filter-out Makefile makefile GNUmakefile, $(parent-makefile)), -f $(parent-makefile))
 | 
						|
 |