summaryrefslogtreecommitdiffstats
path: root/macosx/README
diff options
context:
space:
mode:
authordas <das>2006-07-20 06:27:34 (GMT)
committerdas <das>2006-07-20 06:27:34 (GMT)
commit472d82cf26c06e8d849e9ff1ed4af3f0a2154ddc (patch)
tree9bccc02d5eafea499475873df3d395542f54fa85 /macosx/README
parente673c7b95612047bc886329eda3d26e3e7807c9b (diff)
downloadtk-472d82cf26c06e8d849e9ff1ed4af3f0a2154ddc.zip
tk-472d82cf26c06e8d849e9ff1ed4af3f0a2154ddc.tar.gz
tk-472d82cf26c06e8d849e9ff1ed4af3f0a2154ddc.tar.bz2
* macosx/tkMacOSXWm.c (WmAttributesCmd, WmIconbitmapCmd): add support
for weakly importing symbols not available on OSX 10.2 or 10.3, enables binaires built on later OSX versions to run on earlier ones. * macosx/README: document how to enable weak-linking; cleanup. * unix/configure.in: enforce requirement of OSX 10.2 for TkAqua; move * unix/tcl.m4: Darwin specific checks & defines that are only relevant to the tcl build out of tcl.m4; restrict framework option to Darwin; cleanup quoting. * unix/configure: autoconf-2.13 * macosx/tkMacOSXKeyEvent.c: ifdef out diagnostic messages to stderr. * macosx/tkMacOSXEvent.h: standardize MAC_OS_X_VERSION_MAX_ALLOWED * macosx/tkMacOSXMenu.c: checks per QA1316, ensure define can be * macosx/tkMacOSXMenubutton.c: overriden on command line (from default * macosx/tkMacOSXMenus.c: of current OS version). * macosx/tkMacOSXMouseEvent.c: * macosx/tkMacOSXWm.c:
Diffstat (limited to 'macosx/README')
-rw-r--r--macosx/README37
1 files changed, 25 insertions, 12 deletions
diff --git a/macosx/README b/macosx/README
index 8fad1a0..ff002ca 100644
--- a/macosx/README
+++ b/macosx/README
@@ -1,7 +1,7 @@
Tcl/Tk Mac OS X README
----------------------
-RCS: @(#) $Id: README,v 1.6.2.10 2005/11/27 06:44:16 das Exp $
+RCS: @(#) $Id: README,v 1.6.2.11 2006/07/20 06:27:34 das Exp $
This is the README file for the Mac OS X/Darwin version of Tcl/Tk.
@@ -43,9 +43,12 @@ TkAqua and TkX11 can be distinguished at runtime via [tk windowingsystem].
required to run TkAqua. However OS X 10.3 or higher is recommended (certain
[file] operations behave incorrectly on earlier releases).
-- Tcl/Tk built on Mac OS X 10.x will not run on 10.y for y < x, on the other
-hand Tcl/Tk built on 10.y will run on 10.x for y < x (but without any of the
-fixes and optimizations that would be available in a binary built on 10.x).
+- Unless weak-linking is used, Tcl/Tk built on Mac OS X 10.x will not run on
+10.y with y < x; on the other hand Tcl/Tk built on 10.y will always run on 10.x
+with y <= x (but without any of the fixes and optimizations that would be
+available in a binary built on 10.x).
+Weak-linking is available on OS X 10.2 or later, it additionally allows Tcl/Tk
+built on 10.x to run on any 10.y with x > y >= z (for a chosen z >= 2).
- Wish checks the Resources/Scripts directory in its application bundle for a
file called AppMain.tcl, if found it is used as the startup script and the
@@ -151,11 +154,10 @@ tcl/macosx and tk/macosx (see below for details), but can also be built with the
standard unix configure and make buildsystem in tcl/unix resp. tk/unix as on any
other unix platform (indeed, the GNUmakefiles are just wrappers around the unix
buildsystem).
-The Mac OS X specifc configure flags are --enable-aqua, --enable-framework and
+The Mac OS X specific configure flags are --enable-aqua, --enable-framework and
--disable-corefoundation (which disables CF and notably reverts to the standard
-select based notifier, you will only need this if your require use of naked fork
-(i.e. not followed by execve) in an unthreaded core). Note that --enable-aqua is
-incompatible with --disable-corefoundation (for both Tcl and Tk configure).
+select based notifier). Note that --enable-aqua is incompatible with
+--disable-corefoundation (for both Tcl and Tk configure).
- It is also possible to build with Apple's IDE via the tk/macosx/Wish.pbproj
project, this simply calls through to the tk/macosx/GNUMakefile. It requires a
@@ -165,7 +167,7 @@ build of the tcl/macosx/Tcl.pbproj project.
export CFLAGS="-arch ppc -arch i386 \
-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"
This requires Mac OS X 10.4 and Xcode 2.2 (_not_ Xcode 2.1) and will work on
-any of the architectures (on i386 DTKs, the -isysroot is not required).
+any of the architectures (on intel Macs, the -isysroot is not required).
Note that it is not possible to configure correctly if the current architecture
is not present in CFLAGS (i.e. -arch `arch` must always be there).
Universal builds of Tk TEA extensions are also possible with CFLAGS set as
@@ -175,7 +177,18 @@ TkX11 can be built with -arch ppc64 as the corresponding GUI libraries are not
available for 64bit at present. However, linking a universal 'ppc i386' Tk
binary against a universal 'ppc ppc64 i386' Tcl binary works just fine.
The Tk configure script automatically removes '-arch ppc64' from CFLAGS to
-facilitate universal building of both Tcl and Tk with the same CFLAGS setting.
+facilitate universal building of both Tcl and Tk with the same CFLAGS setting;
+the same happens with configure in Tk extensions based on TEA 3.5 or later.
+
+- To enable weak-linking, set the MACOSX_DEPLOYMENT_TARGET environment variable
+to the minimal OS version (>= 10.2) the binaries should be able to run on, e.g:
+ export MACOSX_DEPLOYMENT_TARGET=10.2
+This requires Mac OS X 10.2 and gcc 3.1; if you have gcc 4 or later you can set
+CFLAGS instead:
+ export CFLAGS="-mmacosx-version-min=10.2"
+The Wish.xcodeproj is setup to produce binaires that can run on 10.2 or later,
+except for the 'ReleaseUniversal'configuration, where they require 10.4.
+Support for weak-linking was added to the code for 8.4.14/8.5a5.
Detailed Instructions for building with macosx/GNUmakefile
----------------------------------------------------------
@@ -216,8 +229,8 @@ instead by passing an INSTALL_ROOT argument to make:
- The default Makefile targets will build _both_ debug and optimized versions of
the Tcl and Tk frameworks with the standard convention of naming the debug
library Tcl.framework/Tcl_debug resp. Tk.framework/Tk_debug.
-This allows you to dynamically link to the debug libraries at runtime by setting
- setenv DYLD_IMAGE_SUFFIX _debug
+This allows switching to the debug libraries at runtime by setting
+ export DYLD_IMAGE_SUFFIX=_debug
(c.f. man dyld for more details)
If you only want to build and install the debug or optimized build, use the