1Tk UNIX README
2--------------
3
4This is the directory where you configure, compile, test, and install
5UNIX versions of Tk. This directory also contains source files for Tk
6that are specific to UNIX.
7
8The information in this file is maintained at:
9 http://www.tcl.tk/doc/howto/compile.html
10
11For information on platforms where Tcl/Tk is known to compile, along
12with any porting notes for getting it to work on those platforms, see:
13 http://www.tcl.tk/software/tcltk/platforms.html
14
15The rest of this file contains instructions on how to do this. The
16release should compile and run either "out of the box" or with trivial
17changes on any UNIX-like system that approximates POSIX, BSD, or System
18V. We know that it runs on workstations from Sun, H-P, DEC, IBM, and
19SGI, as well as PCs running Linux, BSDI, and SCO UNIX. To compile for
20a PC running Windows, see the README file in the directory ../win. To
21compile for a Macintosh, see the README file in the directory ../mac.
22
23RCS: @(#) $Id: README,v 1.19 2003/02/27 00:05:54 hobbs Exp $
24
25How To Compile And Install Tk:
26------------------------------
27
28(a) Make sure that the Tcl release is present in the directory
29 ../../tcl<version> (or else use the "--with-tcl" switch described
30 below). This release of Tk will only work with the equivalently
31 version Tcl release. Also, be sure that you have configured Tcl before
32 you configure Tk.
33
34(b) Check for patches as described in ../README.
35
36(c) If you have already compiled Tk once in this directory and are now
37 preparing to compile again in the same directory but for a different
38 platform, or if you have applied patches, type "make distclean" to
39 discard all the configuration information computed previously.
40
41(d) Type "./configure". This runs a configuration script created by GNU
42 autoconf, which configures Tcl for your system and creates a
43 Makefile. The configure script allows you to customize the Tcl
44 configuration for your site; for details on how you can do this,
45 type "./configure -help" or refer to the autoconf documentation (not
46 included here). Tk's "configure" script supports the following
47 special switches in addition to the standard ones:
48 --with-tcl=DIR Specifies the directory containing the Tcl
49 binaries and Tcl's platform-dependent
50 configuration information. By default
51 the Tcl directory is assumed to be in the
52 location given by (a) above.
53 --enable-threads If this switch is set, Tcl will compile
54 itself with multithreading support.
55 --enable-shared If this switch is specified, Tk will compile
56 itself as a shared library if it can figure
57 out how to do that on this platform. This
58 is the default on platforms where we know
59 how to build shared libraries.
60 --disable-shared If this switch is specified, Tk will compile
61 itself as a static library.
62 --enable-symbols build with debugging symbols By default
63 standard debugging symbols are used. You
64 can specify the value "mem" to include
65 TCL_MEM_DEBUG memory debugging.
66 --disable-symbols build without debugging symbols
67 --enable-64bit enable 64bit support (where applicable)
68 --disable-64bit disable 64bit support (where applicable)
69 --enable-64bit-vis enable 64bit Sparc VIS support
70 --disable-64bit-vis disable 64bit Sparc VIS support
71 --enable-man-symlinks Use symlinks for linking the manpages that
72 should be reachable under several names.
73 --enable-man-compression=PROG
74 Compress the manpages using PROG.
75
76 Note: by default gcc will be used if it can be located on the PATH.
77 if you want to use cc instead of gcc, set the CC environment variable
78 to "cc" before running configure. It is not safe to change the Makefile
79 to use gcc after configure is run.
80
81 Note: be sure to use only absolute path names (those starting with "/")
82 in the --prefix and --exec-prefix options.
83
84(e) Type "make". This will create a library archive called
85 "libtk<version>.a" or "libtk<version>.so" and an interpreter
86 application called "wish" that allows you to type Tcl commands
87 interactively or execute script files.
88
89(f) If the make fails then you'll have to personalize the Makefile
90 for your site or possibly modify the distribution in other ways.
91 First check the porting Web page above to see if there are hints
92 for compiling on your system. If you need to modify Makefile,
93 there are comments at the beginning of it that describe the things
94 you might want to change and how to change them.
95
96(g) Type "make install" to install Tk's binaries and script files in
97 standard places. You'll need write permission on the installation
98 directoryies to do this. The installation directories are
99 determined by the "configure" script and may be specified with
100 the --prefix and --exec-prefix options to "configure". See the
101 Makefile for information on what directories were chosen; you
102 can override these choices by modifying the "prefix" and
103 "exec_prefix" variables in the Makefile.
104
105(h) At this point you can play with Tk by invoking the "wish"
106 program and typing Tcl commands. However, if you haven't installed
107 Tk then you'll first need to set your TK_LIBRARY environment
108 variable to hold the full path name of the "library" subdirectory.
109 If you haven't installed Tcl either then you'll need to set your
110 TCL_LIBRARY environment variable as well (see the Tcl README file
111 for information on this). Note that installed versions of wish,
112 libtk.a, libtk.so, and the Tk library have a version number in their
113 names, such as "wish8.4" or "libtk8.4.so"; to use the installed
114 versions, either specify the version number or create a symbolic
115 link (e.g. from "wish" to "wish8.4").
116
117If you have trouble compiling Tk, see the URL noted above about working
118platforms. It contains information that people have provided about changes
119they had to make to compile Tk in various environments. We're also
120interested in hearing how to change the configuration setup so that Tk
121compiles on additional platforms "out of the box".
122
123Test suite
124----------
125
126Tk has a substantial self-test suite, consisting of a set of scripts in
127the subdirectory "tests". To run the test suite just type "make test"
128in this directory. You should then see a printout of the test files
129processed. If any errors occur, you'll see a much more substantial
130printout for each error. In order to avoid false error reports, be sure
131to run the tests with an empty resource database (e.g., remove your
132.Xdefaults file or delete any entries starting with *). Also, don't
133try to do anything else with your display or keyboard whlie the tests
134are running, or you may get false violations. See the README file in
135the "tests" directory for more information on the test suite.
136
137If the test suite generates errors, most likely they are due to non-
138portable tests that are interacting badly with your system configuration.
139We are gradually eliminating the non-portable tests, but this release
140includes many new tests so there will probably be some portability
141problems. As long as the test suite doesn't core dump, it's probably
142safe to conclude that any errors represent portability problems in the
143test suite and not fundamental flaws with Tk.
144
145There are also a number of visual tests for things such as screen layout,
146Postscript generation, etc. These tests all have to be run by manually
147enabling the "userInteraction" constraint when testing, and the results
148have to be verified visually.. This can be done with
149 make test TESTFLAGS="-constraints userInteraction"
150Some tests will present a main window with a bunch of menus, which you can
151use to select various tests.
152