On 20 April 2011 at 10:20, Sean Robert McGuffee wrote: | | | Hi, thanks! | | >On 4/20/11 10:03 AM, "Steve Lianoglou" <mailinglist.honey...@gmail.com> wrote: | > Hi, | > | > On Wed, Apr 20, 2011 at 9:49 AM, Sean Robert McGuffee | > <sean.mcguf...@gmail.com> wrote: | >> Hi, I have a quick couple of questions about some of the documentation on | >> the web page: | >> http://cran.r-project.org/doc/manuals/R-exts.html#Linking-GUIs-and-other-fron | >> t_002dends-to-R | >> under the heading: | >> 5.6 Interfacing C++ code | >> | >> Question 1: | >> If I¹m at a terminal, I can type the instructions they suggest: | >> R CMD SHLIB X.cc X_main.cc | >> If I wanted a package to do this, how would I tell the package to do that | >> same thing? | > | > Just to make sure we're all on the same page, you want an R package to | > compile some source code into a shared library/dll from inside R? | > | > Not sure if there's a "baked in" way for that to happen, but maybe you | > can invoke `R CMD WHATEVER` from inside R using the `system` function: | > | > R> ?system | > | | ok, so where in the package would I put the system call in the package to | have it run when installing the package?
You don't. As I said, 'R CMD INSTALL' et all do that. Download an existing package with source, install it. Study its sources, study the 'Writing R Extensions' manual. Ask on r-devel. Basic R questions are off-topic here. | >> Would I use the same command and just include it in a file somewhere in the | >> package? | >> If so, which file? | > | > Hmm ... I'm curious what you're trying to do, exactly? | | I'm trying to figure out how take commands such as " R CMD SHLIB X.cc | X_main.cc" followed by "dyn.load(paste("X", .Platform$dynlib.ext, sep = | ""))," which are commands I can get to work for myself as a human | interactively, and put the commands into a package to be automatically run | when installing the package. I mean, it's great if I can compile a c++ file | and then use it inside R, but I'm only doing that so I can let other people | do that via a package. As much as I read this documentation, I keep missing Again, I like working from an existing, working package. As I said, there are almost 1000 to pick from. Please direct follow-ups that have no bearing on Rcpp to r-devel. Dirk | the connections between the different sections. This is a section I am | loving because it works very well. Thus, I want to figure out how to take | the baby steps I'm doing and combine them into a package. Specifically, I | want to take these two commands and insert them into a package so that these | commands will compile my code and make a dynamic ".so" file where R can | access its functions when others install my package. | | > | >> Question 2: | >> dyn.load(paste("X", .Platform$dynlib.ext, sep = "")) | >> | >> Where does .Platform$dynlib.ext come from? | >> What does it mean? | >> What do it¹s components .Platform and $dynlib and .ext mean? | > | > .Platform is lust a normal list -- it is defined internally (I guess). | > You can access "named" elements of a list with `$`. | > | > .Platform$dynlyb (or .Platform[['dynlib']]) tells you the extension | > your particular system uses for shared libraries: | > | > R> .Platform | > $OS.type | > [1] "unix" | > | > $file.sep | > [1] "/" | > | > $dynlib.ext | > [1] ".so" | > | > $GUI | > [1] "X11" | > | > $endian | > [1] "little" | > | > $pkgType | > [1] "mac.binary.leopard" | > | > $path.sep | > [1] ":" | > | > $r_arch | > [1] "x86_64" | > | > See ?.Platform for more help. | | Ah, thanks, that clarifies exactly what .Platform$dynlib.ext is, it's ".so" | on my system. | | This, the dyn.load(paste("X", .Platform$dynlib.ext, sep = "")) is equivalent | to the command dyn.load("X.so) which now makes sense in that context! | | | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel