Actions
Bug #3473
closedmake clear-installed-list
ruby -v:
ruby 1.9.3dev (2010-06-24 trunk 28414) [i386-mswin32]
Backport:
Description
=begin
.installed.listファイルを空にするために、common.mkのclear-installed-listターゲットで
@set MAKE="$(MAKE)" > $(INSTALLED_LIST)
なるものを実行していますが、遺憾ながらnmakeでは肝心のリダイレクト部が実行されません。
このこと自体はnmakeのバグだろうと思うのですが、結果としてinstallするたびにひたすら
.installed.listへの追記が行われていってしまいます。
(私の場合、.installed.listが40MBを越えるサイズになっていたのでこの問題に気付きました)
で、例えば
@exit > $(INSTALLED_LIST)
にでもすれば問題は解決するのですが、なかださんによると、
- set MAKE= の部分には意味はない
- コマンドが$(MAKE)を含んでいると、make -n であってもそのコマンドが実行される
- make -n install で実際のインストールなしで.installed.listを作りたいのでこうしている
という話でした。
ですが、私の実験した限り、NetBSDのmake(いわゆるportable makeとして知られている物)
では$(MAKE)があってもmake -nで実行されることはありませんでした。
思うに、これはGNU makeあたりに限定される挙動を利用しているのではないかと思います。
というわけで、
(1) まず @set はやめて @exit にする
(2) インストールなしで.installed.listを作る機能が欲しいならば別途それ用のターゲットを
準備する
の2点を提案します。
分類としては(1)がプラットフォーム限定のBug、(2)がFeatureになるかと思いますが、
まあ分けるのもなんなのでセットで出しときます。
=end
Actions
Like0
Like0Like0