Skip to content

R Package Building Question

3 messages · Brett Presnell, Thomas Lumley, Brian Ripley

#
I'll start with my apologies to Martin for sending those last two of
message to the list owner (the last one he forwarded was actually sent
a week or two ago and must have been lost in the ether somehow). This
is basically due to fast copy/paste in emacs without paying much
attention to what I'm doing.  Lack of sleep is my excuse, but I don't
know if that goes very far with the hardworking R developers (does
Brian Ripley ever sleep?).

I would also like to add to the kudos for the R core team (and all the
other contributors as well).  Amazingly good work!  The development of
R changes things in a very significant and positive way for many of us
(and our students too).

Finally, I have a question that about building R Packages.  I've read
through the docs and looked into some of the contributed packages, but
I cannot seem to figure this out.  I've put together a very small
package of datasets and a few simple convenience functions for an
undergraduate class.  There are only 4 or 5 functions in the package
at present, and they are all in one file under the R subdirectory of
the package.  I'm having trouble getting this to work under both
Windows-9x and on the UNIX side because of the following:

1. If this file is named R/sta4504 (with no extension), then when I
build the package (under Solaris), create a zip file and install the
package on a Windows PC, it works fine.  However, under Solaris,
R INSTALL sta4504 hangs and does not complete the installation of the
package.

2. If this file is named R/sta4504.R, then the package installs and
works fine on the Solaris machine, but the same package is not
recognized as even existing by R under Windows.

I notice that most (all?) of the contributed packages leave off the
extension, in spite of the advice to the contrary (at least to my
reading) in Section 1.1.3 of "Writing R Extensions", and they all work
on both platforms.  I don't remember ever seeing this come up on the
list, so what am I missing?

In case it matters, I'm running R 0.99.0 on both platforms (I guess
I'll be upgrading the Solaris side this weekend).  The version of
Win95 is several years old (mid 1996, version 4.00.950a it says).
Solaris is 2.6.
#
On Wed, 1 Mar 2000, Brett Presnell wrote:

            
What you're missing is that Unix packages are source code and Windows
packages are compiled. It's less obvious when there isn't any C or Fortran
code.  This is because typical Windows installations lack not only
compilers for C and Fortran but also the tools to process help pages.

In source form the package/R directory contains one or more files with
extensions .R (or .r, .q or various other possibilities), the package/src
directory has C or Fortran source code, package/man has .Rd files.

In compiled form package/R has a single file whose name is the name of the
package, the /src subdirectory is replaced by a /libs subdirectory with a
shared library, the /man subdirectory is replaced by one or more
subdirectories with various compiled help files.

So, sta4504.tgz should be a source package, with extensions, sta4504.zip
should be a compiled package, with no extensions.  There would be other 
differences if you had help pages for the functions.


	-thomas

Thomas Lumley
Assistant Professor, Biostatistics
University of Washington, Seattle






-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Wed, 1 Mar 2000, Thomas Lumley wrote:

            
I don't think you *install*ed on Windows. I think you unpacked it.
(To install it, you use make pkg-sta4504.)
Did you *install* it under Windows, or did you just plonk it in the
library directory?
Another way of putting this. What goes in the R_HOME/library directory
on either platform is an installed package. What is distributed in the main
CRAN directory is source packages.  What is in the Windows-NT/contrib
directory is a dump of an installed package, not a source package.