Differences between revisions 7 and 9 (spanning 2 versions)
Revision 7 as of 2008-03-19 04:19:24
Size: 1688
Editor: root
Comment:
Revision 9 as of 2008-03-19 04:37:03
Size: 3158
Editor: root
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
If you choose to install these from your package manager, it will be difficult to transfer your EMAN build from machine to machine. For the self-contained package I created, I chose to build them all myself without a package manager for more control over configuration options. However, some of the packages required either patches or some careful massaging to compile properly. I have included detailed instructions and extra files required below:
Line 31: Line 30:
Detailed instructions for building dependencies on Mac OS X ---- /!\ '''Edit conflict - other version:''' ----

====================

You have two routes available. You can install the above dependencies using a package manager such as fink or macports. This is the easier and faster option, but has the downside of making it more difficult to distribute your built package or moving it to a different machine. If you choose this option, just skip to the end.

The other option is to build all dependencies manually from source. This is the method I chose for the self-contained EMAN package. However, some of the packages required either patches or some careful massaging to compile properly. It will require a bit more effort than using the package manager.

====================

Compiling dependencies from source:

---- /!\ '''Edit conflict - your version:''' ----

====================

You have two routes available. You can install the above dependencies using a package manager such as fink or macports. This is the easier and faster option, but has the downside of making it more difficult to distribute your built package or moving it to a different machine. If you choose this option, just skip to the end.

The other option is to build all dependencies manually from source. This is the method I chose for the self-contained EMAN package. However, some of the packages required either patches or some careful massaging to compile properly. It will require a bit more effort than using the package manager.

====================

Compiling dependencies from source:

---- /!\ '''End of edit conflict''' ----
Line 35: Line 58:
I called the disk image "EMAN" and used the following directory structure for organization.
Line 37: Line 59:
EMAN/
EMAN2/
---- /!\ '''Edit conflict - other version:''' ----
I called the disk image "EMAN" and used the following directory structure for organization.
Line 40: Line 62:
/build/
 /10.4 and 10.5
  /32 and 64
   /EMAN
   /EMAN2
---- /!\ '''Edit conflict - your version:''' ----
I called the disk image "EMAN" and used the following directory structure for organization.
Line 46: Line 65:
*img*
Line 47: Line 67:
dep/
 /10.4 and 10.5
  /fat
  /include, info, man, qt3, qt4, share
  /src
 /cmake
 
extlib/
 /10.4 and 10.5
 
src/
src/patches
"build" is for EMAN build files. "dep" is the dependency tree root. "extlib" is for modified dependency libraries. "EMAN" is for the EMAN source itself. "Resources" are support files to be used in the creation of Mac OS X app bundles. "src" is for downloaded source tarballs and patches. "stage" is where the EMAN package will be prepared for distribution. "vars10.x.sh" is for environment variables specific to building for each Mac OS X version.
Line 60: Line 69:
stage/
 /skeleton
  /EMAN.app
   /Contents
    /PkgInfo
    /Info.plist
 /10.4 and 10.5
  /EMAN
   /EMAN
    /lib, bin, doc, python, etc.
   /EMAN.64
   /EMAN2
   /EMAN2.64
   /links to app bundles in EMAN/apps
Because 10.4 and 10.5 use different versions of Python, I decided to build EMAN and dep libraries separately for each deployment target.

---- /!\ '''End of edit conflict''' ----

Compiling for Mac OS X is generally the same as other platforms, but with some additional work required in post-install processing.

Dependencies (version I have used successfully in parens):

boost (1_34_1)

cmake (2.4.8)

fftw (2.1.5)

gsl (1.8)

hdf5 (1.6.6)

jpeg (v6b)

png (1.2.23)

numpy (1.0.4)

Qt/Mac (3.3.8)

szip (2.1)

tiff (3.8.2)

zlib (1.2.1)


/!\ Edit conflict - other version:


====================

You have two routes available. You can install the above dependencies using a package manager such as fink or macports. This is the easier and faster option, but has the downside of making it more difficult to distribute your built package or moving it to a different machine. If you choose this option, just skip to the end.

The other option is to build all dependencies manually from source. This is the method I chose for the self-contained EMAN package. However, some of the packages required either patches or some careful massaging to compile properly. It will require a bit more effort than using the package manager.

====================

Compiling dependencies from source:


/!\ Edit conflict - your version:


====================

You have two routes available. You can install the above dependencies using a package manager such as fink or macports. This is the easier and faster option, but has the downside of making it more difficult to distribute your built package or moving it to a different machine. If you choose this option, just skip to the end.

The other option is to build all dependencies manually from source. This is the method I chose for the self-contained EMAN package. However, some of the packages required either patches or some careful massaging to compile properly. It will require a bit more effort than using the package manager.

====================

Compiling dependencies from source:


/!\ End of edit conflict


I opted to place my build environment in a disk image to make it easier to move it from machine to machine. Use Disk Utility to create a sparse disk image with a max size of 50gb (it will shrink to the total size of the files contained.)


/!\ Edit conflict - other version:


I called the disk image "EMAN" and used the following directory structure for organization.


/!\ Edit conflict - your version:


I called the disk image "EMAN" and used the following directory structure for organization.

*img*

"build" is for EMAN build files. "dep" is the dependency tree root. "extlib" is for modified dependency libraries. "EMAN" is for the EMAN source itself. "Resources" are support files to be used in the creation of Mac OS X app bundles. "src" is for downloaded source tarballs and patches. "stage" is where the EMAN package will be prepared for distribution. "vars10.x.sh" is for environment variables specific to building for each Mac OS X version.

Because 10.4 and 10.5 use different versions of Python, I decided to build EMAN and dep libraries separately for each deployment target.


/!\ End of edit conflict


EMAN_COMPILE_MacOS_X_for_Distribution (last edited 2009-07-22 21:32:58 by root)