Alan W. Irwin writes: > On 2010-05-12 11:22-0500 Geoffrey Furnish wrote: > > BTW, taking a cue from the wiki, I added some options on the cmake line > > like this: > > > > % cmake -DCMAKE_INSTALL_PREFIX=$HOME/devel/8.4/prefix > -DCMAKE_INCLUDE_PATH=$HOME/devel/8.4/prefix/include > -DCMAKE_LIBRARY_PATH=$HOME/devel/8.4/prefix/lib .. > > That CMAKE_INCLUDE_PATH is incorrect; you should append /tcl8.4 to it.
Just to be clear, the named directory did hold the Tcl headers: [furn...@ziffy]~% ls $HOME/devel/8.4/prefix/include tclDecls.h tcl.h tclPlatDecls.h tkDecls.h tk.h tkPlatDecls.h So, I don't really agree this was wrong. It is unarguable, however, that it was insufficient, which I guess is the part that mystifies me. In the end, what I stumbled my way into, which did "work", was this: cmake -DCMAKE_INSTALL_PREFIX=$HOME/devel/8.4/prefix -DCMAKE_INCLUDE_PATH=$HOME/devel/8.4/prefix/include -DCMAKE_LIBRARY_PATH=$HOME/devel/8.4/prefix/lib -DTCL_LIBRARY=$HOME/devel/8.4/prefix/lib/libtcl8.4.so -DTK_LIBRARY=$HOME/devel/8.4/prefix/lib/libtk8.4.so -DBUILD_TEST=on .. When I forcibly set the Tcl/Tk libraries in this way, I got what I needed to debug the problem. I really don't want to sound tooooo curmudgeonly here. I know the CBS has done us a lot of good by incorporating so many platforms into one system, which were not previously served by a single build system. And I know people have put a huge amount of work into making it what it is today. But I do wish it behaved more, well, I suppose any adjective here would sound inflamatory. Maybe best to just say, ... more ... according to my own expectations. And what would that mean? Well, as I showed at the start of this post, all I wanted to do was build PLplot against a different Tcl/Tk than what was installed on my system. So what did I do? I compiled Tcl and Tk and installed them to a custom, non-default prefix. Then I ran PLplot's cmake configuration, and told it the prefix I wanted it to install to. I *expect* it to undesrstand that the named prefix is the one it's supposed to play with. But what it did, was ignored (mostly) my prefix, and continued to use system components. I find this behavior to be many things, including at least, surprising, perplexing, annoying and exasperating. It is also different than how PLplot's old configuration system used to work. Over the last three years, my experience with the CBS has been that it is so hard to configure, that I normally record my configurations in shell scripts, and then run those scripts whenever I want to compile up a new PLplot. My personal opinion is that the CBS is almost unusable in a manual mode. Okay, I used it manually today, with numerous errors and missteps along the way. For debugging, I guess it's good enough. But the point is, look at how long the command line had to become, before it finally did the simple thing I wanted, of using the components found in a named prefix construction zone. I will keep writing my multi-line cmake invocation scripts, and I'm sure I can get by that way. But I do think PLplot would be more accessible to more people, if a shorter/simpler command line would get it to do the simple things that developers want. In my opinion, anything found in the installation prefix, should be the default. Package specific overides are okay, but shouldn't be required to find things in the installation prefix. And having it use the system installed packages for things it doesn't find in the installation prefix zone is okay, but it should be possible to turn that off. So, to me, a cmake invocation line should look like: % cmake --prefix=/where/I/put/my/stuff or maybe % cmake --prefix=/where/I/put/my/stuff --prefix-only to say that I don't want it to use anything not found in my prefix. Then, developers could get *exactly* what they want, for any given application, by simply constructing their prefix (of which most things going in there will be autoconf based, and use "configure --prefix=/some/where"), and then configuring PLplot against that. This proposed --prefix-only flag would control whether it would add in capabilities found from elsewhere on the system, or not. Mostly I would want not, but I could see that maybe more people would want so than not, so that not should not be the default for that switch. If cmake can't be made to use autoconf-like command line switches like "--prefix=", well, okay, but it still shouldn't take more than one token to tell PLplot's cmake where you want it to find stuff that is all located in the same prefix into which PLplot is being told to install itself. -Geoff ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel