[Bug #3307] ext/tk がheader fileの有無を誤判定する

Bug #3307: ext/tk e$B$,e(Bheader filee$B$NM-L5$r8mH=Dj$9$ke(B
http://redmine.ruby-lang.org/issues/show/3307

e$B5/I<<Te(B: Masaya T.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
e$B%+%F%4%je(B: ext, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2010-05-17 revision 27861) [i386-mswin32_90]

e$BC.2H$G$9!#e(B
tcl.he$B$,L5$$$N$K%3%s%Q%$%k$r$7$h$&$H$7$F<:GT$7$^$9!#e(B
mkmf.loge$B$r8+$k$H<!$N$h$&$K$J$C$F$$$^$7$?!#e(B

cl -nologo -E -I//.ext/include/i386-mswin32_90 -I///include
-I///ext/tk -DPACKAGE_NAME=" -DPACKAGE_TARNAME=""
-DPACKAGE_VERSION="" -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT=""
-DHAVE_NO_LPFN_DECLS=1 -DHAVE_NO_FINDEX_ENUMS=1
-DTCL_CFGVAL_ENCODING=cp1252 -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1
-DHAVE_UXTHEME_H=1 -MD -Zi -W2 -wd4996 -O2sy- -Zm600 -I/mingw/include
conftest.c -P"
conftest.c

checked program was:
/* begin /
1: #include ruby.h
2:
3: #define WIN32_LEAN_AND_MEAN
4: #define WIN32
5: #include <winsock2.h>
6: #include <ws2tcpip.h>
7: #include <windows.h>
8: tcl.h
/
end */

cl -nologo -E -I//.ext/include/i386-mswin32_90 -I///include
-I///ext/tk -I/mingw/include -DPACKAGE_NAME="
-DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" -DPACKAGE_STRING=""
-DPACKAGE_BUGREPORT="" -DHAVE_NO_LPFN_DECLS=1 -DHAVE_NO_FINDEX_ENUMS=1
-DTCL_CFGVAL_ENCODING=cp1252 -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1
-DHAVE_UXTHEME_H=1 -MD -Zi -W2 -wd4996 -O2sy- -Zm600 conftest.c -P"
conftest.c

checked program was:
/* begin /
1: #include ruby.h
2:
3: #define WIN32_LEAN_AND_MEAN
4: #define WIN32
5: #include <winsock2.h>
6: #include <ws2tcpip.h>
7: #include <windows.h>
8: tk.h
/
end */

e$B%Q%C%A$G$9!#e(B

Index: ext/tk/extconf.rb

ext/tk/extconf.rb (e$B%j%S%8%g%se(B 27864)
+++ ext/tk/extconf.rb (e$B:n6H%3%T!<e(B)
@@ -989,7 +989,7 @@
end

if TclConfig_Info[TCL_INCLUDE_SPEC] &&

  •  have_tcl_h = try_cpp('tcl.h', TclConfig_Info['TCL_INCLUDE_SPEC'])
    
  •  have_tcl_h = try_cpp('#include<tcl.h>', 
    

TclConfig_Info[TCL_INCLUDE_SPEC
])
$INCFLAGS << " " << TclConfig_Info[TCL_INCLUDE_SPEC]
elsif have_tcl_h = have_header(tcl.h)
# find
@@ -1009,7 +1009,7 @@
end

if TkConfig_Info[TK_INCLUDE_SPEC] &&

  •  have_tk_h = try_cpp('tk.h', TkConfig_Info['TK_INCLUDE_SPEC'])
    
  •  have_tk_h = try_cpp('#include<tk.h>', 
    

TkConfig_Info[TK_INCLUDE_SPEC])
$INCFLAGS << " " << TkConfig_Info[TK_INCLUDE_SPEC]
elsif have_tk_h = have_header(tk.h)
# find

e$B1sF#$G$9!#e(B

2010e$BG/e(B5e$B7ne(B18e$BF|e(B4:41 Masaya T.
[email protected]:

e$BC.2H$G$9!#e(B
tcl.he$B$,L5$$$N$K%3%s%Q%$%k$r$7$h$&$H$7$F<:GT$7$^$9!#e(B

snip

e$B%Q%C%A$G$9!#e(B

e$B:F8=$7!"$3$N%Q%C%A$GD>$k$3$H$r3NG$7$^$7$?!#e(B

e$B$H$3$m$G!C.2H$5$s$O$h$/9W8%$7$F$/$l$F$$$k$N$G!%3%_%C%H8"$re(B
e$B:9$7>e$2$k$N$O$I$&$G$7$g$&$+!#e(B
ChangeLog e$B$K$OC.2H$5$s$NL>A0$,e(B 7 e$B$D$[$I:$C$F$^$9!#e(B

e$B$H$3$m$G!C.2H$5$s$O$h$/9W8%$7$F$/$l$F$$$k$N$G!%3%_%C%H8"$re(B
e$B:9$7>e$2$k$N$O$I$&$G$7$g$&$+!#e(B
ChangeLog e$B$K$OC.2H$5$s$NL>A0$,e(B 7 e$B$D$[$I:$C$F$^$9!#e(B

+1 :slight_smile:

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message [ruby-dev:41338] Re: [Bug #3307] ext/tk e$B$,e(Bheader
filee$B$NM-L5$r8mH=Dj$9$ke(B
on May.18,2010 22:06:30, [email protected] wrote:

e$B$H$3$m$G!C.2H$5$s$O$h$/9W8%$7$F$/$l$F$$$k$N$G!%3%_%C%H8"$re(B
e$B:9$7>e$2$k$N$O$I$&$G$7$g$&$+!#e(B
ChangeLog e$B$K$OC.2H$5$s$NL>A0$,e(B 7 e$B$D$[$I:$C$F$^$9!#e(B

+1 :slight_smile:

+1, too :stuck_out_tongue:

e$B$=$l$G$O!#e(B

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

From: Masaya T. [email protected]
Subject: [ruby-dev:41334] [Bug #3307] ext/tk e$B$,e(Bheader
filee$B$NM-L5$r8mH=Dj$9$ke(B
Date: Tue, 18 May 2010 04:41:25 +0900
Message-ID: [email protected]

Bug #3307: ext/tk e$B$,e(Bheader filee$B$NM-L5$r8mH=Dj$9$ke(B

e$BBgJQCY$/$J$C$F$7$^$$!$K\Ev$K$4$a$s$J$5$$!%e(B
e$B$?$C$?:#!$e(Bcommit e$B$7$^$7$?!%e(B
e$BJs9p$He(B patch e$B$r$"$j$,$H$&$4$6$$$^$7$?!%e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message Re: [ruby-dev:41337] Re: [Bug #3307] ext/tk e$B$,e(Bheader
filee$B$NM-L5$r8mH=Dj$9$ke(B
on Tue, 18 May 2010 21:26:29 +0900, Yusuke ENDOH [email protected]
writes:

|e$B$H$3$m$G!C.2H$5$s$O$h$/9W8%$7$F$/$l$F$$$k$N$G!%3%_%C%H8"$re(B
|e$B:9$7>e$2$k$N$O$I$&$G$7$g$&$+!#e(B
|ChangeLog e$B$K$OC.2H$5$s$NL>A0$,e(B 7 e$B$D$[$I:$C$F$^$9!#e(B

e$BN;2r$G$9!#e(B

e$BC.2H$5$s$O!"e([email protected]
e$B$Ke(Bpgpe$B%5%$%s$7$?e(Bssh2e$B$N8xe(B
e$B3+80$H!4uK>$9$k%%+%&%s%HL>$rAw$C$F$/[email protected]$5$$$^$;$s$+!)e(B

e$BC.2H$G$9!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#e(B

[email protected]$-!"@h$[$I%3%_%C%H$G$-$k;v$r3NG$7$^$7$?!#e(B
e$B$^$?!"1sF#$5$s;O$a?dA&$7$F$/[email protected]$5$C$?J}!9$K$b46<U$r!#e(B

2010e$BG/e(B5e$B7ne(B24e$BF|e(B15:41 Yukihiro M.
[email protected]: