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,
~Joel