Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Compare cell phone plans using Wirefly's innovative plan comparison tool ×
User Journal

Journal PhillC's Journal: Installing Tcl-0.95 module from CPAN

On my new Debian Testing system, I have installed Tcl8.5 and Tk8.5, rather than the older Tcl8.4 and Tk8.4.

This has lead to problems when trying to install the Tcl-0.95 modulefrom CPAN - http://search.cpan.org/dist/Tcl/

The errors I was seeing looked like the following:

> perl Makefile.PL
> tclsh=/usr/bin/tclsh
LIBS = -ltcl8.5
Use of uninitialized value in concatenation (.) or string at Makefile.PL line 204.
Use of uninitialized value in string at Makefile.PL line 220.
Checking if your kit is complete...
Looks good
Writing Makefile for Tcl

Make then subsequently fails with:

> make
> cp Tcl.pm blib/lib/Tcl.pm /usr/bin/perl /usr/share/perl/5.8/ExtUtils/xsubpp
-typemap /usr/share/perl/5.8/ExtUtils/typemap -typemap
typemap Tcl.xs > Tcl.xsc && mv Tcl.xsc Tcl.c
Please specify prototyping behavior for Tcl.xs (see perlxs manual)
-DDEBIAN -fno-strict-aliasing -pipe -I/usr/local /include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2
-DVERSION=\"0.95\" -DXS_VERSION=\"0.95\" -fPIC
"-I/usr /lib/perl/5.8/CORE" Tcl.c
Tcl.xs:33:17: error: tcl.h: No such file or directory
Tcl.xs:127: error: expected ')' before '*' token
*snip* Lots more similar errors
make: *** Tcl.o Error 1

I have overcome this by digging around and find where exactly my Tcl config file resided and the correct include path. My new Makefile command looked like this:

>sudo perl Makefile.PL --tclsh /usr/bin/tclsh8.5 --tclconfig /usr/lib/tcl8.5/tclConfig.sh --include /usr/include/tcl8.5

The module was then made and installed without error. I think it was probably the inclusion of the include path that did the trick, as that's where the missing tcl.h is to be found

This discussion has been archived. No new comments can be posted.

Installing Tcl-0.95 module from CPAN

Comments Filter:

"If anything can go wrong, it will." -- Edsel Murphy