help-octave
[Top][All Lists]
Advanced

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

Re: Octave 2.9.9 + Octave-Forge 2006.07.09 on x86 MAC OS X 10.4.8 Tiger


From: marius173
Subject: Re: Octave 2.9.9 + Octave-Forge 2006.07.09 on x86 MAC OS X 10.4.8 Tiger
Date: Fri, 22 Dec 2006 14:38:23 +0000

Paul,

You have no choice. Octave cannot be built with Apple's "readline".

My personal approach is to build things into /usr/local. MacPorts (formally 
known as DarwinPorts) uses /opt/local, and Fink uses /sw. In all cases the 
Apple versions coexist with the chosen ports system.

I make a point of taking offending Apple packages, readline and /usr/bin/locale 
in the case of octave under Mac OS X 10.4.x (neither is present under 10.3.9), 
and temporarily renaming them during the configuration and build steps.

The resulting binaries have the full path to the library. You can check this 
using otool, e.g.

otool -L /usr/local/bin/octave
/usr/local/bin/octave:
        /usr/local/lib/octave-2.9.9/liboctinterp.dylib (compatibility version 
0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/liboctave.dylib (compatibility version 
0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/libcruft.dylib (compatibility version 
0.0.0, current version 0.0.0)
        /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib 
(compatibility version 1.0.0, current version 182.24.0)
        /usr/local/lib/libreadline.5.2.dylib (compatibility version 5.0.0, 
current version 5.2.0)
        /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current 
version 5.4.0)
        /usr/local/lib/libhdf5.0.dylib (compatibility version 1.0.0, current 
version 1.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 
1.2.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 88.1.7)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
version 7.4.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 
1.0.0)

for HMUG's octave 2.9.9 (10.4.x PPC).

For uninstall instructions search the archives of this list.

As far as the needed libraries: readline and hdf5, see the otool output. 
However, You'll need g95, and a host of other GNU tools, gawk and sed and their 
dependencies for installation, and all the dependencies of gnuplot to get 
anything plotted. octave-forge needs a number of additional libraries. For a 
complete list see the README files @ hmug,org.

I think I need to make installation a bit easier. I use my own build system 
that requires installation and initial setup, but can automate installation. 
For those interested, it is available at <http://www.hmug.org/mports/>. The 
documentation is currently incomplete, however, the essentials are in the /man 
directory.

Marius

 -------------- Original message ----------------------
From: Paul Koufalas <address@hidden>
> Marius,
> 
> Does your comment about readline incompatibility mean that installing  
> GNU readline (e.g. HMUG's binary of that) in /usr/local/... is the  
> way forward?  The two different readlines can co-exist I assume?
> 
> I'm wondering if the HMUG octave-forge libraries (binaries) contain a  
> full path to the GNU readline library, or will they always pick up  
> the Apple readline library?  Noting there is a way to change the path  
> to the library... install_name_tool -change <path/to/shared/library>  
> <oct file>
> 
> I'm only contemplating that ugly hack because I'm also following the  
> agonizing thread started by Matthias...
> 
> As I mentioned before, I was going to throw in the towel with HPC +  
> HMUG and start over with just the HMUG binaries of Octave and Octave  
> Forge but I'm not sure about:
> 
> 1. How to simply and cleanly uninstall the HPC Octave version;
> 2. How many shared libraries I need to install for HMUG's binaries, I  
> started to install all of the dependencies and noticed some of them  
> were static libraries and therefore presumably not needed unless I  
> want to compile from source.
> 
> Cheers,
> Paul.
> 
> 
> On 18/12/2006, at 1:22 AM, Marius Schamschula wrote:
> 
> >
> > On Dec 17, 2006, at 7:15 AM, Paul Koufalas wrote:
> >
> >> Marius,
> >>
> >> pkoufalas$ otool -L octave
> >> octave:
> >>         /usr/local/lib/octave-2.9.9/liboctinterp.dylib  
> >> (compatibility version 0.0.0, current version 0.0.0)
> >>         /usr/local/lib/octave-2.9.9/liboctave.dylib (compatibility  
> >> version 0.0.0, current version 0.0.0)
> >>         /usr/local/lib/octave-2.9.9/libcruft.dylib (compatibility  
> >> version 0.0.0, current version 0.0.0)
> >>         /System/Library/Frameworks/vecLib.framework/Versions/A/ 
> >> vecLib (compatibility version 1.0.0, current version 192.15.0)
> >>         /usr/lib/libncurses.5.4.dylib (compatibility version  
> >> 5.4.0, current version 5.4.0)
> >>         /usr/lib/libz.1.dylib (compatibility version 1.0.0,  
> >> current version 1.2.3)
> >>         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
> >> current version 88.3.4)
> >>         /usr/local/lib/libgfortran.2.dylib (compatibility version  
> >> 3.0.0, current version 3.0.0)
> >>         /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
> >> current version 7.4.0)
> >>         /usr/local/lib/libgcc_s.1.dylib (compatibility version  
> >> 1.0.0, current version 1.0.0)
> >>
> >> I can't see readline or hdf5 in that list!!  There is also a  
> >> libgfortran.2.dylib that is missing from yours (you did say HMUG  
> >> used g95).   That said, HPC octave appears to work ok (very  
> >> limited testing), until HMUG octave-forge is installed.
> >>
> >> If I run octave_config_info from the Octave prompt, I can see  
> >> these fragments in the output:
> >>
> >> DEFS = ... -DUSE_READLINE=1 ...
> >> LIBREADLINE = -lreadline
> >> LIBS = -lreadline  -lncurses -lz -lm
> >>
> >> I found /usr/lib/libreadline.dylib but this is in a different  
> >> place to yours, and is a symbolic link to libedit.2.dylib in that  
> >> same directory.  I couldn't find anything at all on HDF5.
> >
> > This is Apple's "readine", which is not the same as GNU readline,  
> > i.e. the two are incompatible. Apple's readline fails in the ./ 
> > configure stage of a octave build.
> >
> > I built in HDF5 support since this is a common file format in Earth  
> > and Space Science.
> >
> >> Cheers,
> >> Paul.
> >>
> >> On 17/12/2006, at 10:58 PM, Marius Schamschula wrote:
> >>
> >>> Paul,
> >>>
> >>> I get
> >>>
> >>> marius$ octave-config --m-site-dir
> >>> /usr/local/share/octave/2.9.9/site/m
> >>> marius$ octave-config --oct-site-dir
> >>> /usr/local/libexec/octave/2.9.9/site/oct/i386-apple-darwin8.8.1
> >>> marius$ octave-config -p BINDIR
> >>> /usr/local/bin
> >>> marius$ octave-config -p CANONICAL_HOST_TYPE
> >>> i386-apple-darwin8.8.1
> >>> marius$ octave-config -p LIBDIR
> >>> /usr/local/lib
> >>> marius$ octave-config -p LIBEXECDIR
> >>> /usr/local/libexec
> >>> marius$ octave-config -p OCTLIBDIR
> >>> /usr/local/lib/octave-2.9.9
> >>> marius$ octave-config -p DATADIR
> >>> /usr/local/share
> >>> marius$ octave-config -p ARCHLIBDIR
> >>> /usr/local/libexec/octave/2.9.9/exec/i386-apple-darwin8.8.1
> >>>
> >>> which all match.
> >>>
> >>> However, let us see what octave is built from. I get:
> >>>
> >>> marius$ otool -L /usr/local/bin/octave
> >>> /usr/local/bin/octave:
> >>>         /usr/local/lib/octave-2.9.9/liboctinterp.dylib  
> >>> (compatibility version 0.0.0, current version 0.0.0)
> >>>         /usr/local/lib/octave-2.9.9/liboctave.dylib  
> >>> (compatibility version 0.0.0, current version 0.0.0)
> >>>         /usr/local/lib/octave-2.9.9/libcruft.dylib (compatibility  
> >>> version 0.0.0, current version 0.0.0)
> >>>         /System/Library/Frameworks/vecLib.framework/Versions/A/ 
> >>> vecLib (compatibility version 1.0.0, current version 182.24.0)
> >>>         /usr/local/lib/libreadline.5.2.dylib (compatibility  
> >>> version 5.0.0, current version 5.2.0)
> >>>         /usr/lib/libncurses.5.4.dylib (compatibility version  
> >>> 5.4.0, current version 5.4.0)
> >>>         /usr/local/lib/libhdf5.0.dylib (compatibility version  
> >>> 1.0.0, current version 1.0.0)
> >>>         /usr/lib/libz.1.dylib (compatibility version 1.0.0,  
> >>> current version 1.2.3)
> >>>         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
> >>> current version 88.1.7)
> >>>         /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
> >>> current version 7.4.0)
> >>>         /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,  
> >>> current version 1.0.0)
> >>>
> >>> I suspect you don't have the same versions of readline and hdf5.
> >>>
> >
> 



--- Begin Message --- Subject: Re: Octave 2.9.9 + Octave-Forge 2006.07.09 on x86 MAC OS X 10.4.8 Tiger Date: Fri, 22 Dec 2006 04:53:49 +0000
Marius,

Does your comment about readline incompatibility mean that installing GNU readline (e.g. HMUG's binary of that) in /usr/local/... is the way forward?  The two different readlines can co-exist I assume?  

I'm wondering if the HMUG octave-forge libraries (binaries) contain a full path to the GNU readline library, or will they always pick up the Apple readline library?  Noting there is a way to change the path to the library... install_name_tool -change <path/to/shared/library> <oct file>
  
I'm only contemplating that ugly hack because I'm also following the agonizing thread started by Matthias...

As I mentioned before, I was going to throw in the towel with HPC + HMUG and start over with just the HMUG binaries of Octave and Octave Forge but I'm not sure about:

1. How to simply and cleanly uninstall the HPC Octave version;
2. How many shared libraries I need to install for HMUG's binaries, I started to install all of the dependencies and noticed some of them were static libraries and therefore presumably not needed unless I want to compile from source. 

Cheers,
Paul. 


On 18/12/2006, at 1:22 AM, Marius Schamschula wrote:


On Dec 17, 2006, at 7:15 AM, Paul Koufalas wrote:

Marius,

pkoufalas$ otool -L octave
octave:
        /usr/local/lib/octave-2.9.9/liboctinterp.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/liboctave.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/libcruft.dylib (compatibility version 0.0.0, current version 0.0.0)
        /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 192.15.0)
        /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.4)
        /usr/local/lib/libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
        /usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

I can't see readline or hdf5 in that list!!  There is also a libgfortran.2.dylib that is missing from yours (you did say HMUG used g95).   That said, HPC octave appears to work ok (very limited testing), until HMUG octave-forge is installed.

If I run octave_config_info from the Octave prompt, I can see these fragments in the output:

DEFS = ... -DUSE_READLINE=1 ... 
LIBREADLINE = -lreadline
LIBS = -lreadline  -lncurses -lz -lm 

I found /usr/lib/libreadline.dylib but this is in a different place to yours, and is a symbolic link to libedit.2.dylib in that same directory.  I couldn't find anything at all on HDF5.   

This is Apple's "readine", which is not the same as GNU readline, i.e. the two are incompatible. Apple's readline fails in the ./configure stage of a octave build.

I built in HDF5 support since this is a common file format in Earth and Space Science.

Cheers,
Paul.

On 17/12/2006, at 10:58 PM, Marius Schamschula wrote:

Paul,

I get

marius$ octave-config --m-site-dir
/usr/local/share/octave/2.9.9/site/m
marius$ octave-config --oct-site-dir
/usr/local/libexec/octave/2.9.9/site/oct/i386-apple-darwin8.8.1
marius$ octave-config -p BINDIR
/usr/local/bin
marius$ octave-config -p CANONICAL_HOST_TYPE
i386-apple-darwin8.8.1
marius$ octave-config -p LIBDIR
/usr/local/lib
marius$ octave-config -p LIBEXECDIR
/usr/local/libexec
marius$ octave-config -p OCTLIBDIR
/usr/local/lib/octave-2.9.9
marius$ octave-config -p DATADIR
/usr/local/share
marius$ octave-config -p ARCHLIBDIR
/usr/local/libexec/octave/2.9.9/exec/i386-apple-darwin8.8.1

which all match.

However, let us see what octave is built from. I get:

marius$ otool -L /usr/local/bin/octave
/usr/local/bin/octave:
        /usr/local/lib/octave-2.9.9/liboctinterp.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/liboctave.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/octave-2.9.9/libcruft.dylib (compatibility version 0.0.0, current version 0.0.0)
        /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 182.24.0)
        /usr/local/lib/libreadline.5.2.dylib (compatibility version 5.0.0, current version 5.2.0)
        /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
        /usr/local/lib/libhdf5.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

I suspect you don't have the same versions of readline and hdf5.




--- End Message ---

reply via email to

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