Problem. You want to compile a software against TCL. You run ./configure, but it can’t find it. You so need to locate where are the headers and the libraries.
Solution.
Start with the TCL version.
On Debian:
- headers are in a subdirectory in /usr/include, named tcl followed by the version
- libraries are sorted by architecture,
dpkg-architecture
can give the right one.
On FreeBSD:
- headers are also in a subdirectory in /usr/local/include, also named tcl followed by the version
- libraries are in /usr/local/lib at expected place, but named by the version without any dot (e.g. libtcl86 for TCL 8.6).
Here a sample from a build script we use on Eglide:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
TCL_VERSION=8.6 # ------------------------------------------------------------- # Configure step # # This is the tricky part, as we need to provide path to TCL # header and library files, heavily OS/distro/arch dependant. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if [ -f /etc/debian_version ]; then ARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH` ./configure --with-tclinc=/usr/include/tcl${TCL_VERSION}/tcl.h --with-tcllib=/usr/lib/$ARCH/libtcl${TCL_VERSION}.so --with-tcl=/usr/lib/$ARCH/tcl${TCL_VERSION} elif [ `uname` = "FreeBSD" ]; then TCL_VERSION_LIB=`echo $TCL_VERSION | tr -d .` ./configure --with-tclinc=/usr/local/include/tcl${TCL_VERSION}/tcl.h -with-tcllib=/usr/local/lib/libtcl${TCL_VERSION_LIB}.so --with-tcl=/usr/local/lib/tcl${TCL_VERSION} else ./configure fi |