[Rd] Package Matrix does not compile in R-devel_2009-01-10

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Jan 11 23:42:31 CET 2009

You need to take this up with the package maintainers: although 
recommended packages are distributed with R,  they are still 
contributed packages with separate maintainers.

At one point Matrix did work with a non-GNU make (the Solaris one) 
after suggestions from R-core members on how to remove the obvious 
GNUisms.  It would cetainly be helpful to let the package maintainers 
know what changes do work.  (I presume the issue is

amd_i_%.o: amd_%.c $(INC)
         $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -I../Include -DDINT -c $< 
-o $@
amd_l_%.o: amd_%.c $(INC)
         $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -I../Include -DDLONG -c $< 
-o $@

which are new rules since I was able to test.)

Unfortunately I can no longer build Matrix (and hence R-devel) on 
Solaris, as the Sun Studio compilers say some of the C++ code is 
invalid (and it looks so to me, and I reported it a while back): the 
file is spqr_front.cpp, so it has not got as far as the point that is 
giving you trouble.

On Sun, 11 Jan 2009, Rainer Hurling wrote:

> Dear developers,
> today I tried to build and install R-devel_2009-01-10 on FreeBSD 8.0-CURRENT 
> (i386) for testing purposes.
> All went well until compiling the now recommended (integrated) Matrix 
> package. At this point the following break occured:
> ------------------------------------------------
> begin installing recommended package Matrix
> * Installing *source* package 'Matrix' ...
> ** libs
> gcc -std=gnu99 -I/usr/local/R-devel/include -I./UFconfig -I/usr/local/include 
> -fpic  -g -O2 -c CHMfactor.c -o CHMfactor.o
> [..snip..]
> gcc -std=gnu99 -I/usr/local/R-devel/include -I../Include -I../../UFconfig 
> -I/usr/local/include    -fpic  -g -O2 -c colamd_global.c -o colamd_global.o
> gcc -std=gnu99 -I/usr/local/R-devel/include -I../Include -I../../UFconfig 
> -I/usr/local/include    -fpic  -g -O2 -I../Include -DDLONG -c colamd.c -o 
> colamd_l.o
> ar -rucs ../../COLAMD.a colamd_global.o colamd_l.o # colamd.o
> ( cd Source ; make lib )
> gcc -std=gnu99 -I/usr/local/R-devel/include -I../Include -I../../UFconfig 
> -I/usr/local/include    -fpic  -g -O2 -c amd_global.c -o amd_global.o
> make: don't know how to make amd_l_1.o. Stop
> *** Error code 2
> Stop in /tmp/Rtmpx5nUS8/R.INSTALL10d63af1/Matrix/src/AMD.
> *** Error code 1
> Stop in /tmp/Rtmpx5nUS8/R.INSTALL10d63af1/Matrix/src.
> ERROR: compilation failed for package 'Matrix'
> * Removing '/usr/local/R-devel/library/Matrix'
> *** Error code 1
> Stop in /usr/local/R-devel/src/library/Recommended.
> *** Error code 1
> Stop in /usr/local/R-devel/src/library/Recommended.
> *** Error code 1
> Stop in /usr/local/R-devel.
> ------------------------------------------------
> Please note, that on FreeBSD there is a BSD 'make' as default. If I want to 
> use gmake instead, I explicitly have to set it. Unfortunately this does not 
> work within building the whole R-devel system.

It would be helpful to know why not.  AFAIK GNU make works on other 
platforms with their own make.

> With R-2.8.1 I have no problems installing and using R. When I want to build 
> the (external) Matrix package I have to set an environment variable to gmake, 
> found at /usr/local/bin/gmake and all works well.
> Now my question: Is it possible to change the configure/build of the 
> integrated Matrix package on R-devel? For all other packages there is no need 
> to do so (at least for FreeBSD ;-)
> Please let me know if I can help.
> Thanks in advance,
> Rainer Hurling
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list