help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to build octave with ufsparse lib


From: Joe Koski
Subject: Re: how to build octave with ufsparse lib
Date: Mon, 28 Aug 2006 10:22:51 -0600
User-agent: Microsoft-Entourage/11.2.5.060620

on 8/28/06 4:17 AM, David Bateman at address@hidden wrote:

> Joe Koski wrote:
>> on 8/25/06 8:45 PM, John W. Eaton at address@hidden wrote:
>> 
>>   
>>> | Each of the eight libraries that you need must be built separately. The
>>> | libraries that you need are AMD, CAMD, CHOLMOD, CCOLMAND, COLAMD,
>>> CXSparse,
>>> | metis-4.0 from (http://glaros.dtc.umn.edu/gkhome/node), and UMFPACK (which
>>> | you already have).
>>> 
>>> METIS is not required.
>>> 
>>>     
>> John, Frank,
>> 
>> I originally tried to build octave without metis. My guess was that I didn't
>> need metis, and there is an option to build without metis in CHOLMOD, so I
>> tried it, and did get a libcholmod.a. During octave configure, the script
>> was looking for metis headers. During the octave-2.9.7 make, I had
>> unsatisfied symbols with metis in the name, so I went back and reconfigured
>> and rebuilt CHOLMOD with metis. Everything then worked. Maybe someone can
>> explain why this happened.
>> 
>> One error in my original post on how to build UFsparse: the file that you
>> modify in UFconfig is UFconfig.mk, not UFconfig.h.
>> 
>> Joe
>>   
> No idea why its happening.. Looking at the configure.in file the code
> for this is
> 
>     AC_CHECK_HEADERS([ufsparse/metis.h metis/metis.h metis.h], [
>       AC_CHECK_LIB(metis, METIS_NodeND, with_metis=yes, with_metis=no)
>       break],
>       with_metis=no)
> 
>     if test "$with_metis" = yes; then
>       AC_DEFINE(HAVE_METIS, 1, [Define if the METIS library is used.])
>       AC_CHECK_LIB(cholmod, cholmod_start, [CHOLMOD_LIBS="-lcholmod
> -lmetis";
>         with_cholmod=yes], [
>         AC_CHECK_LIB(cholmod, cholmod_start,
>           [CHOLMOD_LIBS="-lcholmod -cblas -lmetis"; with_cholmod=yes], [],
>           $AMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $BLAS_LIBS $FLIBS -lmetis)],
>         $AMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $BLAS_LIBS $FLIBS -lmetis)
>     else
>       AC_CHECK_LIB(cholmod, cholmod_start, [CHOLMOD_LIBS="-lcholmod";
>         with_cholmod=yes], [
>         AC_CHECK_LIB(cholmod, cholmod_start, [CHOLMOD_LIBS="-lcholmod
> -cblas";
>           with_cholmod=yes], [],
>           $AMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $BLAS_LIBS $FLIBS)],
>         $AMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $BLAS_LIBS $FLIBS)
>     fi
> 
> so it should work with or without metis..
> 
> Cheers
> D.
> 

David,

My hazy recollection (it took several tries to get it to work) is that when
I had most of the sparse matrix libraries installed, but before I installed
metis, I got a failed build with unresolved symbols with the name metis in
them. At that time, I had built cholmod without metis. I do remember being
surprised at the need for metis, since it appears to be related to the
generation of finite element grids.

My guess would be that, prior to my Mac efforts, all Linux builds were
against the same standard binary ufsparse installation that included metis.
If that is the case, it would not matter whether or not metis existed, and
the octave configure would never be tested without metis present. Another
possiblility is that libcholmod.a has a problem, and needs the metis
routines even when it should not.

Anyway, the next independent builder of UFsparse should take notes and
advise whether metis was required. An install script for UFsparse would also
be useful to transfer all the .a and .h files to the proper locations for
the octave configure to find them.

Enough. My octave-2.9.8 continues to work well.

Joe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]