summaryrefslogtreecommitdiffstats
path: root/unix/README
blob: a299b568e3af15bb668c2d9b240fc3676163b56b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Tk UNIX README
--------------

This is the directory where you configure, compile, test, and install
UNIX versions of Tk.  This directory also contains source files for Tk
that are specific to UNIX.

The information in this file is maintained at:
	http://www.tcl.tk/doc/howto/compile.html

For information on platforms where Tcl/Tk is known to compile, along
with any porting notes for getting it to work on those platforms, see:
	http://www.tcl.tk/software/tcltk/platforms.html

The rest of this file contains instructions on how to do this.  The
release should compile and run either "out of the box" or with trivial
changes on any UNIX-like system that approximates POSIX, BSD, or System
V.  We know that it runs on workstations from Sun, H-P, DEC, IBM, and
SGI, as well as PCs running Linux, BSDI, and SCO UNIX.  To compile for
a PC running Windows, see the README file in the directory ../win.  To
compile for MacOSX, see the README file in the directory ../macosx.

RCS: @(#) $Id: README,v 1.22.2.3 2007/12/10 18:39:31 dgp Exp $

How To Compile And Install Tk:
------------------------------

(a) Make sure that the Tcl release is present in the directory
    ../../tcl<version> (or else use the "--with-tcl" switch described
    below).  This release of Tk will only work with the equivalently
    versioned Tcl release. Also, be sure that you have configured Tcl before
    you configure Tk.

(b) Check for patches as described in ../README.

(c) If you have already compiled Tk once in this directory and are now
    preparing to compile again in the same directory but for a different
    platform, or if you have applied patches, type "make distclean" to
    discard all the configuration information computed previously.

(d) Type "./configure".  This runs a configuration script created by GNU
    autoconf, which configures Tk for your system and creates a Makefile.
    The configure script allows you to customize the Tk configuration for
    your site; for details on how you can do this, type "./configure
    -help" or refer to the autoconf documentation (not included here).
    Tk's "configure" script supports the following special switches in
    addition to the standard ones:
	--with-tcl=DIR		Specifies the directory containing the Tcl
				binaries and Tcl's platform-dependent
				configuration information.  By default
				the Tcl directory is assumed to be in the
				location given by (a) above.
	--enable-threads	If this switch is set, Tk will compile
				itself with multithreading support.
	--enable-shared		If this switch is specified, Tk will compile
				itself as a shared library if it can figure
				out how to do that on this platform.  This
				is the default on platforms where we know
				how to build shared libraries.
	--disable-shared	If this switch is specified, Tk will compile
				itself as a static library.
	--enable-symbols	Build with debugging symbols  By default
				standard debugging symbols are used.  You
				can specify the value "mem" to include
				TCL_MEM_DEBUG memory debugging.
	--disable-symbols	Build without debugging symbols
	--disable-xft		Disable support for antialiased fonts via
				the Freetype/xft library. By default,
				this is switched on whenever the
				configure script can detect the required
				libraries.
	--enable-64bit		Enable 64bit support (where applicable)
	--disable-64bit		Disable 64bit support (where applicable)
	--enable-64bit-vis	Enable 64bit Sparc VIS support
	--disable-64bit-vis	Disable 64bit Sparc VIS support
	--enable-man-symlinks	Use symlinks for linking the manpages that
				should be reachable under several names.
	--enable-man-compression=PROG
				Compress the manpages using PROG.
	--enable-man-suffix=STRING
				Add STRING to the name of each of the
				manual pages. If specified without giving
				STRING, the suffix will be "tk".
    Mac OS X only:
	--enable-framework	Package Tk as a framework.
	--disable-corefoundation Disable use of CoreFoundation API.
	--enable-aqua		Use Aqua windowingsystem rather than X11,
				requires --enable-corefoundation with Tcl
				and Tk.

    Note: by default gcc will be used if it can be located on the PATH.
    if you want to use cc instead of gcc, set the CC environment variable
    to "cc" before running configure. It is not safe to change the Makefile
    to use gcc after configure is run.

    Note: be sure to use only absolute path names (those starting with "/")
    in the --prefix and --exec-prefix options.

(e) Type "make".  This will create a library archive called
    "libtk<version>.a" or "libtk<version>.so" and an interpreter
    application called "wish" that allows you to type Tcl/Tk commands
    interactively or execute script files.  It will also create a
    stub library archive "libtkstub<version>.a" that developers may
    link against other C code to produce loadable extensions that call
    into Tk's public interface routines.

(f) If the make fails then you'll have to personalize the Makefile
    for your site or possibly modify the distribution in other ways.
    First check the porting Web page above to see if there are hints
    for compiling on your system.  If you need to modify Makefile,
    there are comments at the beginning of it that describe the things
    you might want to change and how to change them.

(g) Type "make install" to install Tk's binaries and script files in
    standard places.  You'll need write permission on the installation
    directories to do this.  The installation directories are
    determined by the "configure" script and may be specified with
    the --prefix and --exec-prefix options to "configure".  See the
    Makefile for information on what directories were chosen.  You
    should not override these choices by modifying the Makefile, or by
    copying files post-install.  The installed binaries have embedded within
    them path values relative to the install directory.  If you change your
    mind about where Tk should be installed, start this procedure over again        from step (a) so that the path embedded in the binaries agrees with the
    install location.

(h) At this point you can play with Tk by running the installed "wish"
    executable, or via the "make shell" target, and typing Tcl/Tk commands
    at the interactive prompt.

If you have trouble compiling Tk, see the URL noted above about working
platforms.  It contains information that people have provided about changes
they had to make to compile Tk in various environments.  We're also
interested in hearing how to change the configuration setup so that Tk
compiles on additional platforms "out of the box".

Note: Do not specify either of the TCL_LIBRARY and TK_LIBRARY environment
variables in a production installation, as this can cause conflicts
between different versions of the libraries. Instead, the libraries
should have the correct locations of their associated script directories
built into them.

Test suite
----------

Tk has a substantial self-test suite, consisting of a set of scripts in
the subdirectory "tests".  To run the test suite just type "make test"
in this directory.  You should then see a printout of the test files
processed.  If any errors occur, you'll see a much more substantial
printout for each error.  In order to avoid false error reports, be sure
to run the tests with an empty resource database (e.g., remove your
.Xdefaults file or delete any entries starting with *).  Also, don't
try to do anything else with your display or keyboard while the tests
are running, or you may get false violations.  See the README file in
the "tests" directory for more information on the test suite.

If the test suite generates errors, most likely they are due to non-
portable tests that are interacting badly with your system configuration.
We are gradually eliminating the non-portable tests, but this release
includes many new tests so there will probably be some portability
problems.  As long as the test suite doesn't core dump, it's probably
safe to conclude that any errors represent portability problems in the
test suite and not fundamental flaws with Tk.

There are also a number of visual tests for things such as screen layout,
Postscript generation, etc.  These tests all have to be run by manually
enabling the "userInteraction" constraint when testing, and the results
have to be verified visually..  This can be done with
     make test TESTFLAGS="-constraints userInteraction"
Some tests will present a main window with a bunch of menus, which you can
use to select various tests.