Missing CHOLMOD in octave 2.9.9

M. White mwhite15 at woh.rr.com
Sun Feb 25 12:09:24 PST 2007

On Feb 18, 2007, at 22:23, Ryan Schmidt wrote:

> On Feb 18, 2007, at 20:33, M. White wrote:
>> Hi,  I am not exactly if this is the correct place to ask this
>> question or not - my apologies if misplaced.
>> I just installed octave 2.9.9 using darwinports 1.3.2 and tried to
>> run a small matrix test case for matlab (mytrit.m from Johan
>> Helsing of Lund University).  When I try to run it, it gets to the
>> line:
>>          R=chol(-A);
>> and I get the error message:
>>     error: Missing CHOLMOD. Sparse cholesky factorization disabled
>> [If I comment out that section, everything else seems to run fine.]
>> Now as near as I can tell cholmod should be part of SuiteSparse
>> (which was also installed [v. 2.4.0_0] as part of this process).
>> The headers for cholmod are found in "/opt/local/include/
>> ufsparse".  Unless there was some error in the installation that
>> was not reported, I should have CHLMOD I think.  There is also a
>> chol.oct found in "/opt/local/libexec/octave/2.9.9/oct/powerpc-
>> apple-darwin8.8.0/chol.oct".
>> Unfortunately, the I did not try to build it verbose - and cannot
>> find any log or error files that might point out what actually
>> happened.  Does anyone have any ideas on what I possibly did wrong
>> and how I might fix it?
>> I have a copy of 2.1.73 which was installed from binaries provided
>> by hpc.sourcefourge.net last year in /usr/local/bin - but /opt/
>> local/bin comes first in my path.  I had originally tried to
>> install the 2.9.9 binaries from there, but it complained because I
>> did not have UMFPACK (probably because I did not have ufsparse at
>> that time).
>> Thank you for your time.
>>  - M.
>> P.S. running Mac OS-X 10.4.8 on a G4.
> I'm not sure if this is the behavior of the octave port, but the
> behavior of a MacPorts port *should* be that if you just install the
> port, you just get the basic software. If the software can optionally
> use some other feature (like suitesparse or cholmod in this case),
> then there should be a variant of the original port (octave) that you
> can use to enable this functionality (such as +suitesparse or
> +cholmod -- note this is just hypothetical; the octave port has no
> such variant). The maintainer of the octave port should comment on
> how it actually functions.

For future reference for anyone who might be interested or run across  
the same problem:

Octave has a list of dependencies for full functionality, of which  
SuiteSparse is one of them (fftw is another of them).  If you build  
octave verbose, it will tell you if it had problems with any of  
them.  If you have the appropriate libraries, octave will use them,  
but it will try to compile without them.

After multiple attempts at rebuilding, I finally found the problem -  
it is actually with the SuiteSparse port.  When the port is  
installed, it fails to copy the header:


into the directory


and the first include file in cholmod.h is this file.  This is why  
the sparse Cholesky factorization was disabled.  The easiest way to  
fix it is to first configure SuiteSparse and then copy the  
cholmod_io64.h header into the appropriate directory before doing the  
install.  Then an install of octave should work.

Also, in doing this build (and looking at the octave wiki), I notice  
that there are 3 more dependencies for octave that are not part of  
the package:

   curl [aka cURL]

One should probably install these ports before installing octave.   
[Note: the current darwinport of glpk is glpk-4.14, which will not  
work with octave (at least not without some hacking [requires  
modifying at least configure and __glpk__.cc, and possibly  
configure.in]) - so if you do not have it, that one does not really  
matter, 'cause it won't work anyway.  I've read that the octave  
development group has a working solution for glpk-4.15, but it is not  
as simple as taking the current development version of __glpk__.cc  
and replacing the current one (at least it did not work for me - I  
had to edit the file by hand, and do not have any test cases to see  
if it is actually working).]

  - M.

More information about the macports-users mailing list