次の 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 >> $@
アイデアは、make の開始時にセル リストが不明な場合に、2 つのステップ ([cell]_gen および [cell]_gds と呼ばれる) で「セル」を生成することです。
ここで: ターゲット 'cells.csv' は人間が読める形式です (単にエコーするだけです) が、一般的なケースでは、前の手順の結果として複雑な何かが予想されます ...etc..: 判読できません。
'cell' の各ステップは、 [cell] という名前のディレクトリに格納する必要があります。
この場合、「make 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がない理由を誰かが知っていますか??
ありがとう !