all: struct_backend.go func_handlerequest.go .PHONY: all clean: rm -f -- struct_backend.go func_handlerequest.go enumerator@*.go rm -f -- enumerator-list.mk requests.txt responses.txt .PHONY: clean ifeq (,$(filter clean,$(MAKECMDGOALS))) -include enumerator-list.mk endif enumerator@%.go: enumerator@T.got < $< sed 's//$*/g' > $@ enumerator-list.mk: responses.txt Makefile < $< sed -rn 's/.*/all: enumerator@&.go/p' > $@ requests.txt: nslcd_h.go Makefile < $< grep -Eo 'Request_([^_ ]+)(_\S+)?' | sed 's/^Request_//' > $@ responses.txt: struct_backend.go Makefile < $< sed -rn 's/.* (\S+)_Enumerator$$/\1/p' | sort -u > $@ %.go: %.go.sh ./$^ > $@ struct_backend.go: requests.txt func_handlerequest.go: requests.txt .DELETE_ON_ERROR: .SECONDARY: