Чтобы упростить мой вопрос, если у меня есть Makefile, как показано ниже
%: %.c
gcc -o $@ $<
make foo
Make foo
создаст исполняемый файл foo
из foo.c
.Без вопросов.Если бы я изменил Makefile, как показано ниже, чтобы я мог передать цель из командной строки Makefile
# To make things little complex
TARG=$(EXE)
$(TARG): %.c
gcc -o $@ $<
make EXE=foo
Приведенная выше команда make EXE=foo
говорит:
"make: *** No rule to make target %.c, needed by
Foo».Стоп.
Почему $(TARG)
не расширяется в правиле target
в Makefile?