0
|
1
|
|
2 dynfind1 <- if (.Platform$OS.type == "windows") {
|
|
3 function(name, ...) {
|
|
4 handle <- .dynload(paste("lib",name,sep=""),...)
|
|
5 if (!is.null(handle)) return(handle)
|
|
6 .dynload(name,...)
|
|
7 }
|
|
8 } else {
|
|
9 if ( Sys.info()[["sysname"]] == "Darwin" ) {
|
|
10 function(name, ...) {
|
|
11 handle <- .dynload(paste(name,".framework/",name,sep=""),...)
|
|
12 if (!is.null(handle)) return(handle)
|
|
13 .dynload(paste("lib",name,".dylib",sep=""),...)
|
|
14 }
|
|
15 } else {
|
|
16 function(name, ...) {
|
|
17 handle <- .dynload(paste("lib",name,".so",sep=""),...)
|
|
18 if (!is.null(handle)) return(handle)
|
|
19 handle <- .dynload(paste("lib",name,sep=""),...)
|
|
20 if (!is.null(handle)) return(handle)
|
|
21 .dynload(paste(name,sep=""),...) # needed by Solaris to lookup 'R'.
|
|
22 }
|
|
23 }
|
|
24 }
|
|
25
|
|
26 dynfind <- function(libnames, auto.unload = TRUE) {
|
|
27 for (libname in libnames) {
|
|
28 handle <- dynfind1(libname, auto.unload)
|
|
29 if (!is.null(handle)) return(handle)
|
|
30 }
|
|
31 }
|
|
32
|