Jan 2, 2008

Cygwin の make


Ruby 1.9.0 で extconf.rb から生成した Makefile を使おうとするとこんなことに:
$ d\:/ruby19/bin/ruby extconf.rb
creating Makefile

$ make -f Makefile
Makefile:130: *** target pattern contains no `%'.  Stop.

$ make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-cygwin
この 「target pattern contains no `%'. Stop.」というメッセージ は make 3.81 を使っているときによく見かける気がします。
そこで 3.80 に戻そうにも、Cygwin の setup.exe 経由ではもうダウンロード できません。
Windows build prerequisites using cygwin というページで知りましたが、こちらのページで過去の Cygwin バイナリパッケージが配布されています:
make はこちら:
ここにある make-3.80-1.tar.bz2 をいただいて、Cygwin のインストー ルディレクトリ直下で展開します。これで $(cygwin)/usr/bin/make.exe とし てインストールされます。
$ d\:/cygwin/usr/bin/make.exe -v
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.