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).

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

Users can download Freesurfer source code via the read-only git repo. A simple clone of the repo (187 Megs) is enough to perform a build of all freesurfer binaries. However, if a user wishes to perform full Freesurfer installation locally, he/she will need git-annex in order to download all the data files required for a full installation (6.6 Gigs).

## Get the source code
$> git clone http://freesurfer.net/anonftp/pub/dist/freesurfer/repo/freesurfer.git

## Get data files (only required for full installation)
$> cd freesurfer
$> git annex get .  

2. Download and Install the Libraries

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

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:

$> xcode-select --install

After Xcode has been installed, we need to install gcc v4.4.7 using MacPorts:

$> sudo port install gcc44
$> sudo port select --set gcc mp-gcc44
$> gcc --version
gcc (MacPorts gcc44 4.4.7_10) 4.4.7

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

3. Set Your Path

$> export PATH=/usr/pubsw/packages/autotools/bin:$PATH

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 /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.)

$> ./setup_configure
$> ./configure --prefix=/User/USER/freesurfer
$> make -j4
$> make install

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