Хитрость заключается в том, чтобы переправлять специальные символы мимо Make и grep.
GrepResult := ${shell grep 'ifeq (\$$(Param1)' TextFile}
Make превращает $$ в $, затем grep превращает \ $ в $. Также обратите внимание, что в этом назначении используются фигурные скобки "{}", а не круглые скобки "()", чтобы не путать результаты сопоставления. (Может быть более надежный способ обработки строки, но не берите в голову.)
Когда вы используете результат, используйте одинарные кавычки:
all:
@echo '$(GrepResult)'
Это тоже было протестировано с GNUMake 3.81.
EDIT:
Это также работает с $ (ошибка ...):
$(error '$(GrepResult)')