Project

General

Profile

Bug #3473

make clear-installed-list

Added by usa (Usaku NAKAMURA) over 10 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Target version:
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

#1

Updated by mame (Yusuke Endoh) over 10 years ago

  • Priority changed from Normal to 3

=begin
遠藤です。

普通の人は make install を何度もしないし、.installed.list が肥大化
するだけなら致命的でもないだろうということで、とりあえずは優先度を
Low とします。

trunk で直すのはいいと思いますが、1.9.2 で直すのは気が進みません。
どうしても直したいなら、必ず rc 前の 6 月中にお願いします。

--
Yusuke Endoh mame@tsg.ne.jp
=end

#2

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

  • Status changed from Assigned to Closed

=begin
fix by r28445
=end

Also available in: Atom PDF