From: Akinori MUSHA Date: 2002-01-30T11:17:52+09:00 Subject: [ruby-dev:15805] dir_config() bug  dir_config() ですが、 dir_config('foo', '/usr/local') のように --with-foo-dir のデフォルト値を指定していると --with-foo-include, --with-foo-lib の指定は無視されてしまうよ、と FreeBSD 方面からの バグレポートで指摘されました。  まさか、と思い確認してみたところ、果たしてその通りでした。添付の ように直したいと思いますが、仕様上これでよいでしょうか? # 今まで発覚しなかったのは不思議 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Somewhere out of a memory.. of lighted streets on quiet nights.." Index: lib/mkmf.rb =================================================================== RCS file: /src/ruby/lib/mkmf.rb,v retrieving revision 1.68 diff -u -8 -r1.68 mkmf.rb --- lib/mkmf.rb 2002/01/02 14:41:57 1.68 +++ lib/mkmf.rb 2002/01/30 02:06:17 @@ -341,25 +341,23 @@ def dir_config(target, idefault=nil, ldefault=nil) if idefault && ldefault == nil default = idefault idefault = default + "/include" ldefault = default + "/lib" end - dir = with_config(target + "-dir", default) + idir = with_config(target + "-include", idefault) + ldir = with_config(target + "-lib", ldefault) - idir, ldir = if dir then [ - dir + "/include", - dir + "/lib" - ] else [ - with_config(target + "-include", idefault), - with_config(target + "-lib", ldefault) - ] end + if dir = with_config(target + "-dir") + idir ||= dir + "/include" + ldir ||= dir + "/lib" + end if idir idircflag = "-I" + idir $CPPFLAGS += " " + idircflag unless $CPPFLAGS.split.include?(idircflag) end if ldir $LIBPATH << ldir unless $LIBPATH.include?(ldir) Index: ext/extmk.rb.in =================================================================== RCS file: /src/ruby/ext/extmk.rb.in,v retrieving revision 1.62 diff -u -8 -r1.62 extmk.rb.in --- ext/extmk.rb.in 2002/01/25 08:22:09 1.62 +++ ext/extmk.rb.in 2002/01/30 02:06:17 @@ -338,25 +338,23 @@ def dir_config(target, idefault=nil, ldefault=nil) if idefault && ldefault == nil default = idefault idefault = default + "/include" ldefault = default + "/lib" end - dir = with_config(target + "-dir", default) + idir = with_config(target + "-include", idefault) + ldir = with_config(target + "-lib", ldefault) - idir, ldir = if dir then [ - dir + "/include", - dir + "/lib" - ] else [ - with_config(target + "-include", idefault), - with_config(target + "-lib", ldefault) - ] end + if dir = with_config(target + "-dir") + idir ||= dir + "/include" + ldir ||= dir + "/lib" + end if idir idircflag = "-I" + idir $CPPFLAGS += " " + idircflag unless $CPPFLAGS.split.include?(idircflag) end if ldir $LIBPATH << ldir unless $LIBPATH.include?(ldir)