summaryrefslogtreecommitdiffstats
path: root/macosx/README
diff options
context:
space:
mode:
authorculler <culler>2017-11-27 22:35:56 (GMT)
committerculler <culler>2017-11-27 22:35:56 (GMT)
commite9a4d77a4ad230e3de06e853df233163bc10944b (patch)
tree4c23f7d3c46a681a2a3cfc6175eb32ff76d4137c /macosx/README
parentc7c7d22777da93312e8351f289c0eae3253889c7 (diff)
parent18f5785d52c173bb4acf4b346ed375bd31cc83e3 (diff)
downloadtk-e9a4d77a4ad230e3de06e853df233163bc10944b.zip
tk-e9a4d77a4ad230e3de06e853df233163bc10944b.tar.gz
tk-e9a4d77a4ad230e3de06e853df233163bc10944b.tar.bz2
Merge byebye-leopard into core-8-6-branch. Removes conditional code for OS X 10.5.
Diffstat (limited to 'macosx/README')
-rw-r--r--macosx/README39
1 files changed, 17 insertions, 22 deletions
diff --git a/macosx/README b/macosx/README
index 13b5e66..2822968 100644
--- a/macosx/README
+++ b/macosx/README
@@ -32,7 +32,7 @@ available as an optional or default install on recent macOS).
TkAqua and TkX11 can be distinguished at runtime via [tk windowingsystem].
- At a minimum, macOS 10.3 is required to run Tcl and TkX11.
-TkAqua requires macOS 10.5 or later (starting with the Cocoa-based Tk 8.5.7).
+TkAqua requires macOS 10.6 or later.
- Unless weak-linking is used, Tcl/Tk built on macOS 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
@@ -62,8 +62,7 @@ the Resources/Scripts directory of the framework.
- [load]able binary extensions can linked as either ordinary shared libraries
(.dylib) or as MachO bundles (since 8.4.10/8.5a3); bundles have the advantage
that they are [load]ed more efficiently from a tcl VFS (no temporary copy to the
-native filesystem required), and prior to macOS 10.5, only bundles can be
-[unload]ed.
+native filesystem required).
- The 'deploy' target of macosx/GNUmakefile installs the html manpages into the
standard documentation location in the Tcl/Tk frameworks:
@@ -215,11 +214,6 @@ purple #800080
brown #996633
clear systemTransparent
-- The Cocoa-based TkAqua can be distinguished from the older Carbon-based
-version via the [winfo server .] command, example output on macOS 10.5.7:
- Cocoa-based: CG409.3 Apple AppKit GC 949.46 macOS 1057
- Carbon-based: QD10R30 Apple 1057
-
- If you want to use Remote Debugging with Xcode, you need to set the
environment variable XCNOSTDIN to 1 in the Executable editor for Wish. That will
cause us to force closing stdin & stdout. Otherwise, given how Xcode launches
@@ -229,13 +223,12 @@ Wish remotely, they will be left open and then Wish & gdb will fight for stdin.
3. Building Tcl/Tk on macOS
------------------------------
-- At least macOS 10.3 is required to build Tcl and TkX11, and macOS 10.5
-is required to build TkAqua.
-Apple's Xcode Developer Tools need to be installed (only the most recent version
-matching your OS release is supported), the Xcode installer is available on Mac
-OS X install media or may be present in /Applications/Installers on Macs that
-came with OS X preinstalled. The most recent version can always be downloaded
-from the ADC website http://connect.apple.com (free ADC membership required).
+- At least macOS 10.3 is required to build Tcl and TkX11, and macOS 10.6
+is required to build TkAqua. The XCode application provides everything
+needed to build Tk, but it is not necessary to install the full XCode.
+It suffices to install the Command Line Tools package, which can be done
+by running the command:
+xcode-selecct --install
- Tcl/Tk are most easily built as macOS frameworks via GNUmakefile in
tcl/macosx and tk/macosx (see below for details), but can also be built with the
@@ -247,8 +240,9 @@ The macOS specific configure flags are --enable-aqua, --enable-framework and
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 the Xcode IDE via the projects in
-tk/macosx, take care to use the project matching your DevTools and OS version:
+- It was once possible to build with the Xcode IDE via the projects in
+tk/macosx, but this has not been tested recently. Take care to use the
+project matching your DevTools and OS version:
Tk.xcode: for Xcode 3.1 on 10.5
Tk.xcodeproj: for Xcode 3.2 on 10.6
These have the following targets:
@@ -303,9 +297,9 @@ above, they will be [load]able by universal as well as thin binaries of Tcl.
- To enable weak-linking, set the MACOSX_DEPLOYMENT_TARGET environment variable
to the minimal OS version the binaries should be able to run on, e.g:
- export MACOSX_DEPLOYMENT_TARGET=10.4
+ export MACOSX_DEPLOYMENT_TARGET=10.6
This requires at least gcc 3.1; with gcc 4 or later, set/add to CFLAGS instead:
- export CFLAGS="-mmacosx-version-min=10.4"
+ export CFLAGS="-mmacosx-version-min=10.6"
Support for weak-linking was added with 8.4.14/8.5a5.
Detailed Instructions for building with macosx/GNUmakefile
@@ -458,9 +452,10 @@ In order to carry out the job of managing autorelease pools, which
would normally be handled by the [NSApp run] method, a private
NSAUtoreleasePool* property is added to the TkApplication subclass of
NSApplication. The TkpInit function calls [NSApp _setup] which
-initializes this property by creating an NSAutoreleasePool. A bit
-later on, TkpInit calls [NSAPP _setupEventLoop] which in turn calls
-the [NSApp finishLaunching] method.
+initializes this property by creating an NSAutoreleasePool prior to
+calling [NSApp finishLaunching]. This mimics the behavior of the
+[NSApp run] method, which calls [NSApp finishLaunching] just before
+starting the event loop.
Since the CheckProc function gets called for every Tk event, it is an
appropriate place to drain the main NSAutoreleasePool and replace it