做出递归依赖

use*_*179 7 makefile

我目前正在开发一个项目,该项目需要将目录中的文件列表转换为c ++标头,以存储有关资源的信息.例如:

/
update.py
resources.h
Makefile
/resources
  resource1.png
  /sub1
    /sub2
      resource2.png
Run Code Online (Sandbox Code Playgroud)

我想要的是,只有当目录树中任何一个资源发生变化时,Makefile才能运行update.py.没有其他makefile会触及资源,只有资源.h.我需要做什么样的makefile?

PS从我所看到的,递归搜索make是一个坏主意,但如果没有其他任何东西触及相同的文件,它会是一个问题吗?

Mad*_*ist 16

我不确定你读过什么,但是在make中编写这样的规则没有问题:

RESOURCES := $(shell find . -name resource\*.png -print)
resources.h: update.py $(RESOURCES)
        ./update.py $(RESOURCES)
Run Code Online (Sandbox Code Playgroud)

管他呢.

  • 一般来说,使用当前版本的 make 管理包含空格的文件名是不可行的。 (2认同)