このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

2016-01-05から1日間の記事一覧

諸悪の根源は擬似ターゲット その3:名前空間の問題

擬似ターゲットの問題のさらにその奥には、名前空間と名前の取り扱いの問題がある。makeはリソース名空間とタスク名空間を区別できない。そこで: .PHONYはタスク名空間に名前を登録する。 タスク名は、それが存在すれば(.PHONY登録済みなら)リソース名よ…

makeはいつエラーするのか

実行時のエラーは実質的に1つしかない。 no rule ... :ゴールにマッチするルールがルールベースにない。 これが出るのは、 .PHONYでもなく、ターゲットでもない名前がゴール(現在注目しているターゲット)の前提に出現して、その名前に対応するリソースが…

諸悪の根源は擬似ターゲット その2

アルゴリズムの正確な記述が探してもないので実験による予測: ターゲットに結びついたレシピが当該ターゲット名リソースを生成するとは仮定しない。これを仮定すると技法的擬似ターゲット(みなしタスク)が使えない。 すべての名前が技法的擬似ターゲット…

諸悪の根源は擬似ターゲット その1

[追記]このエントリーに書いてあることは事実だが、「レッドヘリング」参照。[/追記]擬似ターゲットは運用手法/技法であってメカニズムではない。.PHONYがない時代から使われていて、その頃のMakefileとの互換性を考慮している、と思われる。その結果があの…

ルールの分類

ターゲットの数 前提の数 説明 0 0 エラーとはならず無視される 0 n ≧ 1 エラーとはならず無視される 1 0 前提のないターゲット 1 n ≧ 1 標準的なルール m ≧ 2 n ≧ 1 レシピも含めてコピーして分割される マルチターゲットのルールの分割のとき、レシピはコ…

magit操作を忘れた

久々に使おうと思って途方にくれた。過去のメモを検索してみたが: 「Magitバッファ」という言葉が分からない。 その「Magitバッファ」を出す操作が分からない。 忘れたときに調べる方法が分からない。 自分でカスタマイズしたが、どうカスタマイズしたか忘…

ロクでもないハマリどころ

複数のルールからのレシピが競合すると負けたレシピは消滅する。警告はある。 暗黙の組み込みルールが予期せぬ所で使われる。極めて発見しにくい。-r で対処。[追記].outは組み込みの暗黙ルールにある。ハマった。[/追記] 組み込みルールの利用/非利用を細…

さらにロクでもない仕様が判明

DontCareフラグとしての空レシピは擬似ターゲット(ほんとのPHONYターゲット)では別な挙動を示す。 リソースターゲット(PHONYではないターゲット)では、空レシピはDontCareフラグとして働く。 擬似ターゲット(ほんとのPHONYターゲット)では、空レシピは…