on 8/1/06 7:28 PM, Paul Kienzle at address@hidden wrote:
On Aug 1, 2006, at 6:10 PM, Joe Koski wrote:
Hi all,
A quick question. This is a question that all Mac users who build
octave-2.9.x will need to address. This specifically relates to
building
octave-2.9.7 on a G5 Mac under OS X 10.4.7 with Xcode tools 2.3 and
gfortran.
I have built and installed all the sparse matrix libraries
(libumfpack.a,
libcolamd.a, libccolamd.a, libcxsparse.a, and libcholmod.a) into
/usr/local/lib, with the header files in /usr/local/include.
Looking at the manpage for gcc, you should be able to define the
following environment variables:
export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
or in csh syntax
setenv CPATH /usr/local/include
setenv LIBRARY_PATH /usr/local/lib
Then you should be able to run configure without any options.
Alternatively, you can run ./configure as follows:
./configure CFLAGS="-g -O2 -I/usr/local/include" CXXFLAGS="-g -O2
-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
- Paul
Paul, Dmitri,
I initially tried Dmitri's solution, but it didn't work, and Paul's export
CPATH doesn't seem to work either. What I think we have is a case of no
"standard" installer for the sparse matrix libraries. For libraries like
ImageMagick, libjpeg, etc., I had gotten lucky in the past because their
build process has a standard "make install" that can be relied upon to put
the libraries into a predetermined location in /usr/local where the octave
configure script can expect them.
On the positive side, I have edited the Ufconfig.in file for the Mac, so
that it works to build all the necessary sparse libraries. Each build just
parks the .a file (e. g. libumfpack.a) in a /Lib directory with each library
(UMFPACK, COLAMD, CCOLAMD, etc.), and puts the .h files in an associated
/Include directory. There is no standard install into /usr/local for the
five (six?) libraries involved.
Here is what the configure shows:
checking for amd_postorder in -lamd... no
checking ufsparse/colamd.h usability... no
checking ufsparse/colamd.h presence... no
checking for ufsparse/colamd.h... no
checking colamd/colamd.h usability... no
checking colamd/colamd.h presence... no
checking for colamd/colamd.h... no
checking colamd.h usability... no
checking colamd.h presence... no
checking for colamd.h... no
checking ufsparse/ccolamd.h usability... no
checking ufsparse/ccolamd.h presence... no
checking for ufsparse/ccolamd.h... no
checking ccolamd/ccolamd.h usability... no
checking ccolamd/ccolamd.h presence... no
checking for ccolamd/ccolamd.h... no
checking ccolamd.h usability... no
checking ccolamd.h presence... no
checking for ccolamd.h... no
checking ufsparse/cs.h usability... no
checking ufsparse/cs.h presence... no
checking for ufsparse/cs.h... no
checking cxsparse/cs.h usability... no
checking cxsparse/cs.h presence... no
checking for cxsparse/cs.h... no
checking cs.h usability... no
checking cs.h presence... no
checking for cs.h... no
The header files mentioned are currently parked on my system in
/usr/local/include without subdirectories. That may be the problem. Also, I
may need libamd.a, because it is mentioned by the configure script early,
but is not listed as missing at the end of the configure process.
What file structure is the octave configure.in expecting? Maybe I can cobble
together a simple installer script that places the libraries and header
files into their proper "standard" locations.
Joe