From: Giulio P. <giu...@gm...> - 2013-12-20 08:26:23
|
Il 20/12/2013 08:45, Kasparek Tomas ha scritto: > On Fri, Dec 20, 2013 at 07:21:20AM +0100, Giulio Paci wrote: >> Great news! :-) Are you trying to compile 1.5.2? If yes, please, try to >> compile the git version instead. If you are already using the git version, >> I will investigate further. > > git 639693ba1b812bf29b258da36870f144aa2ec4ce Perfect. > Allready got an idea - in several files there was a construct with > > interp->result = .... (e.g. wavfm.c:259). > > These seem not to be supported in newer Tcl/Tk. As a first try I just > commented them out, but it may cause this. (in mingw there is tcl/tk 8.6) I admit I use mostly tcl/tk 8.5, as it is the default in Debian. However I just tried to recompile transcriber with tcl/tk 8.6 and I got a compilation error. Do you also got compilation errors like the one below? $ make gcc -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API -c -o axis.o axis.c axis.c: In function ‘AxisCmd’: axis.c:223:10: error: ‘Tcl_Interp’ has no member named ‘result’ interp->result = Tk_PathName(axisPtr->tkwin); ^ make: *** [axis.o] Error 1 > Would you have some idea how to modify these properly? I have not investigated it. However you can compile using the -DUSE_INTERP_RESULT compiler flag. With this flag the errors become deprecation warnings. $ CPPFLAGS=-DUSE_INTERP_RESULT ./configure --with-tcl=/usr/lib/tcl8.6 --with-tk=/usr/lib/tk8.6 --prefix=$(pwd)/tmp will use stubs (normal) configure: creating ./config.status config.status: creating Makefile config.status: creating trans config.status: creating transar $ make gcc -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API -DUSE_INTERP_RESULT -c -o axis.o axis.c axis.c: In function ‘AxisCmd’: axis.c:223:4: warning: ‘result’ is deprecated (declared at /usr/include/tcl8.6/tcl-private/generic/tcl.h:507) [-Wdeprecated-declarations] interp->result = Tk_PathName(axisPtr->tkwin); ^ gcc -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API -DUSE_INTERP_RESULT -c -o wavfm.o wavfm.c wavfm.c: In function ‘WavfmCmd’: wavfm.c:259:4: warning: ‘result’ is deprecated (declared at /usr/include/tcl8.6/tcl-private/generic/tcl.h:507) [-Wdeprecated-declarations] interp->result = Tk_PathName(wavfmPtr->tkwin); ^ gcc -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API -DUSE_INTERP_RESULT -c -o segmt.o segmt.c segmt.c: In function ‘SegmtCmd’: segmt.c:298:4: warning: ‘result’ is deprecated (declared at /usr/include/tcl8.6/tcl-private/generic/tcl.h:507) [-Wdeprecated-declarations] interp->result = Tk_PathName(segmtPtr->tkwin); ^ gcc -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API -DUSE_INTERP_RESULT -c -o trans.o trans.c gcc -shared -O -fPIC -DUSE_TCL_STUBS -DUSE_TK_STUBS -I/usr/include/tcl8.6/tcl-private/generic -I/usr/include/tcl8.6/tk-private/generic -I/usr/include -I/usr/include -DTCL_81_API axis.o wavfm.o segmt.o trans.o -lc -lX11 -lXss -lXext -lXft -lfontconfig -lpthread -ldl -lz -lpthread -lieee -lm -L/usr/lib -ltclstub8.6 -L/usr/lib -ltkstub8.6 -o libtrans.so sed s/.dll/.so/ < pkgIndex.tcl.dll > pkgIndex.tcl $ make install ... $ tmp/bin/trans And then everything works properly here. This lead me to another question: where did you get tclex? AFAIK most of the versions that you can find do not work with recent versions of tcl/tk (> 8.4). > (second thing - in sf.net download these new 1.5.2 are in 1.5.1 folder, is > this intended, or should this be fixed?) I also add another question: where are the 1.5.2 sources? May we tag a specific git revision? Bests, Giulio. |