Differences between revisions 68 and 83 (spanning 15 versions)
Revision 68 as of 2015-06-30 11:26:53
Size: 2862
Editor: ZekeKaufman
Comment:
Revision 83 as of 2017-04-04 14:11:05
Size: 5039
Editor: ZekeKaufman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
This page is targeted at those who wish to develop and build the freesurfer source code on their OSX platform. These instructions have been tested for OS X 10.7, 10.9 (Lion and Mavericks). This page is targeted at those who wish to develop and build the freesurfer source code on their OSX platform. These instructions have been tested for OS X 10.7, 10.9, 10.11 (Lion, Mavericks, El Capitan). See the [[freesurfer_linux_developers_page|linux build page]] for instructions on how to build on linux platform.

Those who wish to add a binary to the FreeSurfer software suite should consult the 'Adding a new binary to the tree' section of the [[https://surfer.nmr.mgh.harvard.edu/fswiki/DevelopersGuide#Addinganewbinarytothetree|Developers Guide]].
Line 5: Line 7:
''If you already have a working local copy of the CVS repository then you can skip this step.''
The Freesurfer source code can be cloned from the official [[https://github.com/freesurfer/freesurfer|Freesurfer github page]]:
Line 7: Line 11:
# Local CVS access:
$> export CVSROOT=/space/repo/1/dev
$> cvs checkout -P dev
git clone https://github.com/freesurfer/freesurfer.git
}}}
Line 11: Line 14:
# Or for remote access:
$> export CVSROOT=:ext:USER@door.nmr.mgh.harvard.edu:/space/repo/1/dev
$> cvs checkout -P dev
==== Get the Data Files ====
==== Get the Data Files ====
The Freesurfer repository contains a large number data files which are not included with a default {{{git clone}}} of the repo. Instead, these data files are distributed via the [[https://git-annex.branchable.com/|git-annex]] software. Users who only want the repository for the purposes of compiling binaries and/or inspecting source code, the {{{git clone}}} command from above is all you need to do. Users who want to run build time checks, or perform a full local installation, or just want all the contents of the repository, will need to add a special data store remote repository in order to retrieve these files.

To add the data store repository (this only needs to be done once):
{{{
git remote add datasrc https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/repo/annex.git
git fetch datasrc
Line 15: Line 23:
Or, you can get readonly CVS access to the source code by following the directions [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReadOnlyCVS|on this page]]:
Line 17: Line 24:
=== Download and Install the Libraries === And to retrieve data files:

{{{
git annex get <filename>
}}}

The data files have been broken down into categories, those being required for build time checks, those required for a local installation, and everything else. Use one of the following commands depending on your needs:

{{{
## Get only the data files required for build time checks (1.9 GB)
git annex get --metadata fstags=makecheck .

## Get only the data files required for local installation (4.3 GB)
git annex get --metadata fstags=makeinstall .

## Just give me everything! Not Recommended (6.8 GB)
git annex get .
}}}


=== Install System Libraries ===
Line 21: Line 48:
 * [[https://download.qt.io/archive/qt/4.7/qt-mac-opensource-4.7.4.dmg|Qt 4.7.4]]  * [[http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.5.dmg|XQuartz 2.7.5]] (for OSX versions 10.9 and lower)
 * [[http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.6.dmg|XQuartz 2.7.6]] (for OSX versions 10.10 and higher)
Line 23: Line 51:
 * [[https://www.macports.org/install.php|MacPorts]] (for installing gcc)
 * [[http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.5.dmg|XQuartz 2.7.5]] (OSX versions 10.9 and lower)
 * [[http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.6.dmg|XQuartz 2.7.6]] (OSX versions 10.10 and higher)
 * [[https://www.macports.org/install.php|MacPorts]]
Line 27: Line 53:
''IMPORTANT: After you install Qt, you must delete line 320 from the file'' {{{/Library/Frameworks/QtCore.framework/Headers/qglobal.h}}}'', the line that says "#warning "This version of Mac OS X is unsupported""''. Next, install Xcode Command Line Tools my typing the following on the command line: Once !MacPorts is installed, use it to install autoconf, automake, libtool, and gcc44:
Line 30: Line 56:
$> xcode-select --install $> sudo port install autoconf
$> sudo port install automake
$> sudo port install libtool
$> sudo port install gcc44

## Set gcc44 to be the default compiler
$> sudo port select --set gcc mp-gcc44
$> gcc --version
gcc (MacPorts gcc44 4.4.7_10) 4.4.7
Line 33: Line 67:
After Xcode has been installed, we need to install gcc v4.4.7 using MacPorts: As of the writing of this document (June 2016) freeview is unable to build on OSX 10.11 platforms (El Capitan). This is due to an incompatibility between qt4.7 and OSX 10.11. If you are building on a pre-OSX 10.11 platform, and want to build freeeview, you will need to download and install [[https://download.qt.io/archive/qt/4.7/qt-mac-opensource-4.7.4.dmg|Qt 4.7.4]].''IMPORTANT: After you install Qt, you must delete line 320 from the file'' {{{/Library/Frameworks/QtCore.framework/Headers/qglobal.h}}}'', the line that says "#warning "This version of Mac OS X is unsupported""''. Next, install Xcode Command Line Tools my typing the following on the command line:

=== Library Dependencies ===

In order to compile freesurfer, you will need to download and install our prebuilt bundle of 3rd party dependancies. Download the package and extract its content. Remember the extraction location as you will need to pass that directory to the {{{configure}}} script.
Line 36: Line 74:
$> sudo port install gcc44
$> cd /opt/local/bin
$> sudo ln -s gcc-mp-4.4 gcc
$> sudo ln -s g++-mp-4.4 g++
}}}

Download and install the prebuilt package of open-source libraries:

{{{
$> curl -O ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/lion/MacOSX_Lion_Packages.tar.gz
$> sudo mkdir -p /usr/pubsw/packages
$> sudo tar -C /usr/pubsw/packages -xzvf MacOSX_Lion_Packages.tar.gz
}}}


=== Set Your Path ===
{{{
$> export PATH=/usr/pubsw/packages/autotools/bin:$PATH
$> mkdir ~/osx-lion-packages
$> cd ~/osx-lion-packages
$> curl -O ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/OSX/osx-lion-packages.tar.gz
$> tar -xzvf osx-lion-packages.tar.gz
Line 57: Line 81:
Determine the location you want Freesurfer to be installed. For example, in case case we will assume the user wants freesurfer to be installed in {{{/User/USER/freesurfer}}}. Type the following commands in the top-level Freesurfer directory (the directory that contains configure.in and all the mri_* and mris_* directories.) Determine the location you want Freesurfer to be installed. For example, in case case we will assume the user wants freesurfer to be installed in {{{/home/USER/freesurfer}}}. Type the following commands in the top-level Freesurfer directory (the directory that contains configure.in and all the mri_* and mris_* directories.):
Line 59: Line 84:
$> cd ~/freesurfer
Line 60: Line 86:
$> ./configure --prefix=/User/USER/freesurfer $> ./configure --with-pkgs-dir=/Users/USERNAME/osx-lion-packages --prefix=/Users/username/fs_install
Line 64: Line 90:
Line 65: Line 92:

This page is targeted at those who wish to develop and build the freesurfer source code on their OSX platform. These instructions have been tested for OS X 10.7, 10.9, 10.11 (Lion, Mavericks, El Capitan). See the linux build page for instructions on how to build on linux platform.

Those who wish to add a binary to the FreeSurfer software suite should consult the 'Adding a new binary to the tree' section of the Developers Guide.

1. Get the Source Code

The Freesurfer source code can be cloned from the official Freesurfer github page:

git clone https://github.com/freesurfer/freesurfer.git

1.1. Get the Data Files

1.2. Get the Data Files

The Freesurfer repository contains a large number data files which are not included with a default git clone of the repo. Instead, these data files are distributed via the git-annex software. Users who only want the repository for the purposes of compiling binaries and/or inspecting source code, the git clone command from above is all you need to do. Users who want to run build time checks, or perform a full local installation, or just want all the contents of the repository, will need to add a special data store remote repository in order to retrieve these files.

To add the data store repository (this only needs to be done once):

git remote add datasrc  https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/repo/annex.git
git fetch datasrc

And to retrieve data files:

git annex get <filename>

The data files have been broken down into categories, those being required for build time checks, those required for a local installation, and everything else. Use one of the following commands depending on your needs:

## Get only the data files required for build time checks (1.9 GB)
git annex get --metadata fstags=makecheck .

## Get only the data files required for local installation (4.3 GB)
git annex get --metadata fstags=makeinstall .

## Just give me everything! Not Recommended (6.8 GB)
git annex get .

2. Install System Libraries

In order to build Freesurfer, the following prerequisite software will need to be downloaded and installed on your OSX system:

Once MacPorts is installed, use it to install autoconf, automake, libtool, and gcc44:

$> sudo port install autoconf
$> sudo port install automake
$> sudo port install libtool
$> sudo port install gcc44

## Set gcc44 to be the default compiler
$> sudo port select --set gcc mp-gcc44
$> gcc --version
gcc (MacPorts gcc44 4.4.7_10) 4.4.7

As of the writing of this document (June 2016) freeview is unable to build on OSX 10.11 platforms (El Capitan). This is due to an incompatibility between qt4.7 and OSX 10.11. If you are building on a pre-OSX 10.11 platform, and want to build freeeview, you will need to download and install Qt 4.7.4.IMPORTANT: After you install Qt, you must delete line 320 from the file /Library/Frameworks/QtCore.framework/Headers/qglobal.h, the line that says "#warning "This version of Mac OS X is unsupported"". Next, install Xcode Command Line Tools my typing the following on the command line:

3. Library Dependencies

In order to compile freesurfer, you will need to download and install our prebuilt bundle of 3rd party dependancies. Download the package and extract its content. Remember the extraction location as you will need to pass that directory to the configure script.

$> mkdir ~/osx-lion-packages
$> cd ~/osx-lion-packages
$> curl -O ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/OSX/osx-lion-packages.tar.gz
$> tar -xzvf osx-lion-packages.tar.gz

4. Setup, Configure, Make

Determine the location you want Freesurfer to be installed. For example, in case case we will assume the user wants freesurfer to be installed in /home/USER/freesurfer. Type the following commands in the top-level Freesurfer directory (the directory that contains configure.in and all the mri_* and mris_* directories.):

$> cd ~/freesurfer
$> ./setup_configure
$> ./configure --with-pkgs-dir=/Users/USERNAME/osx-lion-packages --prefix=/Users/username/fs_install
$> make -j4
$> make install

Done!

Send your comments/questions/feedback to zkaufman@nmr.mgh.harvard.edu