From: Geoffrey F. <fu...@ga...> - 2001-11-30 16:52:21
|
Jo=E3o Cardoso writes: > Sorry, I meant, using=20 >=20 > =09driverlibs :=3D -L. -l$(PLLIB_NAME)$(LIB_TAG) >=20 > Well, I followed your recipe and build java (jdk-1.1.8). Python=20 > demos, Java demos and Octave demos all run OK with the png device (a= s=20 > well as other fiole devices), using only the above driverslibs. Hi all, Sorry for my unresponsiveness. I'm totally overwhelmed with other stuff. A quick comment on this business. I have not been confused by the behavior that has been reported. I think a sufficiently careful study of the emails that were exchanged earlier this fall, would make it all make sense. But it is certainly frustrating, no argument there. The fix mentioned above should work. Drivers should only depend on libplplot.so, plus whatever driver specific support libs they might need. The dyndrv.in currently makes no effort to figure out exactly and only which libs are appropriate to each driver. It would be great to fix that, although also laborious, which is why I never did it. The best fix, however, is to do some code development to break even the dependence upon libplplot.so, leaving only the (potential) dependence of a driver upon some external libs (gd, X11, whatever). =20= The way to do this is to embellish the driver interface so that when a driver is inited, you pass in a struct, which contains members that are function pointers: struct plenv { void (*plapi_xyzcall)( PLINT x, ... ); ... }; So, plcore would make one of thiese, fill in the function pointers with the values of (addresses of) the various PLplot API function entry points that might be conceivably needed by drivers, and then pass this struct into the driver when init'ing it. Then the drivers store this, and make all their calls to the PLplot API via: plenv->plapi_xyzcall( x, ... ); etc. This breaks the linkage requirement of drivers upon libplplot.so. =20 Doing it this way would follow in the footsteps of the Java Native Interface, and, I think Vince said earlier, the TEA model. At this point I can only offer this sketch, I cannot commit to implement anytime soon. --=20 Geoffrey Furnish fu...@ga... |