e$B$J$+$@$G$9!#e(B
e$B%/%m%9%3%s%Q%$%k$N$H$-$Ke(Bext/tk/extconf.rbe$B$,E,@Z$J%G%#%l%/%H%j$re(B
e$BC5$7$F$$$^$;$s!#$^$?!"e(Bis_win32?e$B$N$H$-$KF1$8%G%#%l%/%H%j$r!"M?$(e(B
e$B$i$l$?%Q%9<+BN$He(B\e$B$re(B/e$B$KCV49$7$?$b$N$H%I%i%$%V%l%?!<$ND>8e$Ne(B/e$B$rFse(B
e$B=E$K$7$?$b$N$H$H!“3Fe(B3e$B2s$:$DC5$7$F$$$k$h$&$J$s$G$9$,!”$3$l$O$J$<e(B
e$B$G$7$g$&$+!#$H$/$K:G8e$N$b$N$O%I%i%$%V%l%?!<$,$J$$>l9g$Oe(BUNCe$B$K$J$Ce(B
e$B$F$7$^$&$N$G0UL#$,JQ$o$C$F$7$^$&$H;W$$$^$9!#e(B
diff --git i/ext/tk/extconf.rb w/ext/tk/extconf.rb
index 676c132…a8adac2 100644
— i/ext/tk/extconf.rb
+++ w/ext/tk/extconf.rb
@@ -193,5 +193,6 @@ def get_shlib_path_head
end
- if is_win32?
- if CROSS_COMPILING
- elsif is_win32?
drive, drv_regexp = win_drive
if TkLib_Config[“ActiveTcl”]
@@ -422,5 +423,6 @@ def get_tclConfig_dirs
config_dir = []
- if is_win32?
- if CROSS_COMPILING
- elsif is_win32?
drive, drv_regexp = win_drive
if TkLib_Config[“ActiveTcl”]
@@ -559,5 +561,6 @@ def search_tclConfig(*paths) # libdir list or
[tcl-libdir|file, tk-libdir|file]
conf = nil
- (config_dir | config_dir).map{|dir|
- config_dir.uniq!
- config_dir.map{|dir|
if dir.kind_of? Array
[dir[0].strip.chomp(’/’), dir[1].strip.chomp(’/’)]
@@ -603,5 +606,5 @@ def search_tclConfig(*paths) # libdir list or
[tcl-libdir|file, tk-libdir|file]
# nativethread check
if !TkLib_Config[“ruby_with_thread”] && tclconf[‘TCL_THREADS’] ==
‘1’
-
puts "WARNIG: find #{tclpath.inspect}, but it WITH
nativethread-support under ruby WITHOUT nativethread-support. So, ignore
it."
-
puts "WARNING: found #{tclpath.inspect}, but it WITH
nativethread-support under ruby WITHOUT nativethread-support. So, ignore
it."
TkLib_Config[“tcltk-NG-path”] << File.dirname(tclpath)
next
@@ -648,5 +651,5 @@ def search_tclConfig(*paths) # libdir list or
[tcl-libdir|file, tk-libdir|file]
unless tcllib_ok && tklib_ok
-
puts "WARNIG: find #{tclpath.inspect}, but cannot find valid
Tcl/Tk libraries on the same directory. So, ignore it."
-
puts "WARNING: found #{tclpath.inspect}, but cannot find valid
Tcl/Tk libraries on the same directory. So, ignore it."
TkLib_Config[“tcltk-NG-path”] << File.dirname(tclpath)
next
@@ -788,17 +791,15 @@ def check_shlib_search_path(paths)
path_list = check_NG_path(path_list)
- path_list.map!{|path| path.strip}
- if is_win32?
- if !CROSS_COMPILING and is_win32?
exist-dir only
drive, drv_regexp = win_drive
- path_list.each{|path|
-
path = path.strip;
-
#$LIBPATH |= [path] if File.directory?(path)
-
$LIBPATH |= [path.sub(%r|^(#{drv_regexp})?//|, '\1/')] unless
Dir.glob(File.join(path, “*.{a,so,dll,lib}”)).empty?
- }
- else
-
keep paths for searching dynamic libs
- path_list.each{|path| $LIBPATH |= [path.strip] }
- path_list.map!{|path| path.sub(%r|^(#{drv_regexp})?//|, ‘\1/’)}
- path_list.delete_if{|path| Dir.glob(File.join(path,
“*.{a,so,dll,lib}”)).empty?}
end -
keep paths for searching dynamic libs
- $LIBPATH |= path_list
end
@@ -842,5 +843,5 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
File.join(RbConfig::CONFIG[‘prefix’], ‘lib’),
“/usr/local/lib”, “/usr/pkg/lib”, “/usr/contrib/lib”, “/usr/lib”
- ].find_all{|dir| File.directory?(dir)}
-
].find_all{|dir| File.directory?(dir)} unless CROSS_COMPILING
if TkLib_Config[“ActiveTcl”].kind_of?(String) # glob path
@@ -848,5 +849,5 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
end
- if is_win32?
- if !CROSS_COMPILING and is_win32?
drive, drv_regexp = win_drive
if TkLib_Config[“ActiveTcl”]
@@ -874,34 +875,22 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
end
- env_paths = []
- ENV[‘PATH’].split(File::PATH_SEPARATOR).each{|dir|
- env_paths << File.expand_path(File.join(dir, ‘…’, ‘lib’))
- env_paths << dir
- env_paths << File.expand_path(File.join(dir, ‘…’))
- if is_win32?
-
if dir.gsub!(/\\/, '/')
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
-
end
-
if dir.sub!(%r|^(#{drv_regexp})?/([^/])|, '\1//\2')
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
-
end
- unless CROSS_COMPILING
- env_paths = []
- ENV[‘PATH’].split(File::PATH_SEPARATOR).each{|dir|
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
- }
- if File::ALT_SEPARATOR
-
env_paths.map!{|dir| dir.tr(File::ALT_SEPARATOR,
File::SEPARATOR)}
end
-
}
-
if is_win32?
-
env_paths = env_paths.find_all{|d|
-
not (Dir.glob(File.join(d, "*[Tt]cl*")) |
Dir.glob(File.join(d.sub(%r|^(#{drv_regexp})?/([^/])|, ‘\1//\2’),
“[Tt]cl”))).empty?
- }
- else
- env_paths = env_paths.find_all{|d|
-
not (Dir.glob(File.join(d, "*[Tt]cl*"))).empty?
- env_paths.delete_if{|d|
-
}(Dir.glob(File.join(d, "*[Tt]cl*"))).empty?
-
end
-
default_paths.concat env_paths
-
default_paths.concat env_paths
-
end
default_paths |= default_paths
@@ -1010,5 +999,5 @@ def find_tk(tklib, stubs, version, *opt_paths)
File.join(RbConfig::CONFIG[‘prefix’], ‘lib’),
“/usr/local/lib”, “/usr/pkg/lib”, “/usr/contrib/lib”, “/usr/lib”
- ].find_all{|dir| File.directory?(dir)}
-
].find_all{|dir| File.directory?(dir)} unless CROSS_COMPILING
if TkLib_Config[“ActiveTcl”].kind_of?(String) # glob path
@@ -1016,5 +1005,5 @@ def find_tk(tklib, stubs, version, *opt_paths)
end
- if is_win32?
- if !CROSS_COMPILING and is_win32?
drive, drv_regexp = win_drive
if TkLib_Config[“ActiveTcl”]
@@ -1042,34 +1031,22 @@ def find_tk(tklib, stubs, version, *opt_paths)
end
- env_paths = []
- ENV[‘PATH’].split(File::PATH_SEPARATOR).each{|dir|
- env_paths << File.expand_path(File.join(dir, ‘…’, ‘lib’))
- env_paths << dir
- env_paths << File.expand_path(File.join(dir, ‘…’))
- if is_win32?
-
if dir.gsub!(/\\/, '/')
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
-
end
-
if dir.sub!(%r|^(#{drv_regexp})?/([^/])|, '\1//\2')
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
-
end
- unless CROSS_COMPILING
- env_paths = []
- ENV[‘PATH’].split(File::PATH_SEPARATOR).each{|dir|
-
env_paths << File.expand_path(File.join(dir, '..', 'lib'))
-
env_paths << dir
-
env_paths << File.expand_path(File.join(dir, '..'))
- }
- if File::ALT_SEPARATOR
-
env_paths.map!{|dir| dir.tr(File::ALT_SEPARATOR,
File::SEPARATOR)}
end
-
}
-
if is_win32?
-
env_paths = env_paths.find_all{|d|
-
not (Dir.glob(File.join(d, "*[Tt]k*")) |
Dir.glob(File.join(d.sub(%r|^(#{drv_regexp})?/([^/])|, ‘\1//\2’),
“[Tt]k”))).empty?
- }
- else
- env_paths = env_paths.find_all{|d|
-
not (Dir.glob(File.join(d, "*[Tt]k*"))).empty?
- env_paths.delete_if{|d|
-
}(Dir.glob(File.join(d, "*[Tt]k*"))).empty?
-
end
-
default_paths.concat env_paths
-
default_paths.concat env_paths
-
end
default_paths |= default_paths
@@ -1166,5 +1143,5 @@ def find_tcltk_header(tclver, tkver)
end
- if is_win32?
- if !CROSS_COMPILING && is_win32?
drive, drv_regexp = win_drive
if TkLib_Config[“ActiveTcl”]
@@ -1199,15 +1176,9 @@ def find_tcltk_header(tclver, tkver)
base_dir << dir
base_dir << File.expand_path(File.join(dir, ‘…’))
-
if dir.gsub!(/\\/, '/')
-
base_dir << File.expand_path(File.join(dir, '..', 'include'))
-
base_dir << dir
-
base_dir << File.expand_path(File.join(dir, '..'))
-
end
-
if dir.sub!(%r|^(#{drv_regexp})?/([^/])|, '\1//\2')
-
base_dir << File.expand_path(File.join(dir, '..', 'include'))
-
base_dir << dir
-
base_dir << File.expand_path(File.join(dir, '..'))
-
}end
- if File::ALT_SEPARATOR
-
base_dir.map!{|dir| dir.tr(File::ALT_SEPARATOR, File::SEPARATOR)}
- end
end