例如,如果我要用硬件描述语言编译一堆文件,我可以用以下方式编写Makefile
analyze: a.v b.v c.v top.v
vcs $(OPTIONS) a.v
vcs $(OPTIONS) b.v
vcs $(OPTIONS) c.v
vcs $(OPTIONS) top.v
进行分析,将编译其依赖项中的所有文件并构建最终的可执行文件。我如何编写一个“单个 Makefile 规则”,它将编译其所有依赖项并构建一个可执行文件 - 使用类似以下的规则模仿上述内容:
analyze: %.v
vcs $(OPTIONS) %.v
以上适用于单个文件依赖项。但是,如果我有多个文件依赖项,我将如何处理多个文件?我可以对所有依赖项使用“for 循环”吗?我正在寻找 Makefile 选项来访问要在 for 循环中使用的“依赖文件”,但找不到。
最佳答案
为每个要分析的文件使用虚拟标记目标:
analyze : a.analyzed-stamp b.analyzed-stamp c.analyzed-stamp top.analyzed-stamp
%.analyzed-stamp : %.v
vcs $(OPTIONS) $<
touch $@
关于makefile - 为具有多个依赖项的单个目标编写 Makefile 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8822591/