[Rd] Problems building package under Windows (PR#9303)

agner at agner.org agner at agner.org
Wed Oct 18 19:11:53 CEST 2006


This is a multi-part message in MIME format.
--------------090108060506030400070300
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Dear R people

I want to contribute a new package (various noncentral hypergeometric 
distribution functions) using C++, but there are many errors when I try 
to build even a simple package.

Here are the most important errors I have encountered so far:

1.
Trying to build the DLL, it can't find some of the include files. I had 
to make the following change in Makefile
and copy some .h files:
---------------------------------------------------------------------------------------------------------------

CFLAGS = $(OPTFLAGS) -I../include -I. -DHAVE_CONFIG_H -DR_DLL_BUILD
replace by:
CFLAGS = $(OPTFLAGS) -I../include -I../../include -I. -DHAVE_CONFIG_H 
-DR_DLL_BUILD

2.
Filename case sensitivity.
---------------------------------------------------------------------------------------------------------------
For some reasons, the perl scripts "build" and "check" are lower case, 
but "INSTALL" is uppercase. So I have to write
R CMD build
but
R CMD INSTALL

You may consider making Rcmd.exe case insensitive.

3.
Problem with tar in BUILD and INSTALL scripts:
---------------------------------------------------------------------------------------------------------------
This doesn't work:

    # workaround for paths in Cygwin tar
    $pkg =~ s+^([A-Za-x]):+/cygdrive/\1+;

It works when I change it to:

    $pkg =~ s+^([A-Za-x]):+/\1+;

This should be fixed everywhere you call tar

4.
Trying to execute zip in INSTALL script:
---------------------------------------------------------------------------------------------------------------

system("zip -r9Xq $startdir/$filename.zip $pkgname");

There is no zip in Mingw, or I haven't found it. I had to change this to 
make a .tar.gz file instead. Remember the workaround mentioned in point 
3 above.

5.
Cannot install archive
---------------------------------------------------------------------------------------------------------------
After the fixes above, I finally got an archive that looks OK, but it 
will not install. Trying:

R CMD INSTALL Test1_1.0.tar.gz

I get the following response:

---------- Making package Test1 ------------
  adding build stamp to DESCRIPTION
Warning message:
*** someone has corrupted the Built field in package 'test1' ***
  no R files in this package
  no man files in this package
  installing indices
Error in Rdinfo(RdFiles[i]) : missing/empty \name field in 
'c:/PROGRA~1/R/R-24~1
.0/R7CFE~1.INS/Test1/man/Test1.Rd.gz'
Rd files must have a non-empty \name.
See chapter 'Writing R documentation' in manual 'Writing R Extensions'.
Execution halted
make[2]: *** [indices] Error 1
make[1]: *** [all] Error 2
make: *** [pkg-Test1] Error 2
*** Installation of Test1 failed ***
Removing 'C:/PROGRA~1/R/R-24~1.0/library/Test1'

The first three messages don't make sense to me:
- Nobody has corrupted the built field, at least I haven't touched it
- There ARE R files in the package
- There ARE man files in the package

The fourth error indicates that it doesn't recognize that the Test1.Rd 
file is compressed. I didn't compress it, the scripts did!

I am including the file Test1_1.0.tar.gz for your inspection.

---------------------------------------------------------------------------------------------------------------

This is as far as I have come after several days of work. I still don't 
have even the simplest example working.

Could you please tell me how to get around the problems I haven't solved 
yet.

---------------------------------------------------------------------------------------------------------------

The poor documentation makes things worse. Allow me to propose some 
improvements in the manual "Writing R Extensions":

* The manual doesn't tell clearly which directory to run R CMD ...  
from. This is important.

* The manual doesn't tell clearly what software I need to install. I 
figured out that I needed Mingw, but it would be helpful
   to tell which packages of Mingw to install.

* It is not clear that you have to install Perl

* It doesn't tell that I need to install MS HTML Help Workshop.

  There seems to be a problem calling MS HELP (hcc.exe) unless the path 
is specified as DOS filenames without spaces.

* It would be useful if you told where to get Mingw, Perl and MS Help 
from. Maybe I am using wrong versions?

* The manual needs to tell whether to use _cdecl or _stdcall calling 
convention for C/C++ code under Windows32.

* A full working example of a package with a small C/C++ code would be 
very helpful. The package should contain all
   necessary source files and the commands to build and install it.

---------------------------------------------------------------------------------------------------------------

And one more thing:
I had severe problems making Mingw work on my computer. The error 
"Couldn't reserve space for cygwin's heap" came up all the time. It 
appeared to be a problem with DLL's having conflicting base addresses.

Not your fault, but when I tried to avoid the problem by compiling the 
DLL with a different compiler it turned out that I needed the file 
R.lib. To make R.lib I needed R.exp. To make R.exp I needed to rebuild R 
from its source, using the Mingw that didn't work! When I finally got 
Mingw to work and fixed the problems mentioned above, I got more and 
more errors from make, and when I finally got an R.exp file, it was empty!

May I suggest that you provide the files R.exp and R.lib with the binary 
source for Windows, or make them available for download. This would make 
it much easier to use a different compiler. For example, the Intel C++ 
compiler has a lot of advanced optimization options and big math 
function libraries that one might want to use.

---------------------------------------------------------------------------------------------------------------
For your ref. I have R version 2.4.0, and the following Mingw modules: 
mingw-runtime-3.10.tar.gz, w32api-3.7.tar.gz,
binutils-2.16.91-20060119-1.tar.gz, gcc-core-3.4.5-20060117-1.tar.gz, 
mingw32-make-3.80.0-3.tar.gz,
msys-1.0.dll-SNAP-1.0.11-2006.04.23.tar.bz2,
Windows 2000


--------------090108060506030400070300
Content-Type: application/x-gzip;
 name="Test1_1.0.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="Test1_1.0.tar.gz"

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
y5oo7+dlZWMSk8o23phcfTDVpyL6h19yBq81MG7hvwxnftmX8rGT48jF3C+Ov6hl5Y8yc7Zf
q3fPJo/PzKqZmjPxqPKbHqXbOsG70aEzVkdmzjXCdNRd1/mO6eUTL16IWN4h1Db0M0W7ob02
dLfr+qF+5Gxn+NRPq6LyL/veMjw/fmfNOoy8drZyY6B+1JpdezNPb+n6ZF3svqPlX920suMG
sBb+8d1GkadvOSJOUaV9kqyNVivYI5t623y8pNcHwU9vP9OdjL+3fGcmN3tMYbhMPWSLcve6
Kt8v7vWca7ZueMCGIeN2vFLXnnlQ9/LXs9/3MESd3nqzT35Y1o7OfYvU9n26bCSjDL2+mZkm
d1+yt9y14HDlPb8Pz+6EZxxYyyztmeo36trGxLqk3Cl+oSucG1atSnv66FFpY0zsw3NfL5af
yfaYM2zC9h8rTtSv7z2r5PG+kAVFFvlDi4vdsh8mTxs9fdmyLhvNXGfbLG9XnvPO2i9v+RGj
n7+IsrlyW9U31lCT+uIGfmHpnOyiFKN/UKHbmvPaGNmzwh1F0aURG2b4bp2VWyGvHG7etTo+
wX6BbG3RyZq8W+1c7R0gj1edggpHjJ0i3JFPq+pDL73IhFhvXXrfctjnn+4KbPw6tyrEadXt
hd692OM70brEbfMSxm5LSOZ6Dnj0sOCQ0W9tzd1fot0CD1I/JMVP7OUXn9uhpv3A3NrqFw27
5AP3xsyMPeLHI5U7Cm7d26kZsasxMPS7Mlp3zn0D2Sn1aUU/9sQFeu/Rhq7jndilA7y8uz0t
vlJvkTH+pC23PPjsDZdlM0LGsy/ia77Uu1lGaD/98VqO55XPPyndc93tI4OnO0vlTr3n1jtq
5ub77l3cKpXhayJ+XPlx3PrP+emJj6ek9Rqatjd6UCX1WLfm/nfzX9BndZ/4phR0roj7YNN9
96Jqf2W5sfHglfn3a06M9MzyXDRycO8HFm4TV2tOn0vtbD9hR0z/+n6k3WMv9aMp3p7Hnxyd
0W/1dyF0gtuC6vYdKxLbjf61+ohHh2ivrD4rSrxcBoXB5rs2Wx2bev7O8zmT3ZdVbDkZtb32
UPSPnTKtT7jaxBADq+wcVGMWNH6WnDj/kRYLG+dxM+5ccsiozcuX17llJC4iFi6IeDe2/YsN
dpcbd6T8+tg5v3Fxxp5XG1KOBlSCgwv98tVi1devOvheyzl92ObfO8O1wb8C0/V/ou/fea/1
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
--------------090108060506030400070300--




More information about the R-devel mailing list