From: Alan W. I. <ir...@be...> - 2003-02-14 18:17:11
|
On Fri, 14 Feb 2003, Alessandro Mirone wrote: > I would like to try now to get PyDVT working with 5.2.0 ( or eventually > CVS snapshots ). Excellent. 5.2.0 has some important bug fixes and some very neat new contouring API for 3D plots. For a recent screenshot look at http://plplot.sourceforge.net/examples/demo08/index.php. > > But by now I fail compiling plplot. > > __ defining CPPFLAGS or LDFLAGS as environment variable breaks the > compilation of libltdl > ( CPPFLAGS=-I.... is given as argument to libltdl configure > script ) > > -- Double precision breaks the compilation of drivers : xwind.c is > required but only xwin > is there Is this for an unmodified plplot-5.2.0? What are the details of your platform? I am not sure of that first issue, but the second one (xwind.c) sounds bizarre to me. We do not have a precision tag for the names of our source code. > > -- I tried to modify makefile.am but then configure.in is missing. > automake, autoconf, and libtool all must be the appropriate latest versions (autoconf-2.57, automake-1.7.2, and libtool-1.4.3). We use configure.ac and not configure.in. If your autotools are demanding configure.in, it means they are dated. autotools are in a state of flux at the moment so you must be quite precise in the versions that you adopt. The above versions are what we use for preparing the CVS version of plplot for the configure step using the ./bootstrap.sh command. bootstrap.sh has already been executed for the plplot-5.2.0 tarball so no autotools are needed (and should not be used) in the tarball case at all. > > Is it possible to disactivate libltdl( see the static library issue > below )? That library is used to dynamically load our drivers as needed. Specify --disable-dyndrivers if you don't want this feature. With dynamic drivers disabled, the drivers are absorbed into libplplot. However, there is a well-known bug in 5.2.0 such that --disable-dyndrivers and --with-double cannot be specified at the same time. Use our current CVS (which is being prepared for release of 5.2.1 in April) if you want the combination of --disable-dyndrivers and --with-double. If you use CVS, you will need the above autotools versions as well as swig version 1.3.17. (Like the autotools case, swig is not required if you just use the tarball, but it sounds like you will want to try the CVS version.) > > > *** LIST of modifications > > -- very small modifications, a part this one : > > two python modules are created : > ** pyqt_module.so > ** plplotmodule.so > > that's because pyqt_module is used for displaying while plplotmodule > for printing, and such two different operations need different > settings( while plplot, if > I remember well has a global pointer to a static structure > that cannot be duplicated to have different settings for > different instances of the structure ) Before answering that I need to give you some background. our python interface is swig-generated now, and the results are organized differently than before. There is now a hand-crafted plplot_widgetmodule.so extension module that contains a small number of functions (mostly donated by you long ago) that are useful for plplot widgets. There is a user-friendly plplot.py module that wraps plplotc.py which in turn wraps the extension module _plplotcmodule.so. swig (with help from autotools) automatically generates both plplotc.py and _plplotcmodule.so. Although setup.py.in is still in CVS bindings/python it is only there for historical reference because we no longer use the setup.py method on the Unix side. With that background out of the way, I think what you should do if you need two versions of the results configured in different ways is configure, build, and install the first version and move the installed results in, for example, $prefix/lib/python2.1/site-packages/ out of the way to a special directory. Then configure, build, and install your second version. When you want to use the first version specify the appropriate directory in a wrapper and similarly for the second version for a differently named wrapper. The wrappers should keep the namespaces from the two separate versions from colliding with each other. By the way, if you don't know how to specify a special directory for a special python module you should be able to easily generalize what is done in examples/python/plplot_python_start.py(.in).) Also, look at plplot.py to see how easy it is to wrap one namespace with another. So to summarize this, I think it should be entirely straightforward to have several differently configured plplot modules that are wrapped under different names. But before you get to that, you should first make sure you can build and use the unmodified CVS version of plplot on at least a Linux machine. For example, I have maintained prova.py (original version donated by you some time ago) in the installed examples $prefix/lib/plplot5.2.0/examples/python/. It still works for me, and should also work for you for the unmodified CVS version of PLplot. Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the Canadian Centre for Climate Modelling and Analysis (www.cccma.bc.ec.gc.ca) and the PLplot scientific plotting software package (plplot.org). __________________________ Linux-powered Science __________________________ |