わたなべです。

mkmf.rbとextmk.rbの話題が出たので、とりあえず問題点を。

o 西山さんが何度か指摘しているextmk.rb.inとextmk.rbの関係

extmk.rb.inとextmk.rbとの依存関係がMakefileにないため、
extmk.rb.inをいじってもextmk.rbが更新されない。

この解決策としては

  1) Makefile.inに依存関係を書く

というのが素直ですが、

  2) 1.7ではrbconfig.rbをrequireしてるので@FOO@を
     Config::CONFIG["FOO"]で置き換えてextmk.rb.in自体をなくしてしまう

  3) Makefile.inに依存関係を書くが、mswin32のために用意され
     てるext/configsub.rbで変換する(つまりconfig.statusでの
     変換をやめる)

という案もあると思います。
わたし自身は 3) がいいかなと思ってます(1.6.xでも適用可能だし)。

o DRYの法則に反するmkmf.rbとextmk.rb

同じことを書くのは面倒。やはりextmk.rbの中でrequire 'mkmf' 
できるようにすべき(create_makefileだけ別々にすればよさそう)。

o mkmf.rbのinstallとsite-install

mkmf.rbで作ったMakefileのinstallターゲットはsite-installを意
味したほうがいいのでは?
#これに関しては個人的な趣味なので問題点じゃないか。

-- 
わたなべひろふみ