古川です。

# 何で私のところと挙動が違うんだろう

>> work/gtk/src/Makefile の先頭あたりに入れて下さい。
>
>うーん、先頭に入れてみたのですが、どうも駄目みたいで……。
>
># FreeBSD 3.3-RELEASE附属のmakeで試しています。
>
>----
>○行なった手順
>
>・gtk-snapshot の tarballを展開
>・extconf.rb を修正
>・src/Makefileの先頭に「.SUFFIXES :」という行を追加
>・make すると、
>
>> make
>make: don't know how to make global.o. Stop
>*** Error code 2
>
>Stop.

ああ、確かにそうなるような気がしますね。
.SUFFIXES: を入れたんだから .c に対する暗黙のルールも適用されなくなって
global.c のコンパイルに困る、ということですね。

御迷惑をおかけして申し訳ないのですが、もう一つだけ試してもらえませんか。
「.SUFFIXES:」のかわりに「.SUFFIXES: .o .c .h」を src/Makefile の
先頭に入れて、make; make install してもらえないでしょうか。

# .h はいらないかも、.o .c があれば OK ?

また、手元に試せる環境がないのでテストしてないのですが、もし
よろしければ試してみて下さい。

ところで、私のところでうまくいく理由は何なんでしょうね。

>結局RubyではなくてFreeBSD 3.3のmakeに問題があるだけのよう
>なので、素直に3.4にするか、gmakeを使うかするべきでしょうか。

gmake を使うというのもいいし、make だけ最新のものに入れ換えるという
手もあると思います。

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