physics-data / faq

实验物理的大数据方法 FAQ
16 stars 17 forks source link

关于Make:多个文件由同一个脚本生成产生的困难 #11

Closed liukn-thp closed 3 years ago

liukn-thp commented 4 years ago

举个栗子:a文件同时依赖于b,c,d三个文件;程序在设计中决定了:b,c,d是被同一个脚本script.sh生成的。如果改动了bcd三个中的任何一个,我们希望改动能够传递给a,因此a的依赖必须写为 a : b c d 这时我们不希望重复运行script.sh,因此在b,c,d三者的依赖关系下的代码中,script.sh只能出现一次。这时应该如何书写b,c,d的依赖关系和对应的代码?

liukn-thp commented 4 years ago

一个可能的解法似乎是让c、d依赖于b;然后在b下运行script.sh。然而,这样做了之后,我们就做不到“只改动b而不改动c”,但是可以做到“只改动c而不改动b”,似乎就失去了bcd的某种平权性(尽管这看上去并不重要)。

heroxbd commented 4 years ago

建议采取你的近似解法,这件事细究下去可以非常复杂:

参见 https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html