summaryrefslogtreecommitdiff
path: root/ext/tcltklib
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-05-23 07:27:37 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-05-23 07:27:37 +0000
commit4e8ec8f2fab63ddc6f873747aa3fc48b943e5c54 (patch)
treebd482b18b5cdd2115c565d37abeb5898434b000c /ext/tcltklib
parenta2d4a3a9be4bea1c42a2b2f0a804d2b24dd23630 (diff)
* ext/tcltklib/extconf.rb: Framework support on MacOS X Tiger.
* ext/tcltklib/README.1st: add description of Framework support options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tcltklib')
-rw-r--r--ext/tcltklib/README.1st19
-rw-r--r--ext/tcltklib/extconf.rb54
2 files changed, 61 insertions, 12 deletions
diff --git a/ext/tcltklib/README.1st b/ext/tcltklib/README.1st
index 4d5cd93283..5d1da48a45 100644
--- a/ext/tcltklib/README.1st
+++ b/ext/tcltklib/README.1st
@@ -22,7 +22,24 @@ some or all of the following options.
--with-tcl-lib=<dir> the directry containts 'libtcl<version>.so'
--with-tk-lib=<dir> the directry containts 'libtk<version>.so'
- --enable-mac-tcltk-framework (Mac OSX only) use Tcl/Tk framework
+ --enable-mac-tcltk-framework (MacOS X) use Tcl/Tk framework
+ (Obsolete. Please use '--enable-tcltk-framework'.)
+
+ --enable-tcltk-framework use Tcl/Tk framework
+
+ --with-tcltk-framework=<dir> the directory containts Tcl/Tk framework;
+ "<dir>/Tcl.framework" and "<dir>/Tk.framework".
+ When this option is given, it is assumed that
+ --enable-tcltk-framework option is given also.
+
+ --with-tcl-framework-header=<dir>
+ Tcl framework headers directory
+ (e.g. "/Library/Frameworks/Tcl.framework/Headers")
+
+ --with-tk-framework-header=<dir>
+ Tk framework headers directory
+ (e.g. "/Library/Frameworks/Tk.framework/Headers")
+
If you forgot to give the options when do 'configure' on toplevel
directry of Ruby sources, please try something like as the followings.
diff --git a/ext/tcltklib/extconf.rb b/ext/tcltklib/extconf.rb
index 00aa2ca620..d498e25138 100644
--- a/ext/tcltklib/extconf.rb
+++ b/ext/tcltklib/extconf.rb
@@ -3,13 +3,34 @@
require 'mkmf'
is_win32 = (/mswin32|mingw|cygwin|bccwin32/ =~ RUBY_PLATFORM)
-is_macosx = (/darwin/ =~ RUBY_PLATFORM)
+#is_macosx = (/darwin/ =~ RUBY_PLATFORM)
-mac_need_framework =
- is_macosx &&
- enable_config("mac-tcltk-framework", false) &&
- FileTest.directory?("/Library/Frameworks/Tcl.framework/") &&
- FileTest.directory?("/Library/Frameworks/Tk.framework/")
+def find_framework(tcl_hdr, tk_hdr)
+ if framework_dir = with_config("tcltk-framework")
+ paths = [framework_dir]
+ else
+ unless tcl_hdr || tk_hdr ||
+ enable_config("tcltk-framework", false) ||
+ enable_config("mac-tcltk-framework", false)
+ return false
+ end
+ paths = ["/Library/Frameworks", "/System/Library/Frameworks"]
+ end
+
+ checking_for('Tcl/Tk Framework') {
+ paths.find{|dir|
+ dir.strip!
+ dir.chomp!('/')
+ (tcl_hdr || FileTest.directory?(dir + "/Tcl.framework/") ) &&
+ (tk_hdr || FileTest.directory?(dir + "/Tk.framework/") )
+ }
+ }
+end
+
+tcl_framework_header = with_config("tcl-framework-header")
+tk_framework_header = with_config("tk-framework-header")
+
+tcltk_framework = find_framework(tcl_framework_header, tk_framework_header)
unless is_win32
have_library("nsl", "t_open")
@@ -153,8 +174,8 @@ def pthread_check()
** We cannot check the consistency of pthread support between Ruby
** and Tcl/Tk library on your environment (do coss-compile?). If the
** consistency is not kept, some memory troubles (e.g. "Hang-up" or
-** "Segmentation Fault") may bother you. We strongly you to check the
-** consistency by your own hand.
+** "Segmentation Fault") may bother you. We strongly recommend you to
+** check the consistency by your own hand.
**
*****************************************************************************
')
@@ -249,7 +270,7 @@ EOF
end
end
-if mac_need_framework ||
+if tcltk_framework ||
(have_header("tcl.h") && have_header("tk.h") &&
(is_win32 || find_library("X11", "XOpenDisplay",
"/usr/X11/lib", "/usr/lib/X11", "/usr/X11R6/lib", "/usr/openwin/lib")) &&
@@ -258,8 +279,19 @@ if mac_need_framework ||
$CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS' if stubs
$CPPFLAGS += ' -D_WIN32' if /cygwin/ =~ RUBY_PLATFORM
- if mac_need_framework
- $CPPFLAGS += ' -I/Library/Frameworks/Tcl.framework/headers -I/Library/Frameworks/Tk.framework/Headers'
+ if tcltk_framework
+ if tcl_framework_header
+ $CPPFLAGS += " -I#{tcl_framework_header}"
+ else
+ $CPPFLAGS += " -I#{tcltk_framework}/Tcl.framework/Headers"
+ end
+
+ if tk_framework_header
+ $CPPFLAGS += " -I#{tk_framework_header}"
+ else
+ $CPPFLAGS += " -I#{tcltk_framework}/Tk.framework/Headers"
+ end
+
$LDFLAGS += ' -framework Tk -framework Tcl'
end