我对GNUmakefile很陌生。
我将按照相同的目标模式放置两个规则,如下所示:
$(TGTSIP)/$(VERILOG_DIR)/src/%: $(TGTDDVAPI)/$(VERILOG_DIR)/%
$(test_file)
$(TGTSIP)/$(VERILOG_DIR)/src/%: $(TGTMODEL)/%
$(test_file)
i以上在makefile中提到。因为只有很少的文件,预需求会发生变化。Build可以正常工作。但是我不确定这是否是制定此类规则的正确方法?如果这不是正确的方法。任何人都可以分享我们简化这一过程的最佳方式吗?
为了进一步理解,我试图将文件从2条不同的路径复制到一个相同的位置。在这种情况下,目标是我们要复制的路径,先决条件是不同的路径。我们如何在单一规则中处理它?
答案 0 :(得分:0)
Make不反对使用非空配方的多个并发 pattern 规则。实际上,这完全合法。
但是,请记住,在这种情况下,并发源的时间戳并不重要:两个 pattern 是否直接匹配(即,不是通过隐式链接)并且具有相同的词干长度那么第一个总是赢(并且没有发出警告)。然后,仅将获胜者的时间戳与目标的 时间戳进行比较。
因此,第二个目录中的源可能不会更新目标(被第一个目录中的旧源遮盖)。如果您认为还可以(例如,源目录之间没有冲突),则只需执行此操作。