From: Arjen M. <arj...@wl...> - 2007-10-29 18:07:34
|
Hi Alan, I won't keep in suspense: dynamic drivers work when I rename the .so file to .dll! However, there is a small caveat: For get-drv-info to do its job, the path/ld_library_path must be extended or the cygplplotd-9.3.0.dll and cygcsirocsa-0.0.1.dll copied into the drivers directory. I did that manually and then example produced a list of the two PostScript drivers. So: indeed, dynamic drivers on Cygwin are possible! Regards, Arjen |
From: Alan W. I. <ir...@be...> - 2007-10-29 22:21:38
|
On 2007-10-29 19:07+0100 Arjen Markus wrote: > Hi Alan, > > I won't keep in suspense: dynamic drivers work when I rename > the .so file to .dll! > > However, there is a small caveat: > > For get-drv-info to do its job, the path/ld_library_path > must be extended or the cygplplotd-9.3.0.dll and cygcsirocsa-0.0.1.dll > copied into the drivers directory. > > I did that manually and then example produced a list > of the two PostScript drivers. > > So: indeed, dynamic drivers on Cygwin are possible! Excellent news indeed. However, there is a bit more to do to finish this off. I have changed the suffix of dynamic drivers to .dll in the Cygwin case for revision 7989. Could you please finish the experiment with this revision? That is set LD_LIBRARY_PATH, do the complete build again, then finish with the installed examples build and running the installed examples to make sure they work? You should point LD_LIBRARY_PATH to the install location of the libraries before doing that installed examples test since you want to test the installed libraries and not the build-tree libraries. Also, please make the appropriate comments about setting LD_LIBRARY_PATH for the build case and the installed examples run for the Cygwin dynamic device case in the wiki. >From looking at your detailed make.out results and also those of Hiroyasu, rpath is not automatically being set in the build tree for Cygwin which is why you have to set LD_LIBRARY_PATH to get get-drv-info to work properly. That also means that ctest (our build-tree test scheme) will not work on Cygwin without setting LD_LIBRARY_PATH to a colon-separated list of the appropriate build-tree directories. Finally, from Hiroyasu's make-install.out, rpath is also not being set for the installed libraries (which is why you will have to set LD_LIBRARY_PATH to the installed location of the libraries to get the installed and built examples to actually run). I plan to post to the CMake list asking why rpath is not being set in either the build tree or install tree for the Cygwin platform. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Jim D. <ji...@di...> - 2007-10-30 04:16:51
|
"Alan W. Irwin" <ir...@be...> writes: > I have changed the suffix of dynamic drivers to .dll in the Cygwin case for > revision 7989. Could you please finish the experiment with this revision? > That is set LD_LIBRARY_PATH, do the complete build again, then finish with > the installed examples build and running the installed examples to make sure > they work? You should point LD_LIBRARY_PATH to the install location of the > libraries before doing that installed examples test since you want to test > the installed libraries and not the build-tree libraries. I performed the best by setting the LD_LIBRARY_PATH to include lib/csa and src, which are the locations of the csa and plplot DLL's. I configured plplot with the command cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_TEST=ON -DENABLE_DYNDRIVERS=ON -DENABLE_tk=OFF -DENABLE_tcl=OFF ../plplot-pure where plplot-pure is a fresh copy of 7989. The build directory was empty. The make command failed when it attempted to build the drivers with the following error cd /opt/build/cygwin-no-ivf/drivers && ./get-drv-info.exe hpgl > /opt/build/cygwin-no-ivf/drivers/hpgl.rc make[2]: *** [drivers/hpgl.rc] Error 53 If I type type the following command strace ./get-drv-info.exe hpgl I get a dialog box stating that libplplotd-9.3.0.dll was not found even though it can be found on the LD_LIBRARY_PATH. I also added the src directory to the PATH and get-drv-info was able to work. I then cleaned the build directory and was able to successfully build with dyndrivers enabled. -jd |
From: Arjen M. <arj...@wl...> - 2007-10-30 05:23:54
|
> I performed the best by setting the LD_LIBRARY_PATH to include lib/csa > and src, which are the locations of the csa and plplot DLL's. I > configured plplot with the command > > cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_VERBOSE_MAKEFILE=ON > -DBUILD_TEST=ON -DENABLE_DYNDRIVERS=ON -DENABLE_tk=OFF -DENABLE_tcl=OFF > ../plplot-pure > > where plplot-pure is a fresh copy of 7989. The build directory was > empty. The make command failed when it attempted to build the drivers > with the following error > > cd /opt/build/cygwin-no-ivf/drivers && ./get-drv-info.exe hpgl > > /opt/build/cygwin-no-ivf/drivers/hpgl.rc > make[2]: *** [drivers/hpgl.rc] Error 53 > > If I type type the following command > > strace ./get-drv-info.exe hpgl > > I get a dialog box stating that libplplotd-9.3.0.dll was not found even > though it can be found on the LD_LIBRARY_PATH. I also added the src > directory to the PATH and get-drv-info was able to work. I then cleaned > the build directory and was able to successfully build with dyndrivers > enabled. > > I can confirm this: apparently LD_LIBRARY_PATH is not used, but PATH is (as is the method for Windows programs in general). The one issue that is left is that I have to copy the font files manually from the directory with the sources, not the build directory, before the examples can run. Regards, Arjen |
From: Alan W. I. <ir...@be...> - 2007-10-30 08:35:31
|
On 2007-10-30 06:23+0100 Arjen Markus wrote: > I can confirm this: apparently LD_LIBRARY_PATH is not used, but PATH is > (as is the method for Windows programs in general). > > The one issue that is left is that I have to copy the font files > manually from the directory with the sources, not the build directory, > before the examples can run. Moving files around (or even the preferred alternative of setting a lot of environment variables) should only be an issue in the build tree. In general the build tree is a complicated situation because everything is spread all over the place. To see what really has to be done in the build tree have a look at how TEST_ENVIRONMENT is set up and used in test/CMakeLists.txt. Virtually none of these environment variable complications are necessary in the install tree because everything (including fonts) is installed in a known location that is built right into the code. Therefore, Arjen, have you actually tried building the examples in the install tree (after "make install" has been run) and running make and ./plplot-test.sh in the installed examples directory (e.g., in $prefix/share/plplot5.8.0-RC1/examples, where $prefix is the installation prefix you specified on the cmake command line? For that case, there should be no need to copy any files (assuming you have $prefix/lib, the single location where all the libraries are installed, on your PATH). Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <arj...@wl...> - 2007-10-30 10:04:58
|
Alan W. Irwin wrote: > >Therefore, Arjen, have you actually tried building the examples in the >install tree (after "make install" has been run) and running make and >./plplot-test.sh in the installed examples directory (e.g., in >$prefix/share/plplot5.8.0-RC1/examples, where $prefix is the installation >prefix you specified on the cmake command line? For that case, there should >be no need to copy any files (assuming you have $prefix/lib, the single >location where all the libraries are installed, on your PATH). > > > Oops, that is my fault: I usually run the examples _before_ proper installation. Thanks for reminding me of that procedure. Regards, Arjen |
From: Alan W. I. <ir...@be...> - 2007-10-30 10:17:28
|
On 2007-10-29 15:20-0700 Alan W. Irwin wrote: > I plan to post to the CMake list asking why rpath is not being set in either > the build tree or install tree for the Cygwin platform. Here was the definitive answer from Bill Hoffman: "There is no such thing as RPATH on windows or cygwin. Basically on windows/cygwin you have to have the shared libraries or dll's in the same directory as the executables. The only RPATH of sorts on windows is that "." is in the PATH. Other than that, users have to put directories with dll's in the PATH explicitly." So to do a comprehensive ctest in the build tree you will have to add a whole slew of different directories (the src directory location in the build tree as well as bindings/c++, bindings/f77, bindings/f95, etc.) to your PATH. OTOH, in the install tree you should remove all the build tree locations in the PATH and add just one install tree location (e.g., $prefix/lib) to the PATH. Hope that explanation helps, and that one of you with access to a Cygwin platform will put the explanation in the Cygwin part of wiki (along with your other updated Cygwin comments) so we don't have to guess next time the question of rpath on Cygwin comes up. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |