我有以下生成文件:使用目录作为模式丢弃中间文件?
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 '[email protected] generated' > [email protected]
%/cell_gds: %/cell_gen
cat $(@D)/cell_gen > [email protected]
echo [email protected]_GDS >> [email protected]
的想法是产生在两步“细胞”(称为[单元] _gen和[单元] _gds),而小区列表是 在开始不知道制造。
这里:目标'cells.csv'是人类可读的(只是回声),但在一般情况下,我期望一些复杂的东西,由此产生前面的步骤......等等。:不可读。
'cell'的每一步都应该存储在名为[cell]的目录中。
我不明白为什么在这种情况下,如果我要求“make cellA/cell_gds”,那么它看起来像 的步骤都是执行的:我得到的csv文件,我得到cellA/cell_gds。
...但我无法解释为什么我没有得到cellA/cell_gen?
...尽管我可以在执行过程中看到“回声”cellA/cell_gen generated“> cellA/cell_gen”,
,我确实得到了“cellA/cell_gen generated”instide cellA/cell_gds
有没有人知道为什么有没有文件cellA/cell_gen?
谢谢!
这将会是可能使用更安全'.SECONDARY'。使用'.PRECIOUS'可以让'make'避免被中断的文件删除,这可能不是一件好事。 – Idelic 2013-03-25 22:34:44
@Idelic:是的,但由于某种原因,我无法让它工作(使用GNUMake 3.81)。我宁愿提供一个不完美的解决方案,而不是我根本无法验证的解决方案。 – Beta 2013-03-25 22:39:24