Differences between revisions 1 and 81 (spanning 80 versions)
Revision 1 as of 2013-03-29 11:13:33
Size: 2524
Editor: ZekeKaufman
Comment:
Revision 81 as of 2017-03-01 16:37:32
Size: 4518
Editor: ZekeKaufman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
'''Index''' 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.
Line 4: Line 4:
This page is targeted at those who wish to develop and build the freesurfer source code on their Mac OSX platform. These instructions have been tested for Mac 10.6 (Snow Leopard) and 10.7 (Lion). 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]].
<<TableOfContents(3)>>
=== Get the Source Code ===
Line 6: Line 8:
<<TableOfContents(3)>> Users can download !FreeSurfer source code via the read-only git repo:
{{{
## Get source code files (206 MB)
$> git clone https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/repo/freesurfer.git
}}}
Line 8: Line 14:
=== Get the Source Code ===
''If you already have a working local copy of the CVS repository then you can ignore this step.''

Local CVS access:
==== 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 install {{{git-annex}}} and run the following command:
Line 14: Line 18:
export CVSROOT=/space/repo/1/dev
cvs checkout -P dev
## 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 .
Line 17: Line 27:
Remote CVS access:
=== Install System Libraries ===

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

 * [[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)
 * [[http://gcc.gnu.org/wiki/GFortranBinaries#MacOS|gfortran 4.8.2]]
 * [[https://www.macports.org/install.php|MacPorts]]

Once !MacPorts is installed, use it to install autoconf, automake, libtool, and gcc44:
Line 20: Line 40:
export CVSROOT=:ext:USER@door.nmr.mgh.harvard.edu:/space/repo/1/dev
cvs checkout -P dev
$> 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 23: Line 50:
=== Get the Libraries ===
''If you are at the NMR Center and already have {{{/usr/pubsw/packages}}} mounted on your system then you can skip this step.''
Line 26: Line 51:
Freesurfer builds against a set of open-sourced libraries. Special bundles of this open-source code are available on the [[http://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/|distribution site]]. Once you have downloaded the bundle, execute the following command to install them into the {{{/usr/pubsw/packages}}} directory: 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 29: Line 58:
mkdir -p /usr/pubsw/packages
tar -C /usr/pubsw/packages -xzvf DownLoadedFileName.tar.gz
$> 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 32: Line 63:
'''''NOTE:''' You may install the open-sourced libraries into any directory you wish but it is best to install them into the {{{/usr/pubsw/packages}}} directory, as that is where Freesurfer setup script checks for its packages during its setup. If you choose to install in a different location than the onus will be on you to setup everything correctly during the '''configure''' phase. That is outside the scope of this document.''
Line 34: Line 64:
=== Set Your Path ===
{{{
export PATH=/usr/pubsw/packages/autotools/bin:$PATH
}}}
Line 39: Line 65:
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 {{{/Users/zkaufman/freesurfer}}}. Type the following commands in the top-level Freesurfer directory (the directory that contains configure.in and all the mri_* and mris_* directories.)

If your on Mac OSX 10.6 (Snow Leopard)
:
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 44: Line 68:
./setup_configure
./configure \
     
--prefix=/Users/zkaufman/freesurfer
make -j4
make install
$> cd ~/freesurfer
$>
./setup_configure
$> ./configure --with-pkgs-dir=/Users/USERNAME/osx-lion-packages --prefix=/Users/username/fs_install
$> make -j4
$> make install
Line 50: Line 74:
If your on Mac OSX 10.7 (Lion):
Line 52: Line 75:
{{{
./setup_configure
./configure \
      --prefix=/Users/zkaufman/freesurfer \
      --disable-GUI-build \
      --with-Mac32-GUIs
make -j4
make install
}}}
Line 63: Line 77:
Send your comments/questions/feedback to zkaufman@nmr.mgh.harvard.edu  Send your comments/questions/feedback to zkaufman@nmr.mgh.harvard.edu

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

Users can download FreeSurfer source code via the read-only git repo:

## Get source code files (206 MB)
$> git clone https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/repo/freesurfer.git

1.1. 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 install git-annex and run the following command:

## 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