GNU使相互依赖的先决条件

时间:2014-10-10 23:15:24

标签: makefile dependencies gnu

我正在尝试编写一个具有相互关联的预依赖关系的make规则。

a: b $(FILES)

b: $(FILE_1)
  $(eval FILES := some_function_using_file($(FILE_1)))

$(FILES):
  do something ...

基本上,我需要$(FILE_1)才能获得$(FILES)。当首次读取文件时,下面的规则不存在,因为$(FILES)最初没有定义,但是会动态评估。

$(FILES):
  do something ...

有没有办法让这项工作?我想动态创建$(FILES),然后运行其规则。

1 个答案:

答案 0 :(得分:0)

在任何目标运行之前评估目标。最好的办法是在发生之前生成列表。

FILES = $(shell ls) new.txt

all: $(FILES)

$(FILES):
  echo $@

如果你真的很绝望,你可以在makefile中生成另一个makefile并调用另一个make副本。