2016-01-05から1日間の記事一覧
擬似ターゲットの問題のさらにその奥には、名前空間と名前の取り扱いの問題がある。makeはリソース名空間とタスク名空間を区別できない。そこで: .PHONYはタスク名空間に名前を登録する。 タスク名は、それが存在すれば(.PHONY登録済みなら)リソース名よ…
実行時のエラーは実質的に1つしかない。 no rule ... :ゴールにマッチするルールがルールベースにない。 これが出るのは、 .PHONYでもなく、ターゲットでもない名前がゴール(現在注目しているターゲット)の前提に出現して、その名前に対応するリソースが…
アルゴリズムの正確な記述が探してもないので実験による予測: ターゲットに結びついたレシピが当該ターゲット名リソースを生成するとは仮定しない。これを仮定すると技法的擬似ターゲット(みなしタスク)が使えない。 すべての名前が技法的擬似ターゲット…
[追記]このエントリーに書いてあることは事実だが、「レッドヘリング」参照。[/追記]擬似ターゲットは運用手法/技法であってメカニズムではない。.PHONYがない時代から使われていて、その頃のMakefileとの互換性を考慮している、と思われる。その結果があの…
ターゲットの数 前提の数 説明 0 0 エラーとはならず無視される 0 n ≧ 1 エラーとはならず無視される 1 0 前提のないターゲット 1 n ≧ 1 標準的なルール m ≧ 2 n ≧ 1 レシピも含めてコピーして分割される マルチターゲットのルールの分割のとき、レシピはコ…
久々に使おうと思って途方にくれた。過去のメモを検索してみたが: 「Magitバッファ」という言葉が分からない。 その「Magitバッファ」を出す操作が分からない。 忘れたときに調べる方法が分からない。 自分でカスタマイズしたが、どうカスタマイズしたか忘…
複数のルールからのレシピが競合すると負けたレシピは消滅する。警告はある。 暗黙の組み込みルールが予期せぬ所で使われる。極めて発見しにくい。-r で対処。[追記].outは組み込みの暗黙ルールにある。ハマった。[/追記] 組み込みルールの利用/非利用を細…
DontCareフラグとしての空レシピは擬似ターゲット(ほんとのPHONYターゲット)では別な挙動を示す。 リソースターゲット(PHONYではないターゲット)では、空レシピはDontCareフラグとして働く。 擬似ターゲット(ほんとのPHONYターゲット)では、空レシピは…