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.6
If 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 make
This 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 install
This 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 a configure --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