Для GNU Make вы можете сделать следующий трюк:
__shell := $(SHELL)
SHELL = \
$(warning making '$@'$(if $^, from '$^')$(if $?, because of '$?'))$(__shell)
SHELL
переменная раскрывается каждый раз, когда Make вызывает субоболочку для выполнения рецепта.В этих строках он заменяется таким образом, чтобы при каждом расширении он печатал цель, ее предпосылки и предпосылки, более новые, чем цель.Также к каждому сообщению отладки добавляется файл и номер строки выполняемого правила.
Тот же метод используется в GMD для установки точек останова для определенных целей.