なかだです。

At Fri, 12 Apr 2002 17:59:15 +0900,
WATANABE Hirofumi wrote:
> :ですよね。なら、他のものをMakefileに依存させるんでなければ問題
> :ないのでは。少なくとも現状よりも悪いことはないような気がするの
> :ですが。GNU makeは勝手にやってくれるようですし。
> 
> 悪くはならないけど、GNU make以外の環境ではよくもならないので、
> もったいないなという話です。

というか、ext/extmk.rbのほうに限っても、configureしなおしても反
映されないのはまずいような気がするのですが。

> たしかにGNU makeではそのまま継続していけるのに、わざわざエラー
> にすることもないというのはわかりますが。

うーむ、こんなのはどうでしょ。

-- GNUmakefile
include Makefile
POST_REMADE_MAKEFILE = true

-- Makefile
POST_REMADE_MAKEFILE = false

Makefile: $(srcdir)/Makefile.in
ext/extmk.rb: $(srcdir)/ext/extmk.rb.in
Makefile ext/extmk.rb: config.status
	$(SHELL) ./config.status
	@echo "Makefile was remade, restart"
	@$(POST_REMADE_MAKEFILE)

> と思ったんですが、GNU makeでもなんかだめな時があるようです。
> とある環境でmakeしたら-I/usr/local/includeが残ってて変だなと
> 思って実験してみました。バグかな?


.PHONYに指定してるとダメなようです。ターゲットと実際のファイル
を別物とみなすわけだから、これはこれで正しいのかなぁ。

$ cat Makefile
A = 2
all: Makefile
	@echo $(A)
Makefile: force
	ruby -i~ -pe 'sub(/A = (\d+)/){"A = " + $$1.succ}' Makefile
	head -1 Makefile
force:; touch $@
$ make
touch force
ruby -i~ -pe 'sub(/A = (\d+)/){"A = " + $1.succ}' Makefile
head -1 Makefile
A = 2
2

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦