os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/macosx/README
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
Tcl Mac OS X README
sl@0
     2
-------------------
sl@0
     3
sl@0
     4
RCS: @(#) $Id: README,v 1.1.2.9 2007/04/29 02:21:33 das Exp $
sl@0
     5
sl@0
     6
This is the README file for the Mac OS X/Darwin version of Tcl.
sl@0
     7
sl@0
     8
sl@0
     9
1. Where to go for support
sl@0
    10
--------------------------
sl@0
    11
sl@0
    12
- The tcl-mac mailing list on sourceforge is the best place to ask questions
sl@0
    13
specific to Tcl & Tk on Mac OS X:
sl@0
    14
	http://lists.sourceforge.net/lists/listinfo/tcl-mac
sl@0
    15
(this page also has a link to searchable archives of the list, please check them
sl@0
    16
before asking on the list, many questions have already been answered).
sl@0
    17
sl@0
    18
- For general Tcl/Tk questions, the newsgroup comp.lang.tcl is your best bet:
sl@0
    19
	http://groups.google.com/group/comp.lang.tcl/
sl@0
    20
sl@0
    21
- The Tcl'ers Wiki also has many pages dealing with Tcl & Tk on Mac OS X, see
sl@0
    22
	http://wiki.tcl.tk/references/3753!
sl@0
    23
	http://wiki.tcl.tk/references/8361!
sl@0
    24
sl@0
    25
- Please report bugs with Tcl or Tk on Mac OS X to the sourceforge bug trackers:
sl@0
    26
	Tcl: http://sf.net/tracker/?func=add&group_id=10894&atid=110894
sl@0
    27
	Tk:  http://sf.net/tracker/?func=add&group_id=12997&atid=112997
sl@0
    28
please make sure that your report Tk specific bugs to the tktoolkit project bug
sl@0
    29
tracker rather than the tcl project bug tracker.
sl@0
    30
Mac OS X specific bugs should usually be assigned to 'das' or 'wolfsuit'.
sl@0
    31
sl@0
    32
sl@0
    33
2. Using Tcl on Mac OS X
sl@0
    34
------------------------
sl@0
    35
sl@0
    36
- At a minimum, Mac OS X 10.1 is required to run Tcl, but OS X 10.3 or higher is
sl@0
    37
recommended (certain [file] operations behave incorrectly on earlier releases).
sl@0
    38
sl@0
    39
- Unless weak-linking is used, Tcl built on Mac OS X 10.x will not run on 10.y
sl@0
    40
with y < x; on the other hand Tcl built on 10.y will always run on 10.x with
sl@0
    41
y <= x (but without any of the fixes and optimizations that would be available
sl@0
    42
in a binary built on 10.x).
sl@0
    43
Weak-linking is available on OS X 10.2 or later, it additionally allows Tcl
sl@0
    44
built on 10.x to run on any 10.y with x > y >= z (for a chosen z >= 2).
sl@0
    45
sl@0
    46
- Tcl extensions can be installed in any of:
sl@0
    47
	$HOME/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl
sl@0
    48
	$HOME/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks
sl@0
    49
	/System/Library/Frameworks (searched in that order).
sl@0
    50
Given a potential package directory $pkg, Tcl on OSX checks for the file
sl@0
    51
$pkg/Resources/Scripts/pkgIndex.tcl as well as the usual $pkg/pkgIndex.tcl.
sl@0
    52
This allows building extensions as frameworks with all script files contained in
sl@0
    53
the Resources/Scripts directory of the framework.
sl@0
    54
sl@0
    55
- [load]able binary extensions can linked as either ordinary shared libraries
sl@0
    56
(.dylib) or as MachO bundles (since 8.4.10/8.5a3); only bundles can be unloaded,
sl@0
    57
and bundles are also loaded more efficiently from VFS (no temporary copy to the
sl@0
    58
native filesystem required).
sl@0
    59
sl@0
    60
- The 'deploy' target of macosx/Makefile installs the html manpages into the
sl@0
    61
standard documentation location in the Tcl framework:
sl@0
    62
	Tcl.framework/Resources/Documentation/Reference/Tcl
sl@0
    63
No nroff manpages are installed by default by the Makefile.
sl@0
    64
sl@0
    65
- The Tcl framework can be installed in any of the system's standard
sl@0
    66
framework directories:
sl@0
    67
	$HOME/Library/Frameworks /Library/Frameworks
sl@0
    68
	/Network/Library/Frameworks /System/Library/Frameworks
sl@0
    69
sl@0
    70
sl@0
    71
3. Building Tcl on Mac OS X
sl@0
    72
---------------------------
sl@0
    73
sl@0
    74
- At least Mac OS X 10.1 is required to build Tcl, and Apple's Developer Tools
sl@0
    75
need to be installed (only the most recent version matching your OS release is
sl@0
    76
supported). The Developer Tools installer is available on Mac OS X retail disks
sl@0
    77
or is present in /Applications/Installers on Macs that came with OS X
sl@0
    78
preinstalled. The most recent version can be downloaded from the ADC website
sl@0
    79
http://connect.apple.com (after you register for free ADC membership).
sl@0
    80
sl@0
    81
- Tcl is most easily built as a Mac OS X framework via Makefile in tcl/macosx
sl@0
    82
(see below for details), but can also be built with the standard unix configure
sl@0
    83
and make buildsystem in tcl/unix as on any other unix platform (indeed, the
sl@0
    84
Makefile is just a wrapper around the unix buildsystem).
sl@0
    85
The Mac OS X specific configure flags are --enable-framework and
sl@0
    86
--disable-corefoundation (which disables CF and notably reverts to the standard
sl@0
    87
select based notifier).
sl@0
    88
sl@0
    89
- It is also possible to build with Apple's IDE via the tcl/macosx/Tcl.pbproj
sl@0
    90
project, this simply calls through to the tcl/macosx/Makefile.
sl@0
    91
sl@0
    92
- To build universal binaries, set CFLAGS as follows:
sl@0
    93
    export CFLAGS="-arch ppc -arch ppc64 -arch i386 -arch x86_64 \
sl@0
    94
	-isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"
sl@0
    95
This requires Mac OS X 10.4 and Xcode 2.4 (or Xcode 2.2 if -arch x86_64 is
sl@0
    96
omitted, but _not_ Xcode 2.1) and will work on any of the architectures (the
sl@0
    97
-isysroot flag is only required on PowerPC Tiger).
sl@0
    98
Note that configure requires CFLAGS to contain a least one architecture that can
sl@0
    99
be run on the build machine (i.e. ppc on G3/G4, ppc or ppc64 on G5, ppc or i386
sl@0
   100
on Core and ppc, i386 or x86_64 on Core2/Xeon).
sl@0
   101
Universal builds of Tcl TEA extensions are also possible with CFLAGS set as
sl@0
   102
above, they will be [load]able by universal as well as thin binaries of Tcl.
sl@0
   103
sl@0
   104
- To enable weak-linking, set the MACOSX_DEPLOYMENT_TARGET environment variable
sl@0
   105
to the minimal OS version (>= 10.2) the binaries should be able to run on, e.g:
sl@0
   106
    export MACOSX_DEPLOYMENT_TARGET=10.2
sl@0
   107
This requires Mac OS X 10.2 and gcc 3.1; if you have gcc 4 or later you can set
sl@0
   108
CFLAGS instead:
sl@0
   109
    export CFLAGS="-mmacosx-version-min=10.2"
sl@0
   110
Support for weak-linking was added to the code for 8.4.14/8.5a5.
sl@0
   111
sl@0
   112
Detailed Instructions for building with macosx/Makefile
sl@0
   113
-------------------------------------------------------
sl@0
   114
sl@0
   115
- Unpack the tcl source release archive.
sl@0
   116
sl@0
   117
- The following instructions assume the tcl source tree is named "tcl${ver}",
sl@0
   118
where ${ver} is a shell variable containing the tcl version number (for example
sl@0
   119
'8.4.12').
sl@0
   120
Setup the shell variable as follows:
sl@0
   121
	set ver="8.4.12" ;: if your shell is csh
sl@0
   122
	ver="8.4.12"	 ;: if your shell is sh
sl@0
   123
The source tree will be named this way only if you are building from a release
sl@0
   124
archive, if you are building from CVS, the version numbers will be missing; so
sl@0
   125
set ${ver} to the empty string instead:
sl@0
   126
	set ver=""	 ;: if your shell is csh
sl@0
   127
	ver=""		 ;: if your shell is sh
sl@0
   128
sl@0
   129
- The following steps will build Tcl from the Terminal, assuming you are located
sl@0
   130
in the directory containing the tcl source tree:
sl@0
   131
	make -C tcl${ver}/macosx
sl@0
   132
and the following will then install Tcl onto the root volume (admin password
sl@0
   133
required):
sl@0
   134
	sudo make -C tcl${ver}/macosx install
sl@0
   135
if you don't have the admin password, you can install into your home directory,
sl@0
   136
instead by passing an INSTALL_ROOT argument to make:
sl@0
   137
	make -C tcl${ver}/macosx install INSTALL_ROOT="${HOME}/"
sl@0
   138
sl@0
   139
- The default Makefile targets will build _both_ debug and optimized versions of
sl@0
   140
the Tcl framework with the standard convention of naming the debug library
sl@0
   141
Tcl.framework/Tcl_debug.
sl@0
   142
This allows switching to the debug libraries at runtime by setting
sl@0
   143
	export DYLD_IMAGE_SUFFIX=_debug
sl@0
   144
(c.f. man dyld for more details)
sl@0
   145
sl@0
   146
If you only want to build and install the debug or optimized build, use the
sl@0
   147
'develop' or 'deploy' target variants of the Makefiles, respectively.
sl@0
   148
For example, to build and install only the optimized versions:
sl@0
   149
	make -C tcl${ver}/macosx deploy
sl@0
   150
	sudo make -C tcl${ver}/macosx install-deploy