Fri 17 Feb 2012 12:07:22 AM UTC, comment #7:
Jordi brings up an excellent point, so here's some thoughts:
The last binary build was 3.4.0 as you can see here:
http://sourceforge.net/projects/octave/files/Octave%20MacOSX%20Binary/
It seems like binary builds were pretty consistently done until after 3.4.0 (3.4.1-3 and the current 3.6.0 where skipped.) My (naive) suggestions are:
a. try to replicate what was done back then. Perhaps you need some new volunteers. I would consider volunteering myself, except I haven't been able to build Octave 3.6.0. I'm willing to learn but I'm missing some important bits of information. (Probably a 32bit and 64bit would need to be made. I don't know if additional versions need to be made for each current and most recent OS. It's probably safe to abandon the PowerPC version of Octave at this time.)
b. The documentation in ./etc/README.MacOS needs to be updated and expanded. It doesn't seem to be because the 3.6.0 version as there is still a reference to 3.4.0.
There needs to be a step by step detail for somebody to build the latest version from scratch. Especially useful would be a list of libraries that don't come with the stock mac that need to be downloaded and built. What's frustrating is that every build stops because some library is missing. I have to figure out where it is and then download it and try to build it. It's a good thing that the developers of Octave are use a lot of libraries instead of reinventing the wheel, but that does suggest that each build come a note about which libraries and programs were used to make a binary.
Could the ./configure program be made report the missing required and optional libraries?
In particular, I was able to download and build GNU Readline 6.2 but I don't understand what needs to be done to get it to link with Octave. (Something about "you may need to run ldconfig" which doesn't exist on the Mac but apparently dyld is the equivalent, but I don't know what needs to be done...)
I think if a builder knows that there is some fixed N number of libraries missing, s/he can feel progress is being made, but if there is an unknown number, it's unsettling because there seems to be no end.
I know it would be a lot of work to make a step by step list, but once it's made then binaries could be made by almost anyone and distributed.
c. Finally, I turned off Readline in order to continue with the 3.6.0 build but it failed here:
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1134: Unknown command `leq'.
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1134: Misplaced {.
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1134: Misplaced }.
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1137: Unknown command `geq'.
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1137: Misplaced {.
/Users/me/build/octave-3.6.0/doc/interpreter//linalg.texi:1137: Misplaced }.
(and many more similar errors)
line 1134 contains:
= small: leading block has all |lambda| @leq{} 1
line 1137 contains:
= big: leading block has all |lambda| @geq{} 1
I'm guessing this is why 3.4.0 was built without docs, so I'm guessing there's a bug with doc generation (may be Mac only?)
I don't know what this code is, but perhaps this is now an actionable bug?
d. I know making a .dmg is an extra step that would also need to be worked out when making a mac binary.
In any case, I am appreciative of Octave since it has been very useful to know. I also know that making Octave is a lot of work and there's lots more to do: I grep'ed for FIXME in the Octave sources and see there are 451 instances of it in the 3.6.0 code base.
Thanks for all the hard work and listening.
|