I have been building (or trying to build) octave on OSX for some time
now. It didn't work, then I fixed a few things and it did for a couple
of weeks, now it won't build again. Surely I am doing something wrong.
I can't understand how the build process can be so fragile. There also
don't seem to be clear instructions on how to build, and from what I've
read in the archives its far from autogen->configure->make.
For example here is what I'm doing:
__________________________________________________________
#! /bin/sh -ev
./autogen.sh
# Apple's vecLib:
export
blas='--with-lapack=-Wl,-framework,Accelerate,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib:/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
--with-blas=-Wl,-framework,Accelerate,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib:/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib'
# Similar to Fink's configure
./configure --prefix=/sw FLIBS=/sw/lib/gcc4.4/lib/libgfortran.dylib
F77=/sw/bin/gfortran FC=/sw/bin/gfortran CC=gcc-4 CPP=cpp-4 CXX=g++-4
--infodir='${prefix}/share/info' --mandir='${prefix}/share/man'
--libexecdir='${prefix}/lib' -enable-shared -enable-dl --disable-static
--without-mpi --with-hdf5 --with-fftw CPPFLAGS="-g -I/sw/include
-I/sw/include/freetype2 -I/sw/lib/flex/include" FFLAGS="-g -ff2c"
LDFLAGS="-L/sw/lib/fltk-aqua/lib -L/sw/lib/flex/lib -L/sw/lib -lfltk_gl
-lfltk -lpthread" $blas
make clean
make all
__________________________________________________________
And the results:
g++-4 -dynamiclib -single_module -L/sw/lib/fltk-aqua/lib
-L/sw/lib/flex/lib -L/sw/lib -lfltk_gl -lfltk -lpthread
-L/sw/lib/fltk-aqua/lib -L/sw/lib/flex/lib -L/sw/lib -lfltk_gl -lfltk
-lpthread -install_name /sw/lib/octave-3.1.55/liboctinterp.dylib -o
liboctinterp.dylib pic/Cell.o pic/bitfcns.o pic/c-file-ptr-stream.o
pic/comment-list.o pic/cutils.o pic/data.o pic/debug.o pic/defaults.o
pic/defun.o pic/dirfns.o pic/display.o pic/dynamic-ld.o pic/error.o
pic/file-io.o pic/gl-render.o pic/graphics.o pic/gripes.o pic/help.o
pic/input.o pic/lex.o pic/load-path.o pic/load-save.o pic/ls-hdf5.o
pic/ls-mat-ascii.o pic/ls-mat4.o pic/ls-mat5.o pic/ls-oct-ascii.o
pic/ls-ascii-helper.o pic/ls-oct-binary.o pic/ls-utils.o pic/main.o
pic/mappers.o pic/matherr.o pic/mex.o pic/oct-fstrm.o pic/oct-hist.o
pic/oct-iostrm.o pic/oct-map.o pic/oct-obj.o pic/oct-prcstrm.o
pic/oct-procbuf.o pic/oct-stream.o pic/octave.o pic/zfstream.o
pic/oct-strstrm.o pic/oct-lvalue.o pic/pager.o pic/parse.o
pic/pr-output.o pic/procstream.o pic/sighandlers.o pic/siglist.o
pic/sparse-xdiv.o pic/sparse-xpow.o pic/strfns.o pic/syscalls.o
pic/symtab.o pic/sysdep.o pic/token.o pic/toplev.o pic/txt-eng-ft.o
pic/unwind-prot.o pic/utils.o pic/variables.o pic/xdiv.o pic/xnorm.o
pic/xpow.o pic/ov-base.o pic/ov-ch-mat.o pic/ov-cs-list.o pic/ov-list.o
pic/ov-re-mat.o pic/ov-cx-mat.o pic/ov-range.o pic/ov-scalar.o
pic/ov-complex.o pic/ov-str-mat.o pic/ov-struct.o pic/ov-colon.o
pic/ov-bool-mat.o pic/ov-bool.o pic/ov-null-mat.o pic/ov-cell.o pic/ov.o
pic/ov-fcn.o pic/ov-builtin.o pic/ov-dld-fcn.o pic/ov-mex-fcn.o
pic/ov-usr-fcn.o pic/ov-fcn-handle.o pic/ov-fcn-inline.o pic/ov-class.o
pic/ov-typeinfo.o pic/ov-flt-re-mat.o pic/ov-flt-cx-mat.o pic/ov-float.o
pic/ov-flt-complex.o pic/ov-re-diag.o pic/ov-flt-re-diag.o
pic/ov-cx-diag.o pic/ov-flt-cx-diag.o pic/ov-perm.o pic/ov-int8.o
pic/ov-int16.o pic/ov-int32.o pic/ov-int64.o pic/ov-uint8.o
pic/ov-uint16.o pic/ov-uint32.o pic/ov-uint64.o pic/ov-base-sparse.o
pic/ov-bool-sparse.o pic/ov-cx-sparse.o pic/ov-re-sparse.o pic/pt.o
pic/pt-arg-list.o pic/pt-assign.o pic/pt-bp.o pic/pt-binop.o
pic/pt-cbinop.o pic/pt-cell.o pic/pt-check.o pic/pt-cmd.o pic/pt-colon.o
pic/pt-const.o pic/pt-decl.o pic/pt-eval.o pic/pt-except.o pic/pt-exp.o
pic/pt-fcn-handle.o pic/pt-id.o pic/pt-idx.o pic/pt-jump.o pic/pt-loop.o
pic/pt-mat.o pic/pt-misc.o pic/pt-pr-code.o pic/pt-select.o
pic/pt-stmt.o pic/pt-unop.o pic/op-b-b.o pic/op-b-bm.o pic/op-bm-b.o
pic/op-bm-bm.o pic/op-cell.o pic/op-chm.o pic/op-class.o pic/op-list.o
pic/op-range.o pic/op-str-m.o pic/op-str-s.o pic/op-str-str.o
pic/op-struct.o pic/op-double-conv.o pic/op-cm-cm.o pic/op-cm-cs.o
pic/op-cm-m.o pic/op-cm-s.o pic/op-cs-cm.o pic/op-cs-cs.o pic/op-cs-m.o
pic/op-cs-s.o pic/op-m-cm.o pic/op-m-cs.o pic/op-m-m.o pic/op-m-s.o
pic/op-s-cm.o pic/op-s-cs.o pic/op-s-m.o pic/op-s-s.o
pic/op-float-conv.o pic/op-fcm-fcm.o pic/op-fcm-fcs.o pic/op-fcm-fm.o
pic/op-fcm-fs.o pic/op-fcs-fcm.o pic/op-fcs-fcs.o pic/op-fcs-fm.o
pic/op-fcs-fs.o pic/op-fm-fcm.o pic/op-fm-fcs.o pic/op-fm-fm.o
pic/op-fm-fs.o pic/op-fs-fcm.o pic/op-fs-fcs.o pic/op-fs-fm.o
pic/op-fs-fs.o pic/op-int-concat.o pic/op-int-conv.o pic/op-i8-i8.o
pic/op-i16-i16.o pic/op-i32-i32.o pic/op-i64-i64.o pic/op-ui8-ui8.o
pic/op-ui16-ui16.o pic/op-ui32-ui32.o pic/op-ui64-ui64.o pic/op-bm-sbm.o
pic/op-b-sbm.o pic/op-cm-scm.o pic/op-cm-sm.o pic/op-cs-scm.o
pic/op-cs-sm.o pic/op-m-scm.o pic/op-m-sm.o pic/op-sbm-b.o
pic/op-sbm-bm.o pic/op-sbm-sbm.o pic/op-scm-cm.o pic/op-scm-cs.o
pic/op-scm-m.o pic/op-scm-s.o pic/op-scm-scm.o pic/op-scm-sm.o
pic/op-sm-cm.o pic/op-sm-cs.o pic/op-sm-m.o pic/op-sm-s.o
pic/op-sm-scm.o pic/op-sm-sm.o pic/op-s-scm.o pic/op-s-sm.o
pic/op-cdm-cdm.o pic/op-cdm-cm.o pic/op-cdm-cs.o pic/op-cdm-dm.o
pic/op-cdm-m.o pic/op-cdm-s.o pic/op-cm-cdm.o pic/op-cm-dm.o
pic/op-dm-cdm.o pic/op-dm-cm.o pic/op-dm-cs.o pic/op-dm-dm.o
pic/op-dm-m.o pic/op-dm-s.o pic/op-m-cdm.o pic/op-m-dm.o pic/op-dm-sm.o
pic/op-dm-scm.o pic/op-fcdm-fcdm.o pic/op-fcdm-fcm.o pic/op-fcdm-fcs.o
pic/op-fcdm-fdm.o pic/op-fcdm-fm.o pic/op-fcdm-fs.o pic/op-fcm-fcdm.o
pic/op-fcm-fdm.o pic/op-fdm-fcdm.o pic/op-fdm-fcm.o pic/op-fdm-fcs.o
pic/op-fdm-fdm.o pic/op-fdm-fm.o pic/op-fdm-fs.o pic/op-fm-fcdm.o
pic/op-fm-fdm.o pic/op-cm-pm.o pic/op-fcm-pm.o pic/op-fm-pm.o
pic/op-pm-fcm.o pic/op-pm-fm.o pic/op-m-pm.o pic/op-pm-cm.o
pic/op-pm-m.o pic/op-pm-pm.o pic/op-pm-sm.o pic/op-pm-scm.o
pic/Array-os.o pic/Array-tc.o pic/oct-errno.o pic/builtins.o pic/ops.o
../libcruft/blas-xtra/pic/xerbla.o -L../liboctave -loctave
-L../libcruft -lcruft -lfftw3 -lfftw3f -lhdf5 -lz -L/usr/X11/lib
-lfontconfig -lftgl -L/sw/lib -lfreetype -lz -Wl,-framework,CoreServices
-Wl,-framework,ApplicationServices -Wl,-framework -Wl,OpenGL
-L/usr/X11/lib -lX11 -Wl,-framework -Wl,Carbon -lreadline -lm
Undefined symbols:
"__gfortran_st_write", referenced from:
_xerbla_ in xerbla.o
"__gfortran_st_write_done", referenced from:
_xerbla_ in xerbla.o
"__gfortran_transfer_character", referenced from:
_xerbla_ in xerbla.o
"__gfortran_transfer_integer", referenced from:
_xerbla_ in xerbla.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [liboctinterp.dylib] Error 1
make[1]: *** [src] Error 2
make: *** [all] Error 2
miys02-leblanpb2:octave leblanc$
Is there a reliable way to get things built? Do any of the developers
work on OSX, or is there a procedure that SHOULD result in a successful
build? How do I get to the current stable code (I'm assuming the HEAD
is the "testing/devepment" code).
I apologize in advance for my ignorance,