From: <hv...@i-...> - 2001-10-03 15:44:51
|
Hello. I am trying to install PLPlot on a fairly vanilla linux node in a cluster but am having a problem I can't correctly interpret. First, I have installed PLPlot successfully on other linux and unix (SunOS) boxes without fault. On those machines, I had tcl/tk 8.3.3 but NO access to itcl. On the problem machine, I am not allowed to install code 'in the normal places' so I have to run everything out of my home directory. Let's say that is directory foo, so foo/tcl8.3.3 and foo/tk8.3.3 and foo/plplot5.0.4 all live there. Tcl and Tk installed just fine. If I invoke any code 'there' I run 8.3 code, and NOT 8.0.5 code that is also hosted in default paths on said host. When I ./configure in plplot directory, I hang up because the script thinks that it is running on a machine with 8.0.5 code. So I took a look in configure script under tcl and tk sections. There, I found incdirs_default and libdirs_default variables. So I added: /foo/tcl8.3.3/generic \ /foo/tcltk/include \ to top of list for incdirs_default and: foo/tcltk/lib to top of libdirs_default list. Now when configure runs, it plays nice and says it finds 8.3.3 of tcl and tk. I have run configure with both (default) and --disable-itcl, but in either case, the subsequent make runs fine until I see this: gcc pltcl.o -L. -lplplot -ltclmatrix -o pltcl \ -L/home/hcvidal/tcltk/lib -ltk8.3 -ltcl8.3 -L/usr/X11R6/lib -lX11 -ldl -lm -Wl,-rpath -Wl,/home/hcvidal/plplot-5.0.4/tmp no value given for parameter "body" to "_%@fake_itcl_class" invoked from within "_%@fake_itcl_class $args" ("eval" body line 1) invoked from within "_%@eval _%@fake_itcl_class {$args}" (procedure "itcl::class" line 1) invoked from within "itcl::class Pltkwin { inherit PLWin constructor {args} {} protected method plwin {} { return \$itk_interior.plwin } public metho..." invoked from within "$parser eval $contents" (procedure "auto_mkindex_parser::mkindex" line 25) invoked from within "auto_mkindex_parser::mkindex $file" (procedure "auto_mkindex" line 21) invoked from within "auto_mkindex . *.tcl *.itcl *.itk *.ith *.itm" (file "/home/hcvidal/plplot-5.0.4/scripts/mktclIndex" line 23) make[1]: *** [tclIndex] Error 1 make[1]: Leaving directory `/home/hcvidal/plplot-5.0.4/tmp' make: *** [all] Error 2 this sure looks like itcl is being 'pulled in' but I still have not figured out why, Yes, I see this happening from mktclIndex, but just out of curiousity, why the hell is itcl being invoked if I spec --disable-itcl? btw, is there an easier way to spec that myu plplot build should use a tcl and tk install 'over here' and not in default places, maybe via command line? That would be a lot easier. Any helpful thoughts or solutions to be suggested? Thanks. hv |
From: Alan W. I. <ir...@be...> - 2001-10-03 17:22:39
|
That configure logic is complicated so this is just a suggestion of what might work. But if I understand it properly, it is designed so you can set environment variables to force trying particular install locations. For example, I think you can setenv (with tcsh) or export (with the bash shell) the following environment variables to specify any arbitrary install location for TCL and TK: TCLINCDIR, TCLLIBDIR, TKINCDIR, and TKLIBDIR. I don't have the expertise to help you with your specific itcl question, but it does sound like we have a configuration inconsistency there. One workaround for now until this gets fixed might be to install itcl then configure with environment variables set for ITCLINCDIR and ITCLLIBDIR. 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 Oct 2001 hv...@i-... wrote: > Hello. I am trying to install PLPlot on a fairly vanilla linux node > in a cluster but am having a problem I can't correctly interpret. > > First, I have installed PLPlot successfully on other linux and unix > (SunOS) boxes without fault. On those machines, I had tcl/tk 8.3.3 > but NO access to itcl. > > On the problem machine, I am not allowed to install code 'in the normal > places' so I have to run everything out of my home directory. Let's say > that is directory foo, so foo/tcl8.3.3 and foo/tk8.3.3 and foo/plplot5.0.4 > all live there. > > Tcl and Tk installed just fine. If I invoke any code 'there' I run > 8.3 code, and NOT 8.0.5 code that is also hosted in default paths > on said host. > > When I ./configure in plplot directory, I hang up because the script > thinks that it is running on a machine with 8.0.5 code. So I took > a look in configure script under tcl and tk sections. There, I found > incdirs_default and libdirs_default variables. So I added: > /foo/tcl8.3.3/generic \ > /foo/tcltk/include \ > > to top of list for incdirs_default and: > foo/tcltk/lib to top of > libdirs_default list. Now when configure runs, it plays nice and says it > finds 8.3.3 of tcl and tk. I have run configure with both (default) > and --disable-itcl, but in either case, the subsequent make runs fine > until I see this: > > gcc pltcl.o -L. -lplplot -ltclmatrix -o pltcl \ > -L/home/hcvidal/tcltk/lib -ltk8.3 -ltcl8.3 -L/usr/X11R6/lib -lX11 > -ldl -lm -Wl,-rpath -Wl,/home/hcvidal/plplot-5.0.4/tmp no value given for > parameter "body" to "_%@fake_itcl_class" > invoked from within "_%@fake_itcl_class $args" > ("eval" body line 1) > invoked from within "_%@eval _%@fake_itcl_class {$args}" > (procedure "itcl::class" line 1) > invoked from within "itcl::class Pltkwin { > inherit PLWin > constructor {args} {} > protected method plwin {} { return \$itk_interior.plwin } > > public metho..." > invoked from within "$parser eval $contents" > (procedure "auto_mkindex_parser::mkindex" line 25) > invoked from within "auto_mkindex_parser::mkindex $file" > (procedure "auto_mkindex" line 21) > invoked from within "auto_mkindex . *.tcl *.itcl *.itk *.ith *.itm" > (file "/home/hcvidal/plplot-5.0.4/scripts/mktclIndex" line 23) > make[1]: *** [tclIndex] Error 1 make[1]: Leaving directory > `/home/hcvidal/plplot-5.0.4/tmp' make: *** [all] Error 2 > > this sure looks like itcl is being 'pulled in' but I still have not > figured out why, Yes, I see this happening from mktclIndex, > but just out of curiousity, why the hell is itcl being invoked if > I spec --disable-itcl? > > btw, is there an easier way to spec that myu plplot build should > use a tcl and tk install 'over here' and not in default places, > maybe via command line? That would be a lot easier. > > Any helpful thoughts or solutions to be suggested? Thanks. > > hv > > > > _______________________________________________ > Plplot-general mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-general > |
From: Geoffrey F. <fu...@ga...> - 2001-10-03 17:40:56
|
I was going to suggest using --prefix. Your original report didn't exactly show how configure was being run. If you need to work not in the usual places, what you should do is configure tcl, tk, and plplot, all against a chosen prefix, make and make install each in turn. So say you do: mkdir ~/local cd <tcldir> ./configure --prefix=$HOME/local make make install cd <tkdir> ./configure --prefix=$HOME/local make make install Then to build plplot against these private versions, do: cd <.../plplot/tmp> ../configure --prefix=$HOME/local make make install Then these Tcl/Tk's will be found (and used by PLplot) before any in the "usual places". However, I cannot comment usefully right now, on the itcl collision business. Alan W. Irwin writes: > That configure logic is complicated so this is just a suggestion of what > might work. But if I understand it properly, it is designed so you can set > environment variables to force trying particular install locations. For > example, I think you can setenv (with tcsh) or export (with the bash shell) > the following environment variables to specify any arbitrary install > location for TCL and TK: TCLINCDIR, TCLLIBDIR, TKINCDIR, and TKLIBDIR. > > I don't have the expertise to help you with your specific itcl question, but > it does sound like we have a configuration inconsistency there. One > workaround for now until this gets fixed might be to install itcl then > configure with environment variables set for ITCLINCDIR and ITCLLIBDIR. > > 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 Oct 2001 hv...@i-... wrote: > > > Hello. I am trying to install PLPlot on a fairly vanilla linux node > > in a cluster but am having a problem I can't correctly interpret. > > > > First, I have installed PLPlot successfully on other linux and unix > > (SunOS) boxes without fault. On those machines, I had tcl/tk 8.3.3 > > but NO access to itcl. > > > > On the problem machine, I am not allowed to install code 'in the normal > > places' so I have to run everything out of my home directory. Let's say > > that is directory foo, so foo/tcl8.3.3 and foo/tk8.3.3 and foo/plplot5.0.4 > > all live there. > > > > Tcl and Tk installed just fine. If I invoke any code 'there' I run > > 8.3 code, and NOT 8.0.5 code that is also hosted in default paths > > on said host. > > > > When I ./configure in plplot directory, I hang up because the script > > thinks that it is running on a machine with 8.0.5 code. So I took > > a look in configure script under tcl and tk sections. There, I found > > incdirs_default and libdirs_default variables. So I added: > > /foo/tcl8.3.3/generic \ > > /foo/tcltk/include \ > > > > to top of list for incdirs_default and: > > foo/tcltk/lib to top of > > libdirs_default list. Now when configure runs, it plays nice and says it > > finds 8.3.3 of tcl and tk. I have run configure with both (default) > > and --disable-itcl, but in either case, the subsequent make runs fine > > until I see this: > > > > gcc pltcl.o -L. -lplplot -ltclmatrix -o pltcl \ > > -L/home/hcvidal/tcltk/lib -ltk8.3 -ltcl8.3 -L/usr/X11R6/lib -lX11 > > -ldl -lm -Wl,-rpath -Wl,/home/hcvidal/plplot-5.0.4/tmp no value given for > > parameter "body" to "_%@fake_itcl_class" > > invoked from within "_%@fake_itcl_class $args" > > ("eval" body line 1) > > invoked from within "_%@eval _%@fake_itcl_class {$args}" > > (procedure "itcl::class" line 1) > > invoked from within "itcl::class Pltkwin { > > inherit PLWin > > constructor {args} {} > > protected method plwin {} { return \$itk_interior.plwin } > > > > public metho..." > > invoked from within "$parser eval $contents" > > (procedure "auto_mkindex_parser::mkindex" line 25) > > invoked from within "auto_mkindex_parser::mkindex $file" > > (procedure "auto_mkindex" line 21) > > invoked from within "auto_mkindex . *.tcl *.itcl *.itk *.ith *.itm" > > (file "/home/hcvidal/plplot-5.0.4/scripts/mktclIndex" line 23) > > make[1]: *** [tclIndex] Error 1 make[1]: Leaving directory > > `/home/hcvidal/plplot-5.0.4/tmp' make: *** [all] Error 2 > > > > this sure looks like itcl is being 'pulled in' but I still have not > > figured out why, Yes, I see this happening from mktclIndex, > > but just out of curiousity, why the hell is itcl being invoked if > > I spec --disable-itcl? > > > > btw, is there an easier way to spec that myu plplot build should > > use a tcl and tk install 'over here' and not in default places, > > maybe via command line? That would be a lot easier. > > > > Any helpful thoughts or solutions to be suggested? Thanks. > > > > hv > > > > > > > > _______________________________________________ > > Plplot-general mailing list > > Plp...@li... > > https://lists.sourceforge.net/lists/listinfo/plplot-general > > > > > _______________________________________________ > Plplot-general mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-general |
From: Maurice L. <mj...@ga...> - 2001-10-04 04:42:30
|
hv...@i-... writes: > this sure looks like itcl is being 'pulled in' but I still have not > figured out why, Yes, I see this happening from mktclIndex, > but just out of curiousity, why the hell is itcl being invoked if > I spec --disable-itcl? Because mktclIndex is not coupled to the configuration process (it should be), and apparently the [catch {package require Itcl}] does not generate an error. I didn't consider the case where an iTcl installation would be found but was disabled by configure & worse, didn't work with the version of Tcl/TK you were linking against. I'll put it on my list of stuff to fix, but meanwhile you can hack mktclIndex to only include: "auto_mkindex *.tcl" after the tclsh exec. -- Maurice LeBrun mj...@ga... |
From: <hv...@i-...> - 2001-10-04 14:01:39
|
OK, I think this is my current working solution in detail. It's pretty brain-dead, but it works. 1. I installed tcl and tk with --prefix=/foo where foo is my home 2. untar plplot to build dir 3. set env vars TCL_LIBRARY and TK_LIBRARY to /foo/tcltk/lib/tcl and /tk respectively 4. set env vars TCLINCDIR and TKINCDIR to /foo/tcltk/include 5. set env vars TCLLIBDIR and TKLIBDIR to /foo/tcltk/lib 6. in plplotbuild/scripts: there is file mktclIndex which execs tclsh; this was pulling in older tclsh 8.0 on host instead of tclsh in my copy of tcl. So I hard code exec with exec /foo/tcltk/bin/tclsh. This gets us past mktclIndex build problem. 7. run ./configure --prefix=/foo/plplot --disable-itcl --disable-f77 p.s. Does anybody know if Absoft f90 is supposed to work as f77 build? Because my initial attempt at this failed....so f77 is off for now.... 8. make, then make install. bue-tee-ful. 9. Here comes more ignorance on my part: the build will create plserver, for example, so you can run plserver and get an initial wishx window. But if you do a plxframe creation, you core dump. So a bit of ldd work reveals that resultant plserver (and maybe other targets) built with dependency on libtcl.so in default (8.0!) directory. Don't want that. So I make (here we go...) symlinks in the plserver directory to respective libtcl8.3.so, etc in private copy of 8.3 tcl/tk. Now it works. So there is my silliness: I can build and run using this kl00ge, but can I do it a bit cleaner, especially wrt ldd noted lib dependencies at run or, preferably, compile-time? Thanks for your collective help and responsiveness! hv > > this sure looks like itcl is being 'pulled in' but I still have not > > figured out why, Yes, I see this happening from mktclIndex, > > but just out of curiousity, why the hell is itcl being invoked if > > I spec --disable-itcl? > > Because mktclIndex is not coupled to the configuration process (it should be), > and apparently the [catch {package require Itcl}] does not generate an error. > I didn't consider the case where an iTcl installation would be found but was > disabled by configure & worse, didn't work with the version of Tcl/TK you were > linking against. I'll put it on my list of stuff to fix, but meanwhile you > can hack mktclIndex to only include: "auto_mkindex *.tcl" after the tclsh exec. > > -- > Maurice LeBrun mj...@ga... |
From: Geoffrey F. <fu...@ga...> - 2001-10-04 16:30:13
|
hv...@i-... writes: > 1. I installed tcl and tk with --prefix=/foo where foo is my home > > 7. run ./configure --prefix=/foo/plplot --disable-itcl --disable-f77 > > 9. Here comes more ignorance on my part: the build will create plserver, > for example, so you can run plserver and get an initial wishx window. > But if you do a plxframe creation, you core dump. > > So a bit of ldd work reveals that resultant plserver (and maybe other > targets) built with dependency on libtcl.so in default (8.0!) directory. > Don't want that. So I make (here we go...) symlinks in the plserver > directory to respective libtcl8.3.so, etc in private copy of 8.3 tcl/tk. > Now it works. > > So there is my silliness: I can build and run using this kl00ge, but > can I do it a bit cleaner, especially wrt ldd noted lib dependencies at > run or, preferably, compile-time? If you configure plplot with the wrong prefix, it won't find the right libs. Alan mentioned all those env vars, but I haven't used them, so can't comment on that pathway. Here's what I recommend: configure tcl --prefix=/foo; make; make install configure tk --prefix=/foo; make; make install configure plplot --prefix=/foo; make; make install I think it will work, and be much simpler in this case. Not sure about how the tclindex stuff will work in this case. To be safe, I'd probably put /foo/bin early in my path. -- Geoffrey Furnish fu...@ga... |
From: <hv...@i-...> - 2001-10-04 17:23:56
|
On Thu, 4 Oct 2001, Geoffrey Furnish wrote: > If you configure plplot with the wrong prefix, it won't find the right > libs. Alan mentioned all those env vars, but I haven't used them, so > can't comment on that pathway. Here's what I recommend: > > configure tcl --prefix=/foo; make; make install > configure tk --prefix=/foo; make; make install > configure plplot --prefix=/foo; make; make install > > I think it will work, and be much simpler in this case. yeah, I did that, as noted in original note ("I installed tcl and tk in foo" implied ./configure --prefix=/foo for each pristine install). it did not work. That is why I did noted stuff and incantations.... > Not sure about how the tclindex stuff will work in this case. To be > safe, I'd probably put /foo/bin early in my path. yeah, well, I tried *many* obvious and not so obvious tacks. it boiled down to proper tclsh for mktclIndex script, and (however possible) pointing to right library. So my hacked install works. It's just ugly...... hv |
From: Geoffrey F. <fu...@ga...> - 2001-10-04 19:59:24
|
hv...@i-... writes: > On Thu, 4 Oct 2001, Geoffrey Furnish wrote: > > If you configure plplot with the wrong prefix, it won't find the right > > libs. Alan mentioned all those env vars, but I haven't used them, so > > can't comment on that pathway. Here's what I recommend: > > > > configure tcl --prefix=/foo; make; make install > > configure tk --prefix=/foo; make; make install > > configure plplot --prefix=/foo; make; make install > > > > I think it will work, and be much simpler in this case. > > yeah, I did that, as noted in original note ("I installed tcl and tk > in foo" implied ./configure --prefix=/foo for each pristine install). > > it did not work. That is why I did noted stuff and incantations.... Well, your note posted earlier today said: > 1. I installed tcl and tk with --prefix=/foo where foo is my home > [...] > 7. run ./configure --prefix=/foo/plplot --disable-itcl --disable-f77 Assuming that what you said is what you meant, it is critically different from what I said. You must use the /exact same/ prefix for all packages. If you do this, PLplot's autosensing logic will find the goods in $prefix/lib. But if you do Tcl/Tk to /foo and PLplot to /foo/plplot, then it will not find a libtcl in /foo/plplot/lib because it is in /foo/lib. If you check through the cf stuff like Maurice was suggesting, you'll see that "$prefix/lib" is one of the "standard places", and in particular, takes precedance over all the "hard coded standard places" like /usr/local/lib, /usr/lib, etc. In order for this to work, you have to configure PLplot, and all the custom installed packages you want it to use, to the /exact same/ prefix. If you did that, and it did not work, then we will find and fix the bug. But so far, your emails have not made it clear that you have actually done this. Please advise if you still think there is an autodetection bug. -- Geoffrey Furnish fu...@ga... |
From: Maurice L. <mj...@ga...> - 2001-10-04 19:36:24
|
hv...@i-... writes: > 6. in plplotbuild/scripts: > there is file mktclIndex which execs tclsh; this was pulling in > older tclsh 8.0 on host instead of tclsh in my copy of tcl. So I hard > code exec with exec /foo/tcltk/bin/tclsh. This gets us past > mktclIndex build problem. If this solved the problem, then it could also have been solved by making sure /foo/tcltk/bin/tclsh was in your path before any other tclsh. Which you should have anyway. > p.s. Does anybody know if Absoft f90 is supposed to work as f77 build? > Because my initial attempt at this failed....so f77 is off for now.... Is the f77 executable named "f77"? Is it in your path? If both are true it should work. You might want to take a look at the configure logic in cf/sysconf.in (search for "f77") to see if there's any obvious reason why it should fail on your system. -- Maurice LeBrun mj...@ga... |