Как получить последнюю зависимость от цели? - PullRequest
1 голос
/ 24 марта 2012

скажем, у меня есть:

target.o: target.h target.c
    gcc $(CFLAGS) -c target.c

Но я бы хотел избавиться от избыточного target.c.Я знаю, что $ <даст target.h, есть ли внутренний макрос, который даст target.c, или я должен просто переставить его: </p>

target.o: target.c target.h
    gcc $(CFLAGS) -c $<

Однако ... Я помню, что $

1 Ответ

6 голосов
/ 24 марта 2012

Вы должны просто использовать свой второй пример:

target.o: target.c target.h
    gcc $(CFLAGS) -c $<

$< всегда соответствует первому предварительному условию;не имеет значения, какой из них вызвал запуск рецепта.Для получения дополнительной информации см. http://www.gnu.org/software/make/manual/make.html#Automatic-Variables.

Если вы действительно параноик, вы всегда можете сделать это (но это необязательно):

target.o: target.c target.h
    gcc $(CFLAGS) -c $(filter %.c,$^)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...