Ответ 1
Как вы его используете, нет никакой разницы. Однако, если ваш макрос GREP является функцией, которая принимает параметры, вам придется использовать $(call) для передачи параметров на нее. Например:
define GREP
$(shell grep $1 $2)
endef
FOO:=$(call GREP,abc,words.txt)
Это приводит к замене $1
на "abc" и $2
на "words.txt".
Подробнее о GNU в руководстве GNU вы найдете здесь: http://www.gnu.org/software/make/manual/make.html#Call-Function
Надеюсь, что это поможет,
Эрик Мельский