Цель Makefile зависит от файла из переменной среды - PullRequest
2 голосов
/ 30 июля 2010

если я бегу make так:

make VAR=dir

есть ли способ добавить местоположение, указанное переменной VAR, в качестве целевой зависимости? на самом деле мне нужно определить файл внутри этого каталога как зависимость.

Я бы пошел с:

target: $(VAR)/file.txt
  echo yes

но если переменная не была определена, цель поймет /file.txt, а это не то, что я хочу. Я также думал о создании фальшивой цели для проверки переменной с test, но тогда фальшивая цель будет выполняться каждый раз и, следовательно, target также будет.

есть какое-нибудь решение для этого?

1 Ответ

5 голосов
/ 31 июля 2010

Вы не сказали, какое поведение вы хотите, если переменная не определена, но это, вероятно, то, что вы хотите:

ifdef VAR
target: $(VAR)/file.txt
endif

target:
  echo yes
  @echo and here are the dependencies: $^
...