我有以下 Makefile:
cells.csv:
echo cellA > cells.csv
echo cellB >> cells.csv
echo cellC >> cells.csv
echo cellD >> cells.csv
mkdir -p cellA
mkdir -p cellB
mkdir -p cellC
mkdir -p cellD
%/cell_gen: cells.csv
echo '$@ generated' > $@
%/cell_gds: %/cell_gen
cat $(@D)/cell_gen > $@
echo $@_GDS >> $@
这个想法是分两步生成“单元格”(称为 [cell]_gen 和 [cell]_gds),而单元格列表在 make 开始时是未知的。
在这里:目标“cells.csv”是人类可读的(只是回声),但在一般情况下,我期望一些复杂的东西,它本身就是前面步骤的结果......等等......:不可读。
'cell' 的每一步都应该存储在名为 [cell] 的目录中。
我不明白为什么在这种情况下,如果我要求“制作 cellA/cell_gds”,那么看起来这些步骤都已执行:我得到了 csv 文件,然后得到了 cellA/cell_gds。
...但我无法解释为什么我没有得到 cellA/cell_gen ?
...尽管我可以在 make 执行期间看到“echo 'cellA/cell_gen generated' > cellA/cell_gen”,
我真的在 cellA/cell_gds 中得到了“cellA/cell_gen generated”
有人知道为什么没有文件 cellA/cell_gen 吗?
谢谢 !