Create a MacOS X App Bundle Using MacPorts: Difference between revisions

Change gcc45 to gcc47
(Change gcc45 to gcc47)
Line 24: Line 24:
portindex -f</nowiki>
portindex -f</nowiki>
Once indexed the local Octave port may be installed.
Once indexed the local Octave port may be installed.
  <nowiki>sudo port install octave-local +atlas+gcc45</nowiki>
  <nowiki>sudo port install octave-local +atlas+gcc47</nowiki>


The use of the {{Codeline|+atlas}} variant is encouraged as bugs exist for Apple's {{Codeline|accelerate}} framework in both MacOS 10.6 and 10.7.  Octave's developers have included a fix for MacOS 10.6, but the fix does not work for MacOS 10.7.  There is some commentary on this in various developers discussion forums.  For example, see [https://github.com/mxcl/homebrew/issues/6649 this Homebrew thread (Octave 3.4 fails on lion)], [https://stat.ethz.ch/pipermail/r-sig-mac/2011-September/008564.html this R-Sig-Mac thread (R 2.13.1-patched, vecLib problem on Lion)], and [http://list.coin-or.org/pipermail/ipopt/2011-October/002610.html the COIN-OR thread (Ipopt - problems on OS X 10.7 Lion)].  Use of Apple's  {{Codeline|accelerate}} framework should also be avoided for {{Codeline|arpack}} and {{Codeline|qrupdate}}.  To install the recommended variants, use the {{Codeline|port}} commands below.
The use of the {{Codeline|+atlas}} variant is encouraged as bugs exist for Apple's {{Codeline|accelerate}} framework in both MacOS 10.6 and 10.7.  Octave's developers have included a fix for MacOS 10.6, but the fix does not work for MacOS 10.7.  There is some commentary on this in various developers discussion forums.  For example, see [https://github.com/mxcl/homebrew/issues/6649 this Homebrew thread (Octave 3.4 fails on lion)], [https://stat.ethz.ch/pipermail/r-sig-mac/2011-September/008564.html this R-Sig-Mac thread (R 2.13.1-patched, vecLib problem on Lion)], and [http://list.coin-or.org/pipermail/ipopt/2011-October/002610.html the COIN-OR thread (Ipopt - problems on OS X 10.7 Lion)].  Use of Apple's  {{Codeline|accelerate}} framework should also be avoided for {{Codeline|arpack}} and {{Codeline|qrupdate}}.  To install the recommended variants, use the {{Codeline|port}} commands below.


  <nowiki>port install arpack +atlas+gcc45
  <nowiki>port install arpack +atlas+gcc47
port install qrupdate +atlas+gcc45</nowiki>
port install qrupdate +atlas+gcc47</nowiki>


As a precaution against unexpected problems and a bloated App bundle, using consistent variants for Octave and its dependents is suggested.  For example, when using {{Codeline|+atlas}} make sure none of the dependents are using {{Codeline|+accelarate}}. Also, make sure no dependents are using the {{Codeline|+universal}} variant.  Using the {{Codeline|+gcc45}} variant is also recommended as all of Octave's dependents have a {{Codeline|+gcc45}} variant.  At the very least, following these suggestions will reduce the size of the bundle.  The name of Octave's dependent ports may be determined by the command below.
As a precaution against unexpected problems and a bloated App bundle, using consistent variants for Octave and its dependents is suggested.  For example, when using {{Codeline|+atlas}} make sure none of the dependents are using {{Codeline|+accelarate}}. Also, make sure no dependents are using the {{Codeline|+universal}} variant.  Using the {{Codeline|+gcc47}} variant is also recommended as all of Octave's dependents have a {{Codeline|+gcc47}} variant.  At the very least, following these suggestions will reduce the size of the bundle.  The name of Octave's dependent ports may be determined by the command below.


  <nowiki>port deps octave-local</nowiki>
  <nowiki>port deps octave-local</nowiki>
Line 309: Line 309:
-L"/Applications/Octave-3.7.0+.app/Contents/Resources/lib/octave/3.7.0+" \
-L"/Applications/Octave-3.7.0+.app/Contents/Resources/lib/octave/3.7.0+" \
-L"/Applications/Octave-3.7.0+.app/Contents/Resources/lib" -loctinterp -loctave -lcruft \
-L"/Applications/Octave-3.7.0+.app/Contents/Resources/lib" -loctinterp -loctave -lcruft \
"/Applications/Octave-3.7.0+.app/Contents/Resources/lib/gcc45/libstdc++.6.dylib"</nowiki>
"/Applications/Octave-3.7.0+.app/Contents/Resources/lib/gcc47/libstdc++.6.dylib"</nowiki>
* Should the contents of the la-files, in {{Codeline|Octave-3.7.0+.app/Resources/lib}}, be changed to reflect to use the {{Codeline|@executable_path}} token.
* Should the contents of the la-files, in {{Codeline|Octave-3.7.0+.app/Resources/lib}}, be changed to reflect to use the {{Codeline|@executable_path}} token.
** These files are from libtool.  For limited development, such as building oct-files and mex-files, are they needed at all?
** These files are from libtool.  For limited development, such as building oct-files and mex-files, are they needed at all?
364

edits