From: EGUCHI Osamu Date: 1999-12-29T20:01:50+09:00 Subject: [ruby-dev:8766] Re: [win] dir name えぐち@エスアンドイー です。 >>> In message [ruby-dev:8762] Re: [win] dir name On Wed, 29 Dec 1999 15:19:20 +0900, Katsuyuki Komatsu 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 の形式に変わったのも同時期な筈。 えぐち