重新评估makefile变量

10 variables makefile

有没有办法在每次使用时重新评估变量的定义?例如:

MAP_FILES = $(shell find $(TMP) -name "*.map")

all: generate_map_files work_with_map_files

generate_map_files:
   ./map-builder

work\_with\_map_files: $(MAP_FILES)
   ./map-user

%.map:
   ./map-edit $@
Run Code Online (Sandbox Code Playgroud)

因此,在读取makefile时将评估MAP_FILES,如果$ TMP目录中没有.map文件,则该变量将为空.但是在generate_map_files规则完成后,目录中会有.map文件,我希望这些.map文件的列表成为work_with_map_files规则的先决条件.

在生成之前我不知道.map文件的文件名,因此我无法明确声明带有文件名的变量.我需要在生成映射文件列表后设置变量.任何建议都会非常有帮助.谢谢.

mby*_*215 5

您可以尝试进行递归制作,例如

MAP_FILES = $(shell find $(TMP) -name "*.map")

all: generate_map_files

generate_map_files:
   ./map-builder; $(MAKE) work_with_map_files

work\_with\_map_files: $(MAP_FILES)
   ./map-user

%.map:
   ./map-edit $@
Run Code Online (Sandbox Code Playgroud)