2

我正在使用生成文件,并且目前正在调试模式下运行。我注意到“将子 0x5435etc PID 2344 放在链上”这是 makefiles 记住生成什么文件的方式吗?

我问是因为我正在使用一个工具来生成一堆不同的目标文件类型,如下所示。

    %.v: $.rdl
       (Generates .html, .v, .vh, .xml, .spirit.xml, etc into current directory)

该工具会按预期生成所有文件。

然后makefile运行一个目标

    vpath %.spirit.xml ${list_of_directories}
    %.ralf: %.spirit.xml
       (Generates a .ralf and .spirit.ralf)

我第一次在干净的目录中运行“$ make”时,它会在第一个目标上生成 .v 文件列表,但在第一个 .ralf 上失败。如果我再次运行“$ make”,它会正确构建所有 .ralf 文件。任何可能的简单答案?我注意到,当它将子级放入 %.v 目标的链中时,它只会放入 .v 文件!我在想它可能不知道其他人的存在!

4

1 回答 1

2

是的,您需要告诉 Make 该命令会产生多个输出。

这应该有效:

%.html %.v %.vh %.xml %.spirit.xml: %.rdl
        # command

请参阅手册中的模式示例

于 2013-07-11T04:01:22.000 回答