help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Octave On MacOSX


From: Thomas Treichl
Subject: Octave On MacOSX
Date: Mon, 08 Jan 2007 17:28:36 +0100
User-agent: Thunderbird 1.5.0.9 (Macintosh/20061207)

Hi,

on January, 4, 2007 GMT22:30 I sent an email to the help-list with the subject
"How To Minimalistically GNUify MacOSX For Building Octave From Scratch". Maybe
the spam-filter has eaten my email, but never mind about that, here is already
the first update of README.MacOSX.

The good thing about this update is, that we do already know that the step by
step procedure does work on a CoreDuo Mac as well as on a PPC G4 Mac if one
follows step by step the README.MacOSX file.

Also make sure, that you didn't mix up a lot of programs and libraries from
different Internet resources: One might have the idea to install "bison" from
the hmug.org and the "sed" from the fink.sourceforge.net and the "gfortran" from
the hpc.sourceforge.net site. This won't be working! This is like mixing a
Debian/RedHat/SuSE-distribution all together - this doesn't work very well too!

So what I mean is that you should decide which resource you want to use: if you
want to use fink.sourceforge.net then you need everything from fink, or use the
darwinports.com you take everything from darwinports etc. - or you take this
README.MacOSX file for building everything from scratch.

Ok, that's it, enjoy!
Thomas
How To Minimalistically GNUify MacOSX For Building Octave From Scratch
======================================================================

Author:    address@hidden
Created:   2007.01.04
ChangeLog: -at the bottom of this file-


Binary-Releases:
================
If you are looking for an already build version of octave for MacOSX
then visit one of the following web pages that do provide a
binary-release of octave and follow the instructions for installing
octave from these web pages:
  - http://fink.sourceforge.net/
  - http://hpc.sourceforge.net/
  - http://www.hmug.org/


Source-Compilation:
===================
Before building octave from scratch on a MacOSX platform you need to
install several GNU programs and libraries that are not shipped with
your Mac. This description will guide you through the procedure of
GNUifying your MacOSX step by step, so that you are then be able to
configure, compile, install and run the octave program.

If available then binary-releases of the necessary programs are
preferred, otherwise there is no other way as to configure, compile and
install other source-releases of these programs. The minimalistical
requirements for installing these programs on your Mac are that you
have at least MacOSX version 10.4.x running on your Mac (either
CoreDuo or PPC).


Step-By-Step Procedure:
=======================

( 1) Install the Xcode-Tools (ie. the gcc-suite, the c-library and
     other tools) that are shipped with your computer from "MacOSX
     Install Disc 1". Optionally you can get the latest version of
     these tools from http://developer.apple.com/tools/download.
     Follow the instructions from the "About Xcode Tools.pdf" file on
     how to install these tools. Make sure that you have installed the
     latest releases.

( 2) Install the X11 environment (ie. the Xserver application etc.)
     that are shipped with your computer from "MacOSX Install Disc
     1". The X11 environment can be installed via the "Optional
     Installs.mpkg" program and is needed by the GnuPlot program
     ( 6). Make sure that you have installed the latest release.
     Choose "Software-Update" in your menu bar to download and to
     reinstall the latest versions.

( 3) Prepare a directory and the settings on your environment for
     installing the following programs and libraries. Create the
     directory /usr/local that is not present by default on your new
     Mac and set up some variables in either your .profile file (if
     you plan to use the Terminal.app from MacOSX for compiling
     octave) or your .bashrc file (if you plan to use the terminal
     application from your X11 environment). Do this the following
     way:

       sudo mkdir /usr/local

     Edit .profile or .bashrc

       export PATH=$PATH:/usr/local/bin:/usr/X11R6/bin
       export CFLAGS="-I/usr/local/include"
       export LDFLAGS="-L/usr/local/lib"

( 4) Download and install a binary-release of a TeX environment for
     your Mac in order to build the documentation for octave. One of
     the binary-distributions that can be downloaded from Internet at
     this time is the Mac-TeX environment that can be found there
     http://tug.org/mactex. Follow the installation instructions
     provided by this package.

( 5) Download and install a binary-release of a Fortran-compiler
     environment for your Mac. One of the binary-distributions that
     can be downloaded from Internet at this time is the GFortran
     environment. It is hosted at http://www.macresearch.org. The
     GFortran compiler is shipped in a binary-tar.gz file. Unpack and
     install this program the following way:
       
       tar -xzf gfortran-intel-bin.tar.gz
       sudo cp -r ./usr/local/* /usr/local

     Also read the troubleshooting part at the bottom of this file for
     further details about which Fortran compiler to use for MacOSX.

( 6) Download and install a source-release of the program "sed"
     because the one that is implied in MacOSX is out of date in order
     to build octave. The source-release of the latest sed program can
     be downloaded from Internet at
     http://ftp.gnu.org/pub/gnu/sed. Unpack, configure, compile and
     install this program the following way:

       tar -xzf sed-X.x.x.tar.gz
       cd sed-X.x.x
       ./configure --prefix=/usr/local/ --with-included-regex 
--with-included-gettext
       make && sudo make install

     and then move your old /usr/bin/sed program to another name, eg.:

       sudo mv /usr/bin/sed /usr/bin/__sed

     Also read the troubleshooting part at the bottom of this file for
     further details if an error occurs at compilation.

( 7) Download and install a source-release of the program "bison"
     because the one that is implied in MacOSX is out of date in order
     to build octave. The source-release of the latest bison program
     can be downloaded from Internet at
     http://ftp.gnu.org/pub/gnu/bison. Unpack, configure, compile and
     install this program the following way:

       tar -xzf bison-X.x.tar.gz
       cd bison-X.x
       ./configure --prefix=/usr/local/
       make && sudo make install

     and then move your old /usr/bin/bison program to another name, eg.:

       sudo mv /usr/bin/bison /usr/bin/__bison

( 8) Download and install a source-release of the program "gawk". Gawk
     is not included in MacOSX (the program "awk" is included in
     MacOSX but "gawk" is needed to compile octave). The
     source-version of the latest gawk-release can be downloaded from
     Internet at http://ftp.gnu.org/pub/gnu/gawk. Unpack, configure,
     compile and install this program the following way:

       tar -xzf bison-X.x.x.tar.gz
       cd bison-X.x.x
       ./configure --prefix=/usr/local/
       make && sudo make install

( 9) Download and install a source-release of the "readline"
     library. There is already a readline-library included in MacOSX
     but by now I do not know how to include the installed version in
     the compilation procedure of octave. The source-version of the
     latest readline-release can be downloaded from Internet at
     http://ftp.gnu.org/pub/gnu/readline. Unpack, configure, compile
     and install this program the following way:

       tar -xzf readline-X.x.tar.gz
       cd readline-X.x
       ./configure --prefix=/usr/local/ --enable-shared
       make && sudo make install

(10) Download and install a source-release of the program
     "gnuplot". The source-release of the latest gnuplot program can
     be downloaded from Internet at http://www.gnuplot.info. Unpack,
     configure, compile and install this program the following way:

       tar -xzf gnuplot-X.x.x.tar.gz
       cd gnuplot-X.x.x
       ./configure --prefix=/usr/local/
       make && sudo make install

(**) You are already done setting up your MacOSX for configuring,
     building, installing and running the minimalistic version of
     octave. If you want full octave functionality you need to
     download and install more source packages before building octave,
     read the EXTENSIONS part of this file at the bottom.

(11) Download and install a source-release of the latest "octave"
     program. The latest release can always be found at
     http://www.octave.org. Unpack, configure, compile and install
     this program the following way:

       tar -xzf octave-X.x.x.tar.gz
       cd octave-X.x.x
       ./configure --prefix=/usr/local/ --enable-shared
       make && make check && sudo make install

     Also read the troubleshooting part at the bottom of this file for
     further details if an error occurs at compilation.

(12) Enjoy using octave!


EXTENSIONS:
===========

For using the full functionality of octave some more source-packages
need to be installed on your Mac.

(+A) Download and install a source-release of the "pcre"
     library. There is no pcre-library included in MacOSX. The
     source-version of the latest pcre-release can be downloaded from
     Internet at http://www.pcre.org. Unpack, configure, compile and
     install this program by following the installation
     instructions by this package.

(+B) Download and install a source-release of the "hdf5"
     library. There is no hdf5-library included in MacOSX. The
     source-version of the latest hdf5-release can be downloaded from
     Internet at http://www.hdfgroup.org. Unpack, configure, compile
     and install this program by following the installation
     instructions by this package.

(+C) Download and install a source-release of the "SuiteSparse"
     library. There is no SuiteSparse-library included in MacOSX. The
     source-version of the latest release can be downloaded from
     Internet at
     http://www.cise.ufl.edu/research/sparse/SuiteSparse. Unpack,
     configure, compile and install by following the installation
     instructions by this package.


TROUBLESHOOTING:
================

( 5) When compiling octave there may occur an error eg.

       ld: Undefined symbols:
       restFP
       saveFP
       /usr/bin/libtool: internal link edit command failed 

    This is a known MacOSX problem for over years now and may occur if
    you have multiply version of Fortran compilers installed on your
    system. GFortran is one of the known Fortran compilers that do
    work very well with the gcc-suite that is shipped with your
    computer. When running "./configure" in your octave path then make
    sure that GFortran is the one and only Fortran compiler on your
    system.

( 6) When installing sed there may occur an error that sed cannot be
     build. This is a known problem, you first need a working sed (the
     one implied in MacOSX is too old) to build another sed for your
     system, so do the following:

     (a) Enter the sed directory and edit config.h ca. line 14:
           #define ENABLE_NLS 0
     (b) Call ./bootstrap.sh
     (c) sudo mv /usr/bin/sed /usr/bin/__sed
     (d) sudo ln -s /Users/YourHOME/sed-X.x.x/sed/sed /usr/bin/sed
     (e) ./configure --prefix=/usr/local/ --with-included-regex 
--with-included-gettext
     (f) make && sudo make install
     (g) sudo rm /usr/bin/sed

(11) On PPC Macs it seems like you need to add another linker option
     that will not be added by default. If you see an error like 

       ld: Undefined symbols:
       _do_fio
       _e_wsfe...

     you should better do at step ( 3) for also taking the
     libg2c.dylib library at linking time and that the linker finds
     the desired functions:

       export LDFLAGS="-L/usr/local/lib -lg2c"


ChangeLog of this README.MacOSX file:
=====================================

2007.01.07 Thomas Treichl
  It is now possible to compile octave also on PPC machines. The
  README.MacOSX file has been updated.

2007.01.08 Thomas Treichl
  Added (11) in Troubleshooting.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]