えぐち@エスアンドイー です。

>>> In message [ruby-dev:8762] Re: [win] dir name
    On Wed, 29 Dec 1999 15:19:20 +0900, Katsuyuki Komatsu <komatsu / sarion.co.jp> said:

komatsu> 小松です。

komatsu> ふむふむ。そうすると、
komatsu> 
komatsu>   SRC_EXT = ["c", "cc", "m", "cxx", "cpp", "C"]
komatsu> 
komatsu> なので、4つ書けばいいかな?
komatsu> 
komatsu>   .cc.o:
komatsu>   	$(CC) $(CXXFLAGS) $(CPPFLAGS) -c $<
komatsu>   .cxx.o:
komatsu>   	$(CC) $(CXXFLAGS) $(CPPFLAGS) -c $<
komatsu>   .cpp.o:
komatsu>   	$(CC) $(CXXFLAGS) $(CPPFLAGS) -c $<
komatsu>   .C.o:
komatsu>   	$(CC) $(CXXFLAGS) $(CPPFLAGS) -c $<
komatsu> 
komatsu> しかし、.Cはどうしよう。大文字小文字を区別しないファイルシステム
komatsu> では.cと区別できないですが、.Cも必要なんですよね。
komatsu> サポートしないという手もあるか。

既に、make の組み込みの定義をオーバーライドしているので、
ここでの .c と .C の重複も警告程度で済む、と期待するのは甘すぎ?
#あと、 OBJEXT を参照しないといけないかも、、

komatsu> あと、C++コンパイラは$(CC)かと言われるとちょっと疑問があります。
komatsu> $(CXX)にしてどこかで設定しておく?

configure で AC_PROG_CXX するのが順当なんでしょうけど、
ruby 自体は C++ コンパイラを要求しないのに、C++ コンパイラが
なくて confiure に失敗するのは問題ですね、

  checking for c++... no
  checking for g++... no
  checking for gcc... no
  checking for CC... no
  checking for cxx... no
  checking for cc++... no
  checking for cl... no
  checking whether the C++ compiler (gcc  ) works... no
  configure: error: installation or configuration problem: C++ compiler cannot create executables.

#cl まで探すんですね。

で、 $(CXX) や $(CCC) は定義されていなくても、$(CC) は必ず定義されるので、
$(CC) のままでいいんじゃないか、、と言う判断ではいけないでしょうか?

cc と c++ で stream  の初期化などの差異はあるのだけれど、
ruby の拡張ライブラリに限って言えば、 stdio を使うので
stream とは共存不可能なはず。	// 混ぜるな危険(笑)

komatsu> |#``mswin32なら'' の判断が散在するのは非常にまずいとおもう。
komatsu> |##nmake が上記の解釈を行えないのであれば別ですが、、
komatsu> 
komatsu> さすがにそのぐらいはできるようです。

暗黙のルールの「上書き定義」が出来るかどうか、、ドキドキですね ^^;;

komatsu> # GNUのmake-3.78.1.tar.gzのChangeLog見ると1992年頃にC++FLAGSから
komatsu> # CXXFLAGSに変わったようです。そんな昔の話だったのか……

記憶が曖昧ですが POSIX 準拠が理由だったとおもいます。
コマンドラインの長いオプションが +foo-bar-baz の形式から
--foo-bar-baz の形式に変わったのも同時期な筈。

	えぐち