[R] Problem with making Matrix

Martin Maechler maechler at stat.math.ethz.ch
Wed Jan 11 11:53:23 CET 2006

>>>>> "Andrew" == Andrew Robinson <A.Robinson at ms.unimelb.edu.au>
>>>>>     on Wed, 11 Jan 2006 14:12:11 +1100 writes:

    Andrew> Hi R-help citizens,
    Andrew> I'm having trouble making version 0.99-6 of Matrix on FreeBSD 6.0.
    Andrew> The error message is:

    Andrew> * Installing *source* package 'Matrix' ...
    Andrew> ** libs
    Andrew> gcc -I/usr/local/lib/R/include  -I/usr/local/include -D__NO_MATH_INLINES  -fPIC  -g -O2 -c Csparse.c -o Csparse.o

    Andrew> ... numerous lines deleted ...

    Andrew> gcc -I/usr/local/lib/R/include  -I/usr/local/include -D__NO_MATH_INLINES  -fPIC  -g -O2 -c triplet_to_col.c -o triplet_to_col.o
    Andrew> f77   -fPIC  -g -O2 -c zpotf2.f -o zpotf2.o
    Andrew> f77   -fPIC  -g -O2 -c zpotrf.f -o zpotrf.o
    Andrew> touch CHOLMOD.stamp UMFPACK.stamp COLAMD.stamp CCOLAMD.stamp AMD.stamp Metis.stamp LDL.stamp
    Andrew> gmake[1]: Entering directory `/tmp/R.INSTALL.WMODs1/Matrix/src/CHOLMOD'
    Andrew> ( cd Lib ; make )
    Andrew> make: don't know how to make w. Stop
    Andrew> gmake[1]: *** [library] Error 2

    Andrew> I am running:

    >> version  
    Andrew> _                      
    Andrew> platform i386-unknown-freebsd6.0
    Andrew> arch     i386                   
    Andrew> os       freebsd6.0             
    Andrew> system   i386, freebsd6.0       
    Andrew> status                          
    Andrew> major    2                      
    Andrew> minor    2.1                    
    Andrew> year     2005                   
    Andrew> month    12                     
    Andrew> day      20                     
    Andrew> svn rev  36812                  
    Andrew> language R                      

    >> sessionInfo()
    Andrew> R version 2.2.1, 2005-12-20, i386-unknown-freebsd6.0 

    Andrew> attached base packages:
    Andrew> [1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
    Andrew> [7] "base"     

    Andrew> NB I was able to install Matrix 0.98-7 using the FreeBSD make without any
    Andrew> problem.  

Yes, 0.98-7  did not have the new CHOLMOD soureces yet.

    Andrew> problem.  If I try to make version 0.99-6 using the FreeBSD make then
    Andrew> it fails with "Missing dependency operator" errors.

    Andrew> Does anyone have any suggestions?

It could be that in FreeBSD behaves differently from GNU make
and there's something GNU specific in one of the various 'Makefile's...

Ahh, yes, I think I have good guess:
The src/CHOLMOD/Makefile has explicit calls to 'make' as in

>>   # Compile the C-callable libraries and the Demo programs.
>>   all:
>> 	  ( cd Lib ; make )

but from the error message above I see you are using 'gmake'
which I assume is an alias for GNU make.

Of course the explicit 'make' in these Makefiles is "bad" -- 
We (the Matrix authors) may be excused by the fact that it is
"not our code" and we tried to change as little as possible
in order to facilitate updates (when new versions of  the
"upstream" CHOLMOD code would come about).

Can you try and replace 'make' by '$(MAKE)' in the following
three places, and see if it works
possibly after writing (in your shell)
       export MAKE=gmake  
or     setenv MAKE gmake
(depending on the kind of shell you have) 


AMD/Makefile:	( cd Source ; $(MAKE) lib )
AMD/Makefile:	( cd Source ; $(MAKE) clean )
CHOLMOD/Makefile:	( cd Lib ; $(MAKE) )
CHOLMOD/Makefile:	( cd Lib ; $(MAKE) )
CHOLMOD/Makefile:	( cd Lib ; $(MAKE) purge )
CHOLMOD/Makefile:	( cd Lib ; $(MAKE) clean )
UMFPACK/Makefile:	( cd Source ; $(MAKE) lib )
UMFPACK/Makefile:	( cd Source ; $(MAKE) clean )

Martin Maechler, ETH Zurich

More information about the R-help mailing list