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 13:26:45 -0600
User-agent: Microsoft-Entourage/11.2.5.060620

on 8/28/06 10:51 AM, Quentin Spencer at address@hidden wrote:

> Joe Koski wrote:
>> 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.
>>   
> 
> Are you doing anything special to build cholmod without metis? In my
> spec file, I have "make  CFLAGS=-DNPARTITION", which I think I got from
> David. If I recall correctly, cholmod will try to link to metis if you
> don't compile with this flag set, which could be causing the missing
> metis symbols when you compile octave.
> 
> Quentin
> 
> 
> 
Quentin,

As I recall, I followed the instructions in the # comment in the
UFconfig/config.mk file about the -DNPARTITION flag, and added the
-DNPARTITION flag at the end of those # comments. The cholmod library then
built without problems. What would happen if I misspelled -DNPARTITION? Not
likely, but possible.

Joe




reply via email to

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