[R-SIG-Mac] rgl revisions to allow dual install
stefano iacus
stefano.iacus at unimi.it
Mon Dec 11 13:12:43 CET 2006
Duncan,
I see now. On PPC you should use
file.exists(system.file("libs/ppc", "aglrgl.so", package ="rgl"))
and, under intel,
file.exists(system.file("libs/i386", "aglrgl.so", package ="rgl"))
instead of just
file.exists(system.file("libs", "aglrgl.so", package ="rgl"))
i.e.
file.exists(system.file(file.path("libs",.Platform$r_arch),
"aglrgl.so", package ="rgl"))
And yes, you have to explicitly set the DISPLAY var under the shell
unless you use xterm.
I have only one doubt, which I'm going to verify: if you override the
DYLD_LIBRARY_PATH var there should be potential problems with tcltk
which is still x11.
stefano
On 11/dic/06, at 20:49, Duncan Murdoch wrote:
> On 12/10/2006 8:51 PM, stefano iacus wrote:
>> It builds fine on PCC and apparently the two libs are in the
>> installed directory.
>> The only problem is that both on X11 term and on R.app always the
>> X11 .dll is taken, so no AGL for me any more.
>> I don't see any conditionals on .Platform$GUI in the loading of the
>> library though.
>
> It's in the .onLoad function in zzz.R:
>
> if ( .Platform$OS.type == "unix" ) {
> unixos <- system("uname",intern=TRUE)
> if ( unixos == "Darwin" ) {
> # For MacOS X we have to remove /usr/X11R6/lib from the
> DYLD_LIBRARY_PATH
> # because it would override Apple's OpenGL framework
>
> Sys.putenv("DYLD_LIBRARY_PATH"=gsub("/usr/X11R6/lib","",Sys.getenv
> ("DYLD_LIBRARY_PATH")))
> if ( .Platform$GUI == "AQUA" &&
> file.exists(system.file("libs", "aglrgl.so", package =
> "rgl"))) {
> initValue <- 1
> rgl <<- "aglrgl"
> }
> }
> }
>
> Does the lib get a different name or sit somewhere else on that
> system?
> I have the file.exists test in case someone has configured not to
> build the AGL version, but maybe the filename is wrong. Do you know a
> safe test to see if the lib exists?
>
> On 12/10/2006 8:56 PM, stefano iacus wrote:
>> and, for the standard shell (i.e. not under xterm), I can open and
>> plot on a x11() device but during demo(rgl)
>>
>>> rgl.open()
>> Error in rgl.open() : rgl.open failed
>>> rgl.open
>
> The initialization is currently done in .onLoad, and if it fails, no
> additional attempts are made. I'll see if it's safe to try again.
>
> By the way, did you manually set DISPLAY before you opened the x11
> device? I get an error in the standard shell when I try that, but
> Sys.putenv fixes it.
>
> Duncan Murdoch
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
More information about the R-SIG-Mac
mailing list