makefile - 为具有多个依赖项的单个目标编写 Makefile 规则

标签 makefile gnu-make

例如,如果我要用硬件描述语言编译一堆文件,我可以用以下方式编写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/

相关文章:

在 Linux 中使用 makefile 编译内核模块

c - 更多 GCC 链接时间问题 : undefined reference to main

build-process - 用makefile和静态模式规则进行树外构建

makefile - 从 Makefile 规则打印粗体或彩色文本

makefile - patsubst 和 dir 用法

在 CLion 中使用 flex/bison 进行 CMake

windows - 如何在 CMake 中使用分号值创建一个列表?

makefile - 包含生成的 makefile 没有警告消息

macos - 如何运行 "gmake install"?

ubuntu - 在ubuntu中用cuda编译opencv的makefile停止工作