mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/tk/extconf.rb: fix for uninitialized global variables. [Ruby 1.9 - Bug #4811]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									859da83455
								
							
						
					
					
						commit
						eeccb5935b
					
				
					 2 changed files with 52 additions and 39 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Thu Jun  2 00:45:26 2011  Hidetoshi NAGAI  <nagai@ai.kyutech.ac.jp>
 | 
			
		||||
 | 
			
		||||
	* ext/tk/extconf.rb: fix for uninitialized global variables.
 | 
			
		||||
	  [Ruby 1.9 - Bug #4811]
 | 
			
		||||
 | 
			
		||||
Wed Jun  1 21:57:08 2011  KOSAKI Motohiro  <kosaki.motohiro@gmail.com>
 | 
			
		||||
 | 
			
		||||
	* thread_pthread.c (native_sleep): fix 1000times calculation error.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ end
 | 
			
		|||
##############################################################
 | 
			
		||||
# check configs
 | 
			
		||||
##############################################################
 | 
			
		||||
$cleanfiles << 'config_list'
 | 
			
		||||
($cleanfiles ||= "") << 'config_list'
 | 
			
		||||
config_list_file = 'config_list'
 | 
			
		||||
config_list_file_source = File.join(File.dirname(__FILE__),'config_list.in')
 | 
			
		||||
if !File.exist?(config_list_file) ||
 | 
			
		||||
| 
						 | 
				
			
			@ -569,9 +569,9 @@ def libcheck_for_tclConfig(tcldir, tkdir, tclconf, tkconf)
 | 
			
		|||
    tkfunc  = "Tk_Init"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  incflags = $INCFLAGS.dup
 | 
			
		||||
  libpath = $LIBPATH.dup
 | 
			
		||||
  libs_param = $libs.dup
 | 
			
		||||
  incflags = ($INCFLAGS ||= "").dup
 | 
			
		||||
  libpath = ($LIBPATH ||= []).dup
 | 
			
		||||
  libs_param = ($libs ||= "").dup
 | 
			
		||||
  tcllibs = nil
 | 
			
		||||
  mkmf_param = nil
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -922,6 +922,7 @@ def get_tclConfig(tclConfig_file, tkConfig_file, tclConfig_dir, tkConfig_dir)
 | 
			
		|||
    dirs |= dirs
 | 
			
		||||
    puts("Valid [tclConfig.sh, tkConfig.sh] are found in #{dirs.inspect}")
 | 
			
		||||
    puts("Use [tclConfig.sh, tkConfig.sh] == #{[tclConfig, tkConfig].inspect}")
 | 
			
		||||
    $LIBPATH ||= []
 | 
			
		||||
    $LIBPATH |= [File.dirname(tclConfig)] if tclConfig
 | 
			
		||||
    $LIBPATH |= [File.dirname(tkConfig)]  if tkConfig
 | 
			
		||||
    #TkLib_Config["tclConfig_paths"].each{|tclcfg, tkcfg|
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,9 +1021,9 @@ end
 | 
			
		|||
def find_tcl(tcllib, stubs, version, *opt_paths)
 | 
			
		||||
  if TclConfig_Info['MKMF_PARAMS']
 | 
			
		||||
    # already checked existence of tcl library based on tclConfig.sh
 | 
			
		||||
    $INCFLAGS << " " << TclConfig_Info['MKMF_PARAMS']['INCFLAGS']
 | 
			
		||||
    $LIBPATH |= TclConfig_Info['MKMF_PARAMS']['LIBPATH']
 | 
			
		||||
    $libs << " " << TclConfig_Info['MKMF_PARAMS']['libs']
 | 
			
		||||
    ($INCFLAGS ||= "") << " " << TclConfig_Info['MKMF_PARAMS']['INCFLAGS']
 | 
			
		||||
    $LIBPATH ||= []; $LIBPATH |= TclConfig_Info['MKMF_PARAMS']['LIBPATH']
 | 
			
		||||
    ($libs ||= "") << " " << TclConfig_Info['MKMF_PARAMS']['libs']
 | 
			
		||||
    return [true, nil, nil, nil]
 | 
			
		||||
  end
 | 
			
		||||
  # else, no available tclConfig.sh on the system
 | 
			
		||||
| 
						 | 
				
			
			@ -1081,9 +1082,9 @@ def find_tcl(tcllib, stubs, version, *opt_paths)
 | 
			
		|||
    paths = check_tcl_NG_path(default_paths)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  incflags = $INCFLAGS.dup
 | 
			
		||||
  libpath = $LIBPATH.dup
 | 
			
		||||
  libs_param = $libs.dup
 | 
			
		||||
  incflags = ($INCFLAGS ||= "").dup
 | 
			
		||||
  libpath = ($LIBPATH ||= []).dup
 | 
			
		||||
  libs_param = ($libs ||= "").dup
 | 
			
		||||
  tcllibs = nil
 | 
			
		||||
 | 
			
		||||
  exts = "(" + get_ext_list.join('|') + ")"
 | 
			
		||||
| 
						 | 
				
			
			@ -1164,9 +1165,9 @@ end
 | 
			
		|||
def find_tk(tklib, stubs, version, *opt_paths)
 | 
			
		||||
  if TkConfig_Info['MKMF_PARAMS']
 | 
			
		||||
    # already checked existence of tcl library based on tkConfig.sh
 | 
			
		||||
    $INCFLAGS << " " << TkConfig_Info['MKMF_PARAMS']['INCFLAGS']
 | 
			
		||||
    $LIBPATH |= TkConfig_Info['MKMF_PARAMS']['LIBPATH']
 | 
			
		||||
    $libs << " " << TkConfig_Info['MKMF_PARAMS']['libs']
 | 
			
		||||
    ($INCFLAGS ||= "") << " " << TkConfig_Info['MKMF_PARAMS']['INCFLAGS']
 | 
			
		||||
    $LIBPATH ||= []; $LIBPATH |= TkConfig_Info['MKMF_PARAMS']['LIBPATH']
 | 
			
		||||
    ($libs ||= "") << " " << TkConfig_Info['MKMF_PARAMS']['libs']
 | 
			
		||||
    return [true, nil, nil, nil]
 | 
			
		||||
  end
 | 
			
		||||
  # else, no available tkConfig.sh on the system
 | 
			
		||||
| 
						 | 
				
			
			@ -1221,9 +1222,9 @@ def find_tk(tklib, stubs, version, *opt_paths)
 | 
			
		|||
    paths = check_tk_NG_path(default_paths)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  incflags = $INCFLAGS.dup
 | 
			
		||||
  libpath = $LIBPATH.dup
 | 
			
		||||
  libs_param = $libs.dup
 | 
			
		||||
  incflags = ($INCFLAGS ||= "").dup
 | 
			
		||||
  libpath = ($LIBPATH ||= []).dup
 | 
			
		||||
  libs_param = ($libs ||= "").dup
 | 
			
		||||
  tcllibs = nil
 | 
			
		||||
 | 
			
		||||
  exts = "(" + get_ext_list.join('|') + ")"
 | 
			
		||||
| 
						 | 
				
			
			@ -1292,9 +1293,10 @@ def find_tcltk_library(tcllib, tklib, stubs, tclversion, tkversion,
 | 
			
		|||
    puts("Warning:: cannot find Tcl library. tcltklib will not be compiled (tcltklib is disabled on your Ruby. That is, Ruby/Tk will not work). Please check configure options.")
 | 
			
		||||
    return false
 | 
			
		||||
  else
 | 
			
		||||
    $LIBPATH |= [path] if path
 | 
			
		||||
    ($LIBPATH ||= []; $LIBPATH |= [path]) if path
 | 
			
		||||
    $libs = append_library($libs, lib) if lib
 | 
			
		||||
    $libs << " " << libs if libs
 | 
			
		||||
    ($libs ||= "") << " " << libs if libs
 | 
			
		||||
    $INCFLAGS ||= ""
 | 
			
		||||
    inc.each{|f| $INCFLAGS << " -I" << f}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1303,9 +1305,10 @@ def find_tcltk_library(tcllib, tklib, stubs, tclversion, tkversion,
 | 
			
		|||
    puts("Warning:: cannot find Tk library. tcltklib will not be compiled (tcltklib is disabled on your Ruby. That is, Ruby/Tk will not work). Please check configure options.")
 | 
			
		||||
    return false
 | 
			
		||||
  else
 | 
			
		||||
    $LIBPATH |= [path] if path
 | 
			
		||||
    ($LIBPATH ||= []; $LIBPATH |= [path]) if path
 | 
			
		||||
    $libs = append_library($libs, lib) if lib && !lib.empty?
 | 
			
		||||
    $libs << " " << libs if libs
 | 
			
		||||
    ($libs ||= "") << " " << libs if libs
 | 
			
		||||
    $INCFLAGS ||= ""
 | 
			
		||||
    inc.each{|f| $INCFLAGS << " -I" << f}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1387,7 +1390,7 @@ def find_tcltk_header(tclver, tkver)
 | 
			
		|||
        print(".") # progress
 | 
			
		||||
        inc_opt = " -I#{path.quote}"
 | 
			
		||||
        if try_cpp(code, inc_opt)
 | 
			
		||||
          $INCFLAGS << inc_opt
 | 
			
		||||
          ($INCFLAGS ||= "") << inc_opt
 | 
			
		||||
          true
 | 
			
		||||
        else
 | 
			
		||||
          false
 | 
			
		||||
| 
						 | 
				
			
			@ -1443,7 +1446,7 @@ def find_tcltk_header(tclver, tkver)
 | 
			
		|||
        print(".") # progress
 | 
			
		||||
        inc_opt = " -I#{path.quote}"
 | 
			
		||||
        if try_cpp(code, inc_opt)
 | 
			
		||||
          $INCFLAGS << inc_opt
 | 
			
		||||
          ($INCFLAGS ||= "") << inc_opt
 | 
			
		||||
          true
 | 
			
		||||
        else
 | 
			
		||||
          false
 | 
			
		||||
| 
						 | 
				
			
			@ -1459,20 +1462,20 @@ end
 | 
			
		|||
 | 
			
		||||
def setup_for_macosx_framework(tclver, tkver)
 | 
			
		||||
  # use framework, but no tclConfig.sh
 | 
			
		||||
  unless $LDFLAGS.include?('-framework')
 | 
			
		||||
    $LDFLAGS << ' -framework Tk -framework Tcl'
 | 
			
		||||
  unless $LDFLAGS && $LDFLAGS.include?('-framework')
 | 
			
		||||
    ($LDFLAGS ||= "") << ' -framework Tk -framework Tcl'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if TkLib_Config["tcl-framework-header"]
 | 
			
		||||
    TclConfig_Info['TCL_INCLUDE_SPEC'] <<
 | 
			
		||||
      "-I#{TkLib_Config["tcl-framework-header"].quote} "
 | 
			
		||||
    (TclConfig_Info['TCL_INCLUDE_SPEC'] ||= "") <<
 | 
			
		||||
      " -I#{TkLib_Config["tcl-framework-header"].quote} "
 | 
			
		||||
  else
 | 
			
		||||
    TclConfig_Info['TCL_INCLUDE_SPEC'] = ""
 | 
			
		||||
 | 
			
		||||
    tcl_base = File.join(TkLib_Config["tcltk-framework"], 'Tcl.framework')
 | 
			
		||||
    if tclver
 | 
			
		||||
      TclConfig_Info['TCL_INCLUDE_SPEC'] <<
 | 
			
		||||
        "-I#{File.join(tcl_base, 'Versions', tclver, 'Headers').quote} "
 | 
			
		||||
        " -I#{File.join(tcl_base, 'Versions', tclver, 'Headers').quote} "
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    TclConfig_Info['TCL_INCLUDE_SPEC'] << File.join(tcl_base, 'Headers')
 | 
			
		||||
| 
						 | 
				
			
			@ -1486,14 +1489,14 @@ def setup_for_macosx_framework(tclver, tkver)
 | 
			
		|||
 | 
			
		||||
  if TkLib_Config["tk-framework-header"]
 | 
			
		||||
    TkConfig_Info['TK_INCLUDE_SPEC'] =
 | 
			
		||||
      "-I#{TkLib_Config["tk-framework-header"].quote} "
 | 
			
		||||
      " -I#{TkLib_Config["tk-framework-header"].quote} "
 | 
			
		||||
  else
 | 
			
		||||
    TkConfig_Info['TK_INCLUDE_SPEC'] = ""
 | 
			
		||||
 | 
			
		||||
    tk_base  = File.join(TkLib_Config["tcltk-framework"], 'Tk.framework')
 | 
			
		||||
    if tkver
 | 
			
		||||
      TkConfig_Info['TK_INCLUDE_SPEC'] <<
 | 
			
		||||
        "-I#{File.join(tk_base, 'Versions', tkver, 'Headers').quote} "
 | 
			
		||||
        " -I#{File.join(tk_base, 'Versions', tkver, 'Headers').quote} "
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    TkConfig_Info['TK_INCLUDE_SPEC'] << File.join(tk_base, 'Headers')
 | 
			
		||||
| 
						 | 
				
			
			@ -1540,7 +1543,7 @@ def search_X_libraries
 | 
			
		|||
 | 
			
		||||
  if TkConfig_Info['TK_XINCLUDES'] &&
 | 
			
		||||
      !TkConfig_Info['TK_XINCLUDES'].strip.empty?
 | 
			
		||||
    $INCFLAGS << " " << TkConfig_Info['TK_XINCLUDES'].strip
 | 
			
		||||
    ($INCFLAGS ||= "") << " " << TkConfig_Info['TK_XINCLUDES'].strip
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if use_X
 | 
			
		||||
| 
						 | 
				
			
			@ -1552,7 +1555,7 @@ def search_X_libraries
 | 
			
		|||
      if use_tkConfig &&
 | 
			
		||||
          TkConfig_Info['TK_XLIBSW'] && !TkConfig_Info['TK_XLIBSW'].strip.empty?
 | 
			
		||||
        puts("But, try to use TK_XLIBSW information (believe tkCOnfig.sh).")
 | 
			
		||||
        $libs << " " << TkConfig_Info['TK_XLIBSW'] << " "
 | 
			
		||||
        ($libs ||= "") << " " << TkConfig_Info['TK_XLIBSW'] << " "
 | 
			
		||||
      else
 | 
			
		||||
        puts("So, can't make tcltklib.so which is required by Ruby/Tk.")
 | 
			
		||||
        exit
 | 
			
		||||
| 
						 | 
				
			
			@ -1654,6 +1657,8 @@ EOF
 | 
			
		|||
 | 
			
		||||
  # check pthread mode
 | 
			
		||||
  if (TkLib_Config["ruby_with_thread"])
 | 
			
		||||
    $CPPFLAGS ||= ""
 | 
			
		||||
 | 
			
		||||
    # ruby -> enable
 | 
			
		||||
    unless tcl_enable_thread
 | 
			
		||||
      # ruby -> enable && tcl -> disable
 | 
			
		||||
| 
						 | 
				
			
			@ -1760,6 +1765,7 @@ unless is_win32?
 | 
			
		|||
  have_library("m", "log", "math.h")
 | 
			
		||||
  print("\n") # progress
 | 
			
		||||
end
 | 
			
		||||
$CPPFLAGS ||= ""
 | 
			
		||||
$CPPFLAGS += ' -D_WIN32' if /cygwin/ =~ RUBY_PLATFORM
 | 
			
		||||
 | 
			
		||||
# Does ruby have nativethread ?
 | 
			
		||||
| 
						 | 
				
			
			@ -1778,15 +1784,15 @@ if TkLib_Config["tcl-build-dir"]
 | 
			
		|||
  puts("use Tcl build (pre-install) dir \"#{TkLib_Config["tcl-build-dir"]}\"")
 | 
			
		||||
  TkLib_Config["tcl-build-dir"] = File.expand_path(TkLib_Config["tcl-build-dir"])
 | 
			
		||||
  base = File.dirname(TkLib_Config["tcl-build-dir"])
 | 
			
		||||
  $INCFLAGS << " -I#{File.join(base, "generic").quote} -I#{TkLib_Config["tcl-build-dir"].quote}"
 | 
			
		||||
  $LIBPATH |= [TkLib_Config["tcl-build-dir"]]
 | 
			
		||||
  ($INCFLAGS ||= "") << " -I#{File.join(base, "generic").quote} -I#{TkLib_Config["tcl-build-dir"].quote}"
 | 
			
		||||
  $LIBPATH ||= []; $LIBPATH |= [TkLib_Config["tcl-build-dir"]]
 | 
			
		||||
end
 | 
			
		||||
if TkLib_Config["tk-build-dir"]
 | 
			
		||||
  puts("use Tk build (pre-install) dir \"#{TkLib_Config["tk-build-dir"]}\"")
 | 
			
		||||
  TkLib_Config["tk-build-dir"] = File.expand_path(TkLib_Config["tk-build-dir"])
 | 
			
		||||
  base = File.dirname(TkLib_Config["tk-build-dir"])
 | 
			
		||||
  $INCFLAGS << " -I#{File.join(base, "generic").quote} -I#{TkLib_Config["tk-build-dir"].quote}"
 | 
			
		||||
  $LIBPATH |= [TkLib_Config["tk-build-dir"]]
 | 
			
		||||
  ($INCFLAGS ||= "") << " -I#{File.join(base, "generic").quote} -I#{TkLib_Config["tk-build-dir"].quote}"
 | 
			
		||||
  $LIBPATH ||= []; $LIBPATH |= [TkLib_Config["tk-build-dir"]]
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# check requirement of Tcl/tk version
 | 
			
		||||
| 
						 | 
				
			
			@ -1861,7 +1867,7 @@ end
 | 
			
		|||
stubs = enable_config("tcltk-stubs") || with_config("tcltk-stubs")
 | 
			
		||||
if (TkLib_Config["tcltk-stubs"] = stubs)
 | 
			
		||||
  puts("Compile with Tcl/Tk stubs.")
 | 
			
		||||
  $CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS'
 | 
			
		||||
  $CPPFLAGS ||= ""; $CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS'
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
# directory configuration of Tcl/Tk libraries
 | 
			
		||||
| 
						 | 
				
			
			@ -1933,6 +1939,7 @@ TkLib_Config["checked_shlib_dirs"] =
 | 
			
		|||
  check_shlib_search_path(with_config('tk-shlib-search-path'))
 | 
			
		||||
 | 
			
		||||
# set TCL_DEFS and TK_DEFS
 | 
			
		||||
$CPPFLAGS ||= ""
 | 
			
		||||
# $CPPFLAGS += " #{TclConfig_Info['TCL_DEFS']}"
 | 
			
		||||
# $CPPFLAGS += " #{TkConfig_Info['TK_DEFS']}"
 | 
			
		||||
$CPPFLAGS += collect_tcltk_defs(TclConfig_Info['TCL_DEFS'], TkConfig_Info['TK_DEFS'])
 | 
			
		||||
| 
						 | 
				
			
			@ -1940,10 +1947,10 @@ $CPPFLAGS += collect_tcltk_defs(TclConfig_Info['TCL_DEFS'], TkConfig_Info['TK_DE
 | 
			
		|||
# MacOS X Frameworks?
 | 
			
		||||
if TkLib_Config["tcltk-framework"]
 | 
			
		||||
  puts("Use MacOS X Frameworks.")
 | 
			
		||||
  $LDFLAGS  << " -L#{TkLib_Config["tcl-build-dir"].quote} -Wl,-R#{TkLib_Config["tcl-build-dir"].quote}" if TkLib_Config["tcl-build-dir"]
 | 
			
		||||
  ($LDFLAGS ||= "") << " -L#{TkLib_Config["tcl-build-dir"].quote} -Wl,-R#{TkLib_Config["tcl-build-dir"].quote}" if TkLib_Config["tcl-build-dir"]
 | 
			
		||||
 | 
			
		||||
  if tcl_cfg_dir
 | 
			
		||||
    $INCFLAGS << ' ' << TclConfig_Info['TCL_INCLUDE_SPEC']
 | 
			
		||||
    ($INCFLAGS ||= "") << ' ' << TclConfig_Info['TCL_INCLUDE_SPEC']
 | 
			
		||||
    $LDFLAGS  << ' ' << TclConfig_Info['TCL_LIBS']
 | 
			
		||||
    if stubs
 | 
			
		||||
      if TkLib_Config["tcl-build-dir"] &&
 | 
			
		||||
| 
						 | 
				
			
			@ -1967,7 +1974,7 @@ if TkLib_Config["tcltk-framework"]
 | 
			
		|||
  $LDFLAGS  << " -L#{TkLib_Config["tk-build-dir"].quote} -Wl,-R#{TkLib_Config["tk-build-dir"].quote}" if TkLib_Config["tk-build-dir"]
 | 
			
		||||
 | 
			
		||||
  if tk_cfg_dir
 | 
			
		||||
    $INCFLAGS << ' ' << TkConfig_Info['TK_INCLUDE_SPEC']
 | 
			
		||||
    ($INCFLAGS ||= "") << ' ' << TkConfig_Info['TK_INCLUDE_SPEC']
 | 
			
		||||
    $LDFLAGS  << ' ' << TkConfig_Info['TK_LIBS']
 | 
			
		||||
    if stubs
 | 
			
		||||
      if TkLib_Config["tk-build-dir"] &&
 | 
			
		||||
| 
						 | 
				
			
			@ -2011,6 +2018,7 @@ if (TkLib_Config["tcltk-framework"] ||
 | 
			
		|||
  $INSTALLFILES << ["lib/tkextlib/SUPPORT_STATUS", "$(RUBYLIBDIR)", "lib"]
 | 
			
		||||
 | 
			
		||||
  # create
 | 
			
		||||
  $CPPFLAGS ||= ""
 | 
			
		||||
  $CPPFLAGS << %[ -DRUBY_VERSION=\\"#{RUBY_VERSION}\\"]
 | 
			
		||||
  $CPPFLAGS << %[ -DRUBY_RELEASE_DATE=\\"#{RUBY_RELEASE_DATE}\\"]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue