make distclean
now removes the file config.log,
which is generated by the new configure.
make distclean
now removes the file config.cache,
which is generated by configure to speed configure on subsequent
runs.
These notes assume that you have unpacked NeoSoft Tcl in /usr/neosoft/src. If you have unpacked it elsewhere, substitute that directory path wherever you see /usr/neosoft/src.
You need to set three variables in the toplevel Makefile, the architecture
(ARCH)
, the directory that subordinate directories such as bin
and lib will be created and installed into, and the shell that will handle the
shell scripts, often /bin/sh
but preferably is
bash
, because sh often chokes on the intricate
configure scripts.
NeoSoft Tcl uses GNU autoconf to configure itself for your system type. These carefully crafted configure scripts allows NeoSoft Tcl to be built on most Unix-based systems without any special editing/porting/etc. (Use of GNU autoconf does not make any Tcl component, or any application that you create using Tcl, subject to the GNU distribution requirements.)
The architecture definition in the Makefile simply defines a architecture- dependent partial pathname to allow binaries and libraries for multiple architectures to reside in parallel under the same tree.
Sample configuration for BSDI BSD/386 1.1:
ARCH=bsd386 PREFIX=/usr/neosoft SHELL=/bin/bash
Sample configuration for SCO Open Desktop:
ARCH=sco PREFIX=/usr/neosoft SHELL=/bin/bash
Sample configuration for Sun SPARC:
ARCH=sparc PREFIX=/usr/neosoft SHELL=/bin/shbash
You should be able to do a:
cd /usr/neosoft/src/tcl7.3 make configure
...and configuration should occur automatically. Certain things in Extended Tcl can be fine-tuned in tcl7.3/tclX7.3a/Config.mk. If you have problems, please contact the NeoSoft Tcl project tcl-project@neosoft.com.
When the make configure configures [incr tcl] (itcl-1.5), it may ask some questions. If you are using /usr/neosoft for the install location, answer as follows:
What directory contains Tcl source code (absolute path) ? /usr/neosoft/src/tcl7.3/tcl7.3 What directory contains libtcl.a ? /usr/neosoft/src/tcl7.3/tcl7.3 What directory contains tk.h (absolute path) ? /usr/neosoft/src/tcl7.3/tk3.6 What directory contains libtk.a ? /usr/neosoft/src/tcl7.3/tk3.6If it doesn't ask these questions, closely examine configure's output when configuring itcl -- it may try to build against an old copy of an include or library that you have somewhere. Prime locations would be
/usr/include
and/usr/local
.Build
To build NeoSoft Tcl, perform the following steps:
cd /usr/neosoft/src/tcl7.3 make makeThis should compile, in turn, all of the pieces, finally producing in-tree executables of tcl and wishx.
Install
cd /usr/neosoft/src/tcl7.3 make installThis will install the executables and support files, including help, source libraries, etc.
Everything in a runtime release, including executables, libraries, help files, manual pages, etc, installs into one directory hierarchy.
Machine-specific executables install into architecture-specific trees, allowing binaries for multiple architectures to be served out via one NFS export, for example.
Also note that the release ID is in the pathname of this tree, allowing different versions of Tcl to be built and installed alongside each other, permitting multiple releases for multiple architectures to be served out from one file server.
For the case of BSDI BSD/386 1.1 above, with PREFIX set to /usr/neosoft and ARCH. set to bsd386, the following tree will be created:
/usr/neosoft/tclX/7.3b Master directory -- all Tcl and TclX runtime files install underneath. /usr/neosoft/tclX/7.3b/bin.bsd386 Architecture-specific executables (tcl) /usr/neosoft/tclX/7.3b/help Help files for Tcl and Extended Tcl /usr/neosoft/tclX/7.3b/include C include files for Tcl and Extended Tcl /usr/neosoft/tclX/7.3b/lib.bsd386 Architecture-specific Tcl and Extended Tcl C libraries /usr/neosoft/tclX/7.3b/man Manual pages for Tcl and Extended Tcl /usr/neosoft/tclX/7.3b/src File to include in a C program to link Tcl, TclX, etc, into it. /usr/neosoft/tkX/3.6b/bin.bsd386 Master directory -- all Tk files install underneath. /usr/neosoft/tkX/3.6b/demos Architecture-specific executables (wishx) /usr/neosoft/tkX/3.6b/help Help files for Tk /usr/neosoft/tkX/3.6b/include Include files for Tk /usr/neosoft/tkX/3.6b/lib.bsd386 Architecture-specific Tk libraries /usr/neosoft/tkX/3.6b/man Manual pages for Tk /usr/neosoft/tkX/3.6b/src File to include in C code to link Tk into it.
Installing executables only
Often you will make a change to some code in one of these packages and wish to recompile and reinstall, but you don't want to incur the overhead of reinstalling all the manpages, libraries, and the like. In this case, do a:
cd /usr/neosoft/src/tcl7.3 make install-exec
Configuring and building manually
If "make configure" fails, you may want to try configuring manually. In this case, issue the following commands to build tcl7.3, xpm, Tk, itcl, and tclX:
cd /usr/neosoft/src/tcl7.3/tcl7.3 configure --prefix=/usr/neosoft make cd /usr/neosoft/src/tcl7.3/tk3.6/xpm xmkmf cd .. configure --prefix=/usr/neosoft make cd /usr/neosoft/src/tcl7.3/itcl-1.5 configure --prefix=/usr/neosoft make cd /usr/neosoft/src/tcl7.3/tclX7.3b configure --prefix=/usr/neosoft --with-arch=sparc make make install
Hints
Many make commands are not adequate to the task of building all of this. Consequently source code to GNU make is included in the complete release.
If you do not have a copy of GNU make, you may retrieve it from prep.ai.mit.edu, GNU's home site.
If you are installing in /usr/neosoft, configuring, building and installing GNU make in src/make-* and making sure that /usr/neosoft/bin comes before whatever directory has your system's make command are essential.
Also note that you should run configure with the same version of make that you're going to build Tcl with. If you configure with one make, then try to compile with another, all sorts of things will fail.
For shell users, PATH=/usr/neosoft/bin:$PATH
For csh users, set path=(/usr/neosoft/bin $path)
Again, getting the right "make" in the path should be done before running configure, or configure should be rerun. What configure decides to do depends in part on the behavior of "make".
Potential Problems
If you have trouble with
make configure
from the top tcl7.3 directory failing in tk3.6, try cd'ing to each subdirectory of the top directory by hand and doing aconfigure --prefix=/usr/neosoft
Incr Tcl
The Makefile for [incr tcl] has been modified to only produce the library and not the itcl_sh and itcl_wish executables, as tcl and wishx will have itcl linked in when it's been selected.
Documentation
Each package comes with extensive documentation in the form of README files and manual pages.
For each package, manual pages can be found in:
tcl /usr/neosoft/src/tcl7.3/tcl7.3/doc tk /usr/neosoft/src/tcl7.3/tk3.6/doc extended tcl /usr/neosoft/src/tcl7.3/tclX7.3a/man incr tcl /usr/neosoft/src/tcl7.3/itcl-1.5/man tcl distributed processing /usr/neosoft/src/tcl7.3/tcl-dp3.2/doc distributed processing w/o tk /usr/neosoft/src/tcl7.3/tcl-dp3.2/dplite/doc
Karl Lehenbauer karl@neosoft.com