>> $? が無視されているというよりは、(2 回目以降の make, または
>> make install 時には) makedefconst.rb, rbgdkkeysyms.h のタイムスタンプは
>> librbgdkkeysyms.a より古いのに librbgdkkeysyms.a のコマンド
>> 記述行に突入するため、$? には何もはいらない、といったことが
>> 起こってます。
>
>ひょっとして $? の使い方が間違っているのでしょうか。

いえ、自信はないのですがおそらく FreeBSD の make の問題ではないかと
思います。

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

私的にはできる限りシンプルな環境が好きなので、できれば gmake に
依存しないような Makefile がうれしいと思います。

>> (2) 「.SUFFIXES :」という一行を Makefile に入れておく
>> というのがあげられるかと思います。
>
>そうなんですか。ちょっと僕には理由が分からないのですが。

ターゲットの拡張子が .a の時には、特別な処理(ライブラリの場合は
ライブラリのタイムスタンプではなくて、個々のオブジェクトの
タイムスタンプを新旧の比較に使ったりとか)をする。しかし、
FreeBSD の make ではその部分がバグってた。一方「.SUFFIXES:」という
行があればライブラリの拡張子をクリアできる。それで特別な処理を
せずに、単純にライブラリのタイムスタンプと依存ファイルのタイムスタンプ
の比較を行う。だから正常に動く。

みたいなことが起きるんだと思ってます。

>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

3.1-RELEASE と 3.2-RELEASE では正常にインストールできるみたいです。
3.3-RELEASE は駄目だと思います。

# こんなに自信満々に言って、違ってたらどうしよう

--------
古川大介