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