sl@0
|
1 |
Tcl UNIX README
|
sl@0
|
2 |
---------------
|
sl@0
|
3 |
|
sl@0
|
4 |
RCS: @(#) $Id: README,v 1.24.2.2 2005/12/03 00:35:44 das Exp $
|
sl@0
|
5 |
|
sl@0
|
6 |
This is the directory where you configure, compile, test, and install
|
sl@0
|
7 |
UNIX versions of Tcl. This directory also contains source files for Tcl
|
sl@0
|
8 |
that are specific to UNIX. Some of the files in this directory are
|
sl@0
|
9 |
used on the PC or Mac platform too, but they all depend on UNIX
|
sl@0
|
10 |
(POSIX/ANSI C) interfaces and some of them only make sense under UNIX.
|
sl@0
|
11 |
|
sl@0
|
12 |
Updated forms of the information found in this file is available at:
|
sl@0
|
13 |
http://www.tcl.tk/doc/howto/compile.html#unix
|
sl@0
|
14 |
|
sl@0
|
15 |
For information on platforms where Tcl is known to compile, along
|
sl@0
|
16 |
with any porting notes for getting it to work on those platforms, see:
|
sl@0
|
17 |
http://www.tcl.tk/software/tcltk/platforms.html
|
sl@0
|
18 |
|
sl@0
|
19 |
The rest of this file contains instructions on how to do this. The
|
sl@0
|
20 |
release should compile and run either "out of the box" or with trivial
|
sl@0
|
21 |
changes on any UNIX-like system that approximates POSIX, BSD, or System
|
sl@0
|
22 |
V. We know that it runs on workstations from Sun, H-P, DEC, IBM, and
|
sl@0
|
23 |
SGI, as well as PCs running Linux, BSDI, and SCO UNIX. To compile for
|
sl@0
|
24 |
a PC running Windows, see the README file in the directory ../win. To
|
sl@0
|
25 |
compile for Max OS X, see the README in the directory ../macosx. To
|
sl@0
|
26 |
compile for a classic Macintosh, see the README file in the directory ../mac.
|
sl@0
|
27 |
|
sl@0
|
28 |
How To Compile And Install Tcl:
|
sl@0
|
29 |
-------------------------------
|
sl@0
|
30 |
|
sl@0
|
31 |
(a) If you have already compiled Tcl once in this directory and are now
|
sl@0
|
32 |
preparing to compile again in the same directory but for a different
|
sl@0
|
33 |
platform, or if you have applied patches, type "make distclean" to
|
sl@0
|
34 |
discard all the configuration information computed previously.
|
sl@0
|
35 |
|
sl@0
|
36 |
(b) If you need to reconfigure because you changed any of the .in or
|
sl@0
|
37 |
.m4 files, you will need to run autoconf to create a new
|
sl@0
|
38 |
./configure script. Most users will NOT need to do this since
|
sl@0
|
39 |
a configure script is already provided.
|
sl@0
|
40 |
|
sl@0
|
41 |
(in the tcl/unix directory)
|
sl@0
|
42 |
autoconf
|
sl@0
|
43 |
|
sl@0
|
44 |
(c) Type "./configure". This runs a configuration script created by GNU
|
sl@0
|
45 |
autoconf, which configures Tcl for your system and creates a
|
sl@0
|
46 |
Makefile. The configure script allows you to customize the Tcl
|
sl@0
|
47 |
configuration for your site; for details on how you can do this,
|
sl@0
|
48 |
type "./configure -help" or refer to the autoconf documentation (not
|
sl@0
|
49 |
included here). Tcl's "configure" supports the following special
|
sl@0
|
50 |
switches in addition to the standard ones:
|
sl@0
|
51 |
--enable-threads If this switch is set, Tcl will compile
|
sl@0
|
52 |
itself with multithreading support.
|
sl@0
|
53 |
--disable-load If this switch is specified then Tcl will
|
sl@0
|
54 |
configure itself not to allow dynamic loading,
|
sl@0
|
55 |
even if your system appears to support it.
|
sl@0
|
56 |
Normally you can leave this switch out and
|
sl@0
|
57 |
Tcl will build itself for dynamic loading
|
sl@0
|
58 |
if your system supports it.
|
sl@0
|
59 |
--enable-shared If this switch is specified, Tcl will compile
|
sl@0
|
60 |
itself as a shared library if it can figure
|
sl@0
|
61 |
out how to do that on this platform. This
|
sl@0
|
62 |
is the default on platforms where we know
|
sl@0
|
63 |
how to build shared libraries.
|
sl@0
|
64 |
--disable-shared If this switch is specified, Tcl will compile
|
sl@0
|
65 |
itself as a static library.
|
sl@0
|
66 |
--enable-symbols build with debugging symbols. By default
|
sl@0
|
67 |
standard debugging symbols are used. You
|
sl@0
|
68 |
can specify the value "mem" to include
|
sl@0
|
69 |
TCL_MEM_DEBUG memory debugging, "compile"
|
sl@0
|
70 |
to include TCL_COMPILE_DEBUG debugging, or
|
sl@0
|
71 |
"all" to enable all internal debugging.
|
sl@0
|
72 |
--disable-symbols build without debugging symbols
|
sl@0
|
73 |
--enable-64bit enable 64bit support (where applicable)
|
sl@0
|
74 |
--disable-64bit disable 64bit support (where applicable)
|
sl@0
|
75 |
--enable-64bit-vis enable 64bit Sparc VIS support
|
sl@0
|
76 |
--disable-64bit-vis disable 64bit Sparc VIS support
|
sl@0
|
77 |
--enable-langinfo Allows use of modern nl_langinfo check for
|
sl@0
|
78 |
better localization support. This is on by
|
sl@0
|
79 |
default on platforms where nl_langinfo is
|
sl@0
|
80 |
found.
|
sl@0
|
81 |
--disable-langinfo Specifically disables use of nl_langinfo.
|
sl@0
|
82 |
--enable-man-symlinks Use symlinks for linking the manpages that
|
sl@0
|
83 |
should be reachable under several names.
|
sl@0
|
84 |
--enable-man-compression=PROG
|
sl@0
|
85 |
Compress the manpages using PROG.
|
sl@0
|
86 |
Mac OS X only:
|
sl@0
|
87 |
--enable-framework package Tcl as a framework.
|
sl@0
|
88 |
--disable-corefoundation disable use of CoreFoundation API and revert to
|
sl@0
|
89 |
standard select based notifier, required when
|
sl@0
|
90 |
using naked fork (i.e. not followed by execve).
|
sl@0
|
91 |
|
sl@0
|
92 |
Note: by default gcc will be used if it can be located on the PATH.
|
sl@0
|
93 |
if you want to use cc instead of gcc, set the CC environment variable
|
sl@0
|
94 |
to "cc" before running configure. It is not safe to edit the
|
sl@0
|
95 |
Makefile to use gcc after configure is run. Also note that
|
sl@0
|
96 |
you should use the same compiler when building extensions.
|
sl@0
|
97 |
|
sl@0
|
98 |
Note: be sure to use only absolute path names (those starting with "/")
|
sl@0
|
99 |
in the --prefix and --exec-prefix options.
|
sl@0
|
100 |
|
sl@0
|
101 |
(d) Type "make". This will create a library archive called
|
sl@0
|
102 |
"libtcl<version>.a" or "libtcl<version>.so" and an interpreter
|
sl@0
|
103 |
application called "tclsh" that allows you to type Tcl commands
|
sl@0
|
104 |
interactively or execute script files.
|
sl@0
|
105 |
|
sl@0
|
106 |
(e) If the make fails then you'll have to personalize the Makefile
|
sl@0
|
107 |
for your site or possibly modify the distribution in other ways.
|
sl@0
|
108 |
First check the porting Web page above to see if there are hints
|
sl@0
|
109 |
for compiling on your system. If you need to modify Makefile,
|
sl@0
|
110 |
are comments at the beginning of it that describe the things you
|
sl@0
|
111 |
might want to change and how to change them.
|
sl@0
|
112 |
|
sl@0
|
113 |
(f) Type "make install" to install Tcl binaries and script files in
|
sl@0
|
114 |
standard places. You'll need write permission on the installation
|
sl@0
|
115 |
directories to do this. The installation directories are
|
sl@0
|
116 |
determined by the "configure" script and may be specified with
|
sl@0
|
117 |
the --prefix and --exec-prefix options to "configure". See the
|
sl@0
|
118 |
Makefile for information on what directories were chosen; you
|
sl@0
|
119 |
can override these choices by modifying the "prefix" and
|
sl@0
|
120 |
"exec_prefix" variables in the Makefile.
|
sl@0
|
121 |
|
sl@0
|
122 |
(g) At this point you can play with Tcl by running "make shell"
|
sl@0
|
123 |
and typing Tcl commands at the prompt.
|
sl@0
|
124 |
|
sl@0
|
125 |
If you have trouble compiling Tcl, see the URL noted above about working
|
sl@0
|
126 |
platforms. It contains information that people have provided about changes
|
sl@0
|
127 |
they had to make to compile Tcl in various environments. We're also
|
sl@0
|
128 |
interested in hearing how to change the configuration setup so that Tcl
|
sl@0
|
129 |
compiles on additional platforms "out of the box".
|
sl@0
|
130 |
|
sl@0
|
131 |
Test suite
|
sl@0
|
132 |
----------
|
sl@0
|
133 |
|
sl@0
|
134 |
There is a relatively complete test suite for all of the Tcl core in
|
sl@0
|
135 |
the subdirectory "tests". To use it just type "make test" in this
|
sl@0
|
136 |
directory. You should then see a printout of the test files processed.
|
sl@0
|
137 |
If any errors occur, you'll see a much more substantial printout for
|
sl@0
|
138 |
each error. See the README file in the "tests" directory for more
|
sl@0
|
139 |
information on the test suite. Note: don't run the tests as superuser:
|
sl@0
|
140 |
this will cause several of them to fail. If a test is failing
|
sl@0
|
141 |
consistently, please send us a bug report with as much detail as you
|
sl@0
|
142 |
can manage. Please use the online database at
|
sl@0
|
143 |
http://tcl.sourceforge.net/
|
sl@0
|
144 |
|
sl@0
|
145 |
The Tcl test suite is very sensitive to proper implementation of
|
sl@0
|
146 |
ANSI C library procedures such as sprintf and sscanf. If the test
|
sl@0
|
147 |
suite generates errors, most likely they are due to non-conformance
|
sl@0
|
148 |
of your system's ANSI C library; such problems are unlikely to
|
sl@0
|
149 |
affect any real applications so it's probably safe to ignore them.
|