From: Alan W. I. <ir...@be...> - 2002-07-03 16:22:21
|
Great. That one-line fix solved the problem, and I have committed it. Thanks very much! Now on to the last issue that arises from this. tclAPI.c has all sorts of version information scattered throughout it now. The definitive place to find out about version information is plplot/cf/version.in. On the Linux side that is turned into PLPLOT_VERSION and automatically propagated to plConfig.h via the magic of autoconf. I haven't paid attention to what happens to the version on the windows side, but I think the windows guys (Olof et al) simply edit plplot/sys/win32/msdev/makefile to change PLPLOT_VERSION before each release. PLPLOT_VERSION is already accessible from tclAPI.c via the plplot/plplotP.h include which in turn includes plConfig.h. Can you parse out the parts you need to replace 5.1 and 5.1.0 wherever they occur in tclAPI.c? That would greatly simplify my life at release time. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Wed, 3 Jul 2002, Vince Darley wrote: > Ok, I think I see the problem. It isn't anything to do with the 'libDir' > changes, but rather to calling tcl_findLibrary twice. > > Use this: > > if (Tcl_Eval(interp, initScript) != TCL_OK) { > #ifdef PLPLOT_EXTENDED_SEARCH > + Tcl_UnsetVar(interp, "pllibrary", TCL_GLOBAL_ONLY); > if (Tcl_Eval(interp, initScriptExtended) != TCL_OK) { > > > (i.e. add the line with '+'), and all should work, I think... I only > rarely have access to a linux box (except perhaps through the sourceforge > compile farm), so it isn't that easy for me to test these things. > > cheers, > > -- Vince > > <http://www.santafe.edu/~vince> > > > On Wed, 3 Jul 2002, Alan W. Irwin wrote: > > > Vince, > > > > Sorry for another negative message, but it is part of my job to test your > > changes to make sure all the details are right so that we present a polished > > product for our next release. I am certainly willing to continue the Linux > > testing of your changes, but you might be able to eliminate a lot of these > > little problems (and achieve a lot better turnaround than when two of us are > > involved) if you tested your changes on a Linux box (which I understand you > > have access to) before committing them. > > > > With your latest change I am still getting exactly the same error message > > for the installed version: > > > > application-specific initialization failed: Can't find a usable plplot.tcl > > in the following directories: > > /usr/plplot5.1/library > > > > As I have said before, I believe the problem is one of your libDir changes > > below (perhaps even initializing it to NULL?) is severely limiting the > > directories that are being searched. For your latest change, I noticed you > > switched to the "5.1.0/tcl" style which worked for me in the past, but the > > point is no amount of fiddling with initScript or initScriptExtended is > > going to work if your libDir changes makes sure those lines are completely > > ignored. The error message above shows only one directory is being > > searched. That never happened to me before your libDir changes. So I > > suspect if you look carefully at everything you did with libDir, you will > > find the reason why the directory search is now so limited. > > > > I am going to quote my previous post on this (especially the diff) to help > > you get to the bottom of this. > > > > Alan > > > > On Tue, 2 Jul 2002, Alan W. Irwin wrote: > > > > > I didn't do anything particularly sophisticated. 3 versions ago (i.e., for > > > version 1.32), this worked > > > fine for install (but not for built version in plplot/tmp). > > > > > > static char initScript[] = > > > "tcl_findLibrary plplot 5.1.0/tcl \"\" plplot.tcl PL_LIBRARY pllibrary"; > > > > > > i.e., I just replaced 5.1 by 5.1.0/tcl for just this line in 1.32. So I was > > > essentially just doing what you are now doing with initScriptExtended, and I > > > therefore think your current approach should work fine except for some > > > additional changes you made to libDir. Here is the diff I am talking about > > > between version 1.32 and version 1.35. I may have it wrong, but I think I > > > understand the initScriptExtended stuff so by elimination I think it is the > > > changed libDir stuff that is causing the trouble. > > > > > > Alan > > > > > > ******************* > > > Index: tclAPI.c > > > =================================================================== > > > RCS file: /cvsroot/plplot/plplot/bindings/tcl/tclAPI.c,v > > > retrieving revision 1.32 > > > retrieving revision 1.35 > > > diff -u -3 -p -r1.32 -r1.35 > > > --- tclAPI.c 2 Jul 2002 11:30:36 -0000 1.32 > > > +++ tclAPI.c 2 Jul 2002 16:44:25 -0000 1.35 > > > @@ -1,4 +1,4 @@ > > > -/* $Id: tclAPI.c,v 1.32 2002/07/02 11:30:36 vincentdarley Exp $ > > > +/* $Id: tclAPI.c,v 1.35 2002/07/02 16:44:25 vincentdarley Exp $ > > > > > > Copyright 1994, 1995 > > > Maurice LeBrun mj...@di... > > > @@ -313,6 +313,15 @@ loopbackCmd(ClientData clientData, Tcl_I > > > static char defaultLibraryDir[200] = PL_LIBRARY; > > > extern char* plplotLibDir; > > > > > > +#if (!defined(MAC_TCL) && !defined(__WIN32__)) > > > +/* > > > + * Use an extended search for installations on Unix where we > > > + * have very likely installed plplot so that plplot.tcl is > > > + * in /usr/local/plplot/lib/plplot5.1.0/tcl > > > + */ > > > +#define PLPLOT_EXTENDED_SEARCH > > > +#endif > > > + > > > /* > > > * PlbasicInit > > > * > > > @@ -326,7 +335,11 @@ PlbasicInit( Tcl_Interp *interp ) > > > { > > > static char initScript[] = > > > "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; > > > - char *libDir; > > > +#ifdef PLPLOT_EXTENDED_SEARCH > > > + static char initScriptExtended[] = > > > + "tcl_findLibrary plplot 5.1.0 \"\" tcl/plplot.tcl PL_LIBRARY pllibrary"; > > > +#endif > > > + char *libDir = NULL; > > > #ifdef USE_TCL_STUBS > > > /* > > > * We hard-wire 8.1 here, rather than TCL_VERSION, TK_VERSION because > > > @@ -359,16 +372,48 @@ PlbasicInit( Tcl_Interp *interp ) > > > #endif > > > > > > Tcl_SetVar(interp, "plversion", "5.1", TCL_GLOBAL_ONLY); > > > - if(Tcl_Eval(interp, initScript)) > > > + if (Tcl_Eval(interp, initScript) != TCL_OK) { > > > +#ifdef PLPLOT_EXTENDED_SEARCH > > > + if (Tcl_Eval(interp, initScriptExtended) != TCL_OK) { > > > + /* Last chance, look in '.' */ > > > + Tcl_DString ds; > > > + if (Tcl_Access("plplot.tcl", 0) != 0) { > > > + return TCL_ERROR; > > > + } > > > + if (Tcl_EvalFile(interp, "plplot.tcl") != TCL_OK) { > > > + return TCL_ERROR; > > > + } > > > + /* It is in the current directory */ > > > + libDir = Tcl_GetCwd(interp, &ds); > > > + if (libDir == NULL) { > > > + return TCL_ERROR; > > > + } > > > + libDir = strdup(libDir); > > > + Tcl_DStringFree(&ds); > > > + } > > > + /* > > > + * Clear the result so the user isn't confused by an error > > > + * message from the previous failed search > > > + */ > > > + Tcl_ResetResult(interp); > > > +#else > > > return TCL_ERROR; > > > +#endif > > > + } > > > > > > - libDir = Tcl_GetVar(interp, "pllibrary", TCL_GLOBAL_ONLY); > > > if (libDir == NULL) { > > > - Tcl_SetVar(interp, "pllibrary", defaultLibraryDir, TCL_GLOBAL_ONLY); > > > + libDir = Tcl_GetVar(interp, "pllibrary", TCL_GLOBAL_ONLY); > > > + if (libDir == NULL) { > > > + /* I don't believe this path can ever be reached now */ > > > + Tcl_SetVar(interp, "pllibrary", defaultLibraryDir, TCL_GLOBAL_ONLY); > > > + libDir = defaultLibraryDir; > > > + } > > > } else { > > > - /* Used by init code in plctrl.c */ > > > - plplotLibDir = strdup(libDir); > > > + Tcl_SetVar(interp, "pllibrary", libDir, TCL_GLOBAL_ONLY); > > > } > > > + > > > + /* Used by init code in plctrl.c */ > > > + plplotLibDir = strdup(libDir); > > > > > > #ifdef TCL_DIR > > > if (libDir == NULL) { > > > ******************* > > > > > > > > > > > > ------------------------------------------------------- > > > This sf.net email is sponsored by:ThinkGeek > > > Welcome to geek heaven. > > > http://thinkgeek.com/sf > > > _______________________________________________ > > > Plplot-devel mailing list > > > Plp...@li... > > > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > > > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > No, I will not fix your computer. > http://thinkgeek.com/sf > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |