[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Successful build of Octave 3.6.1 on OSX Lion (sans FINK)
From: |
Ben Abbott |
Subject: |
Re: Successful build of Octave 3.6.1 on OSX Lion (sans FINK) |
Date: |
Wed, 14 Mar 2012 18:26:41 -0400 |
On Mar 14, 2012, at 5:43 PM, Clarkman wrote:
> # This wasn't that bad, and I am very happy to get it working! BUT I caution
> # you though, I may be long-time Matlab user & C++ developer, but I am
> totally
> # newbie to Octave. I finally figured out how to get fltk back-end working,
> so
> # thanks for all the helpful posts here!
> #
> # I'm on OSX 10.7.3, had a previously installed binary for octave-3.2.3
> # The code snippet below for src/display.cc (CGDisplayBitsPerPixel) might be
> useful?
>
> # This will take a long while ...
> sudo port install octave-devel
>
> # Install gfortran for OSX Lion (twisted tale here! This looks)
> http://gcc.gnu.org/wiki/GFortranBinaries#MacOS
>
> # Copy PCRE header, a total hack.
> sudo cp /opt/local/include/pcre.h /usr/include/
>
> # Get, build, and install readline-6.2
> # (May be retrieved from ftp.cwru.edu.)
> # In readline-6.2 dir:
> ./configure
> # I got an error during 'make' that requires we use -dynamiclib rather than
> -dynamic
> # Researched and found: "You need to go into the sub folder
> readline-6.2/shlib folder in the ReadLine source folder and edit Makefile,
> search -dynamic and change it to -dynamiclib. This worked, but again it's a
> total hack!
> # Then this will work for readline, puts in /usr/local:
> sudo make install
>
> # Then we must convince Octave configure to look for readline > 4.2 at
> /usr/local/lib instead of the default:
>
> export LDFLAGS='-L/usr/local/lib -L/opt/local/lib'
> export CPPFLAGS='-I/usr/local/include -I/opt/local/include'
>
> # Crude, but it works. There are probably options to ./configure that
> accomplishes same. ?? Also not sure of the ordering opt/usr or vice-versa
>
>
> # Next we have a problem with the deprecated "CGDisplayBitsPerPixel"
> function
> # as called in src/display.cc on line 75. I found this workaround that
> seems
> # to work fine:
> #if 1
> CGDisplayModeRef mode = CGDisplayCopyDisplayMode(display);
> CFStringRef pixEnc = CGDisplayModeCopyPixelEncoding(mode);
> if(CFStringCompare(pixEnc, CFSTR(IO32BitDirectPixels),
> kCFCompareCaseInsensitive) == kCFCompareEqualTo)
> dp = 32;
> else if(CFStringCompare(pixEnc, CFSTR(IO16BitDirectPixels),
> kCFCompareCaseInsensitive) == kCFCompareEqualTo)
> dp = 16;
> else if(CFStringCompare(pixEnc, CFSTR(IO8BitIndexedPixels),
> kCFCompareCaseInsensitive) == kCFCompareEqualTo)
> dp = 8;
> #else
> dp = CGDisplayBitsPerPixel (display);
> #endif
>
>
> # But you only have the gnuplot side working yet
> # Ben suggested this:
> sudo port install transfig epstool pstoedit
> # here
> http://octave.1599824.n4.nabble.com/Compiling-Octave-with-OSX-10-7-td3734547.html
> ### Woah!! When I saw OSX Lion building imake, I did a double-take.
>
> # Then you have to install fltk-devel
> sudo port install fltk-devel
> # Now build Octave and take a coffee break
> ./configure
>
> # Now gets us this ....
>
> Octave is now configured for x86_64-apple-darwin11.3.0
>
> Source directory: .
> Installation prefix: /usr/local
> C compiler: gcc -Wall -W -Wshadow -Wformat
> -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings
> -Wcast-align -Wcast-qual -g -O2 -D_THREAD_SAFE -pthread
> C++ compiler: g++ -I/opt/local/include
> -I/opt/local/include/freetype2 -I/opt/local/include -I/opt/local/include
> -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings
> -Wcast-align -Wcast-qual -g -O2
> Fortran compiler: gfortran -O
> Fortran libraries: -L/usr/local/lib -L/opt/local/lib
> -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin11/4.6.2
> -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin11/4.6.2/../../..
> -lgfortran -lquadmath -lm
> Lex libraries:
> LIBS: -lm
>
> AMD CPPFLAGS:
> AMD LDFLAGS:
> AMD libraries: -lamd
> ARPACK CPPFLAGS:
> ARPACK LDFLAGS:
> ARPACK libraries:
> BLAS libraries: -lcblas -lf77blas -latlas
> CAMD CPPFLAGS:
> CAMD LDFLAGS:
> CAMD libraries: -lcamd
> CARBON libraries: -Wl,-framework -Wl,Carbon
> CCOLAMD CPPFLAGS:
> CCOLAMD LDFLAGS:
> CCOLAMD libraries: -lccolamd
> CHOLMOD CPPFLAGS:
> CHOLMOD LDFLAGS:
> CHOLMOD libraries: -lcholmod
> COLAMD CPPFLAGS:
> COLAMD LDFLAGS:
> COLAMD libraries: -lcolamd
> CURL CPPFLAGS:
> CURL LDFLAGS:
> CURL libraries: -lcurl
> CXSPARSE CPPFLAGS:
> CXSPARSE LDFLAGS:
> CXSPARSE libraries: -lcxsparse
> DL libraries: -ldl
> FFTW3 CPPFLAGS:
> FFTW3 LDFLAGS:
> FFTW3 libraries: -lfftw3
> FFTW3F CPPFLAGS:
> FFTW3F LDFLAGS:
> FFTW3F libraries: -lfftw3f
> fontconfig CFLAGS: -I/opt/local/include
> fontconfig LIBS: -L/opt/local/lib -lfontconfig
> FT2_CFLAGS: -I/opt/local/include/freetype2
> -I/opt/local/include
> FT2_LIBS: -L/opt/local/lib -lfreetype -lz -lbz2
> GLPK CPPFLAGS:
> GLPK LDFLAGS:
> GLPK libraries: -lglpk
> graphics CFLAGS: -I/opt/local/include -pipe -O2
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT
> graphics LIBS: -L/opt/local/lib -arch x86_64 -lfltk_gl
> -framework AGL -framework OpenGL -framework ApplicationServices -lfltk
> -lpthread -framework Cocoa
> Magick++ CPPFLAGS: -I/opt/local/include/GraphicsMagick
> Magick++ LDFLAGS: -L/opt/local/lib
> Magick++ libraries: -lGraphicsMagick++ -lGraphicsMagick
> HDF5 CPPFLAGS:
> HDF5 LDFLAGS:
> HDF5 libraries: -lhdf5
> LAPACK libraries: -llapack
> OPENGL libraries: -L/opt/local/lib -lfontconfig
> -Wl,-framework -Wl,OpenGL
> PTHREAD flags: -D_THREAD_SAFE -pthread
> PTHREAD libraries:
> QHULL CPPFLAGS:
> QHULL LDFLAGS:
> QHULL libraries: -lqhull
> QRUPDATE libraries: -lqrupdate
> READLINE libraries: -lreadline
> REGEX libraries: -L/opt/local/lib -lpcre
> TERM libraries: -lncurses
> UMFPACK libraries: -lumfpack
> X11 include flags: /opt/local/include
> X11 libraries: -L/opt/local/lib -lX11
> Z CPPFLAGS:
> Z LDFLAGS:
> Z libraries: -lz
>
> Default pager: less
> gnuplot: gnuplot
>
> Do internal array bounds checking: false
> Use octave_allocator: false
> Build static libraries: false
> Build shared libraries: true
> Dynamic Linking: true (dlopen)
> Include support for GNU readline: true
> 64-bit array dims and indexing: false
>
>
> # And then make it all ...
> make
>
> # Gets us:
> # "Octave successfully built. Now choose from the following:"
>
> # Then:
> make check
>
> # and we get ...
> # src/data.cc ............................................ PASS 797/798
> FAIL 1
> # scripts/polynomial/roots.m ............................. PASS 9/10
> FAIL 1
> # Summary:
> # PASS 10006
> # FAIL 2
> #
> # There were 2 expected failures (see fntests.log for details).
> #
> # Expected failures are known bugs. Please help improve Octave
> # by contributing fixes for them.
> #
> # There were 357 skipped tests (see fntests.log for details).
> # Skipped tests are features that are disabled in this version of Octave
> # because the needed libraries were not present when Octave was built.
> #
> # 243 (of 803) .m files have no tests.
> #
> # 38 (of 154) .cc files have no tests.
>
> sudo make install
>
>
> # I tried both back ends per Ben's hints, and they both seem to work:
>
> graphics_toolkit gnuplot
> figure(1)
> graphics_toolkit fltk
> figure(2)
> surf (peaks)
> figure(1)
> surf (peaks)
>
> # I also tried installing the miscellaneous package (because of recent
> posts)
>
> # Not too messy ...
>
> octave:2> pkg install miscellaneous-1.0.11.tar
> warning: creating installation directory /Users/cdunson/octave
> waitbar.cc: In function ‘octave_value_list Fwaitbar(const
> octave_value_list&, int)’:
> waitbar.cc:126: warning: deprecated conversion from string constant to
> ‘char*’
> waitbar.cc:147: warning: deprecated conversion from string constant to
> ‘char*’
> waitbar.cc:148: warning: deprecated conversion from string constant to
> ‘char*’
> csvconcat.cc: In function ‘octave_value_list Fcsvconcat(const
> octave_value_list&, int)’:
> csvconcat.cc:85: warning: comparison is always true due to limited range of
> data type
> warning: function
> /Users/cdunson/octave/miscellaneous-1.0.11/x86_64-apple-darwin11.3.0-api-v48+/waitbar.oct
> shadows a core library function
> warning: function
> /Users/cdunson/octave/miscellaneous-1.0.11/x86_64-apple-darwin11.3.0-api-v48+/waitbar.oct
> shadows a core library function
>
> What's next?
>
> Thanks
>
> Clark
There's a page on the wiki about building on MacOS.
http://www.octave.org/wiki/index.php?title=Octave_for_Mac
It includes addition dependencies.
Ben