Project

General

Profile

Actions

Bug #3473

closed

make clear-installed-list

Added by usa (Usaku NAKAMURA) over 14 years ago. Updated over 13 years ago.

Status:
Closed
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

Actions

Also available in: Atom PDF

Like0
Like0Like0