LoginSignup
2
2

More than 5 years have passed since last update.

Mac OS X LionでGNU Octave最新版を使いたい

Posted at

http://nozawashinichi.sakura.ne.jp/fs/2009/07/octavemac-x11-or-aquaterm.html で解説されているビルド済みパッケージを使ってたんだけど、X11,AquaTerm,gnuplotに依存してるのがイマイチ

Octaveの最新版はOpenGLで(X11,AquaTerm,gnuplotを使わずに)描画できるらしいので是非使いたい

brew install octave

で行けばいいんだけど色々はまったので断片的ではあるがメモ

参考URL

必要な依存パッケージを導入。

libpng

libpng-1.2系 (libpng-1.2.50) をインストールした

fltk

GraphicsMagick

失敗した失敗した失敗した
Homebrewディレクトリでビルド
ar, ranlibがbrew版だとコケるとか

qrupdate

freetype, fontconfig

OSXに入ってるのを利用できる。CFLAGS等でパスを設定。

CXSparse, SuiteSparse_config

octaveのビルド

Homebrewディレクトリで

(1) patch -p1 < configure.diff

configure.diff
--- octave-3.6.3/configure      2012-09-05 02:19:13.000000000 +0900
+++ octave-3.6.3-naoyat/configure       2012-11-17 17:48:11.000000000 +0900
@@ -36384,9 +36384,9 @@

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${LD-ld} accepts -framework OpenGL" >&5
 $as_echo_n "checking whether ${LD-ld} accepts -framework OpenGL... " >&6; }
-  if ${octave_cv_framework_OpenGL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+#  if ${octave_cv_framework_OpenGL+:} false; then :
+#  $as_echo_n "(cached) " >&6
+#else

     XLDFLAGS="$LDFLAGS"
     LDFLAGS="$LDFLAGS -framework OpenGL"
@@ -36417,11 +36417,11 @@
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
+#if ac_fn_cxx_try_link "$LINENO"; then :
   eval "octave_cv_framework_OpenGL=yes"
-else
-  eval "octave_cv_framework_OpenGL=no"
-fi
+#else
+#  eval "octave_cv_framework_OpenGL=no"
+#fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
     ac_ext=c
@@ -36432,7 +36432,7 @@

     LDFLAGS="$XLDFLAGS"

-fi
+#fi

   if test "$octave_cv_framework_OpenGL" = "yes"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -59573,20 +59573,20 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&5
 $as_echo "$ac_cv_lib_readline_rl_set_keyboard_input_timeout" >&6; }
-if test "x$ac_cv_lib_readline_rl_set_keyboard_input_timeout" = xyes; then :
+#if test "x$ac_cv_lib_readline_rl_set_keyboard_input_timeout" = xyes; then :

       READLINE_LIBS="-lreadline"

 $as_echo "#define USE_READLINE 1" >>confdefs.h


-else
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: I need GNU Readline 4.2 or later" >&5
-$as_echo "$as_me: WARNING: I need GNU Readline 4.2 or later" >&2;}
-      as_fn_error $? "this is fatal unless you specify --disable-readline" "$LINENO" 5
-
-fi
+#else
+#
+#      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: I need GNU Readline 4.2 or later" >&5
+#$as_echo "$as_me: WARNING: I need GNU Readline 4.2 or later" >&2;}
+#      as_fn_error $? "this is fatal unless you specify --disable-readline" "$LINENO" 5
+#
+#fi

     LIBS="$save_LIBS"
   fi

(2) ./configure

do_configure.sh
FONTCONFIG_CFLAGS=-I/usr/local/opt/fontconfig/include FONTCONFIG_LIBS=-lfontconfig  HAVE_FRAMEWORK_OPENGL=1 CC=/usr/bin/gcc CXX=/usr/bin/g++ ./configure "--prefix=/usr/local/Cellar/octave/3.6.3" "--with-blas=-Wl,-framework -Wl,Accelerate" "--with-umfpack=-lumfpack -lsuitesparseconfig" "--without-framework-carbon" "--with-cxsparse-includedir=/usr/local/include" "--with-cxsparse-libdir=/usr/local/lib" "--with-ft-prefix=/usr/local/opt/freetype"

(3) patch -p1 < Makefile.diff

TeX 環境のあるマシンならこれは不要。

Makefile.diff
--- octave-3.6.3/Makefile   2012-11-17 22:31:59.000000000 +0900
+++ octave-3.6.3-naoyat/Makefile    2012-11-17 21:54:30.000000000 +0900
@@ -242,7 +242,8 @@
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+# DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
@@ -1659,7 +1660,8 @@
    m4/lt~obsolete.m4

 # Subdirectories in which to run `make all'.
-SUBDIRS = libgnu libcruft liboctave src scripts doc examples test
+#SUBDIRS = libgnu libcruft liboctave src scripts doc examples test
+SUBDIRS = libgnu libcruft liboctave src scripts examples test
 BUILT_SOURCES = run-octave
 noinst_SCRIPTS = run-octave
 INFO_FILES = \

必要な設定

/usr/local/Cellar/octave/3.6.3/share/octave/site/m/startup/octaverc
## System-wide startup file for Octave.
##
## This file should contain any commands that should be executed each
## time Octave starts for every user at this site.

graphics_toolkit ("fltk")

これでOpenGL経由の描画ができる!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2