summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/tk/extconf.rb26
-rw-r--r--lib/mkmf.rb2
3 files changed, 21 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 7534638f5f..ea01bf5cf5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
-Thu May 17 10:34:35 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu May 17 10:37:07 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/mkmf.rb (MakeMakefile#have_framework): combine -framework option
+ and its argument with an equal sign not to be separated in merge_libs.
+
+ * ext/tk/extconf.rb: ditto.
* ext/extmk.rb: EXTLDFLAGS also needs to be passed.
diff --git a/ext/tk/extconf.rb b/ext/tk/extconf.rb
index be7ebb2616..e7d12ebf9b 100644
--- a/ext/tk/extconf.rb
+++ b/ext/tk/extconf.rb
@@ -1463,7 +1463,7 @@ end
def setup_for_macosx_framework(tclver, tkver)
# use framework, but no tclConfig.sh
unless $LDFLAGS && $LDFLAGS.include?('-framework')
- ($LDFLAGS ||= "") << ' -framework Tk -framework Tcl'
+ ($LDFLAGS ||= "") << ' -framework=Tk -framework=Tcl'
end
if TkLib_Config["tcl-framework-header"]
@@ -1947,53 +1947,55 @@ 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"]
+ libs = ''
if tcl_cfg_dir
TclConfig_Info['TCL_LIBS'] ||= ""
($INCFLAGS ||= "") << ' ' << TclConfig_Info['TCL_INCLUDE_SPEC']
- $LDFLAGS << ' ' << TclConfig_Info['TCL_LIBS']
+ libs << ' ' << TclConfig_Info['TCL_LIBS']
if stubs
if TkLib_Config["tcl-build-dir"] &&
TclConfig_Info['TCL_BUILD_STUB_LIB_SPEC'] &&
!TclConfig_Info['TCL_BUILD_STUB_LIB_SPEC'].strip.empty?
- $LDFLAGS << ' ' << TclConfig_Info['TCL_BUILD_STUB_LIB_SPEC']
+ libs << ' ' << TclConfig_Info['TCL_BUILD_STUB_LIB_SPEC']
else
- $LDFLAGS << ' ' << TclConfig_Info['TCL_STUB_LIB_SPEC']
+ libs << ' ' << TclConfig_Info['TCL_STUB_LIB_SPEC']
end
else
if TkLib_Config["tcl-build-dir"] &&
TclConfig_Info['TCL_BUILD_LIB_SPEC'] &&
!TclConfig_Info['TCL_BUILD_LIB_SPEC'].strip.empty?
- $LDFLAGS << ' ' << TclConfig_Info['TCL_BUILD_LIB_SPEC']
+ libs << ' ' << TclConfig_Info['TCL_BUILD_LIB_SPEC']
else
- $LDFLAGS << ' ' << TclConfig_Info['TCL_LIB_SPEC']
+ libs << ' ' << TclConfig_Info['TCL_LIB_SPEC']
end
end
end
- $LDFLAGS << " -L#{TkLib_Config["tk-build-dir"].quote} -Wl,-R#{TkLib_Config["tk-build-dir"].quote}" if TkLib_Config["tk-build-dir"]
+ libs << " -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
TkConfig_Info['TK_LIBS'] ||= ""
($INCFLAGS ||= "") << ' ' << TkConfig_Info['TK_INCLUDE_SPEC']
- $LDFLAGS << ' ' << TkConfig_Info['TK_LIBS']
+ libs << ' ' << TkConfig_Info['TK_LIBS']
if stubs
if TkLib_Config["tk-build-dir"] &&
TclConfig_Info['TK_BUILD_STUB_LIB_SPEC'] &&
!TclConfig_Info['TK_BUILD_STUB_LIB_SPEC'].strip.empty?
- $LDFLAGS << ' ' << TkConfig_Info['TK_BUILD_STUB_LIB_SPEC']
+ libs << ' ' << TkConfig_Info['TK_BUILD_STUB_LIB_SPEC']
else
- $LDFLAGS << ' ' << TkConfig_Info['TK_STUB_LIB_SPEC']
+ libs << ' ' << TkConfig_Info['TK_STUB_LIB_SPEC']
end
else
if TkLib_Config["tk-build-dir"] &&
TclConfig_Info['TK_BUILD_LIB_SPEC'] &&
!TclConfig_Info['TK_BUILD_LIB_SPEC'].strip.empty?
- $LDFLAGS << ' ' << TkConfig_Info['TK_BUILD_LIB_SPEC']
+ libs << ' ' << TkConfig_Info['TK_BUILD_LIB_SPEC']
else
- $LDFLAGS << ' ' << TkConfig_Info['TK_LIB_SPEC']
+ libs << ' ' << TkConfig_Info['TK_LIB_SPEC']
end
end
end
+ $LDFLAGS << ' ' << libs.gsub(/((?:\A|\s)-framework)\s/, '\1=') << ' -ltk -ltcl'
setup_for_macosx_framework(tclver, tkver) if tcl_cfg_dir && tk_cfg_dir
end
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 05c3bd8972..d378d50fbd 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1010,7 +1010,7 @@ SRC
def have_framework(fw, &b)
checking_for fw do
src = cpp_include("#{fw}/#{fw}.h") << "\n" "int main(void){return 0;}"
- if try_link(src, opt = "-ObjC -framework #{fw}", &b)
+ if try_link(src, opt = "-ObjC -framework=#{fw}", &b)
$defs.push(format("-DHAVE_FRAMEWORK_%s", fw.tr_cpp))
$LDFLAGS << " " << opt
true