いがらしです。

この問題は前にも話題になったような気がしますが、ちょっと思い出せません。

At Wed, 12 Jan 2000 00:02:24 +0900 (JST),
in [ruby-ext:00839] Re: Ruby/Gtk in Ruby 1.5,
Daisuke Furukawa <dfuru / suenaga.cse.nagoya-u.ac.jp> wrote:
> 
> $? が無視されているというよりは、(2 回目以降の make, または
> make install 時には) makedefconst.rb, rbgdkkeysyms.h のタイムスタンプは
> librbgdkkeysyms.a より古いのに librbgdkkeysyms.a のコマンド
> 記述行に突入するため、$? には何もはいらない、といったことが
> 起こってます。

ひょっとして $? の使い方が間違っているのでしょうか。

> とりあえずの対策としては、
> (1) GNU の make を使う

MAKE変数が使えるならば、トップディレクトリのMakefileで
cd subdir && $(MAKE) などとしておいて、
明示的にgmakeを起動してもらうのも手かも知れません。
でもgmakeがなければお手上げですね。

> (2) 「.SUFFIXES :」という一行を Makefile に入れておく
> というのがあげられるかと思います。

そうなんですか。ちょっと僕には理由が分からないのですが。

> # 1999 年の 12 月の時点で、FreeBSD の ruby-gtk の ports も
> # 上記の問題のためインストールできませんでした

FreeBSDは普段使っていないのでよく知らないのですが、
こんな環境では gtk-SNAPSHOT-19991213 がインストールできました。

igarashi@oikomi[138]uname -a
FreeBSD oikomi 3.2-RELEASE FreeBSD 3.2-RELEASE #0: Tue May 18 04:05:08 GMT 1999     jkh@cathair:/usr/src/sys/compile/GENERIC  i386

結局、今回の場合$?の値は静的に決まるので、
あらかじめ展開しておくのが無難な気がします。

--
五十嵐  宏  (Hiroshi IGARASHI)