comparison R/rdyncall/R/dynfind.R @ 0:0cfcc391201f

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:26:28 +0100
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:0cfcc391201f
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