Differences between revisions 34 and 113 (spanning 79 versions)
Revision 34 as of 2015-11-03 18:26:07
Size: 3310
Editor: ZekeKaufman
Comment:
Revision 113 as of 2019-03-27 13:50:10
Size: 0
Editor: AndrewHoopes
Comment: Documentation has been consolidated in the Build Guide
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma section-numbers on
This page is targeted at those who wish to develop and build the freesurfer source code on their Linux platform. These instructions have been tested for CentOS6 x86_64 desktop edition.
<<TableOfContents(3)>>
=== Get the Source Code ===
If you have access within the Martinos Center firewall, follow the steps below to download the source code from CVS. Non-Martinos users can get readonly CVS access to the source code by following the directions [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReadOnlyCVS|on this page]]:
{{{
# Local:
$> export CVSROOT=/space/repo/1/dev
$> cvs checkout -P dev

# Remote:
$> export CVSROOT=:ext:USERNAME@door.nmr.mgh.harvard.edu:/space/repo/1/dev
$> cvs checkout -P dev
}}}

/* === Get the build tools (Ubuntu plantforms only) === If you are on an Ubuntu machine you will have to install the following packages:{{{sudo apt-get install autoconf libtool gfortran cvs}}} */


=== Install System Libraries ===

The following system packages are required on CentOS6 systems before building. Equivalent or similar packages will be required on other linux distributions.

{{{
$> yum groupinstall "Development Tools"
$> yum install mesa-libGLU-devel \
            freetype-devel.x86_64 \
            libuuid-devel.x86_64 \
            uuid-c++-devel.x86_64 \
            libXmu-devel.x86_64 \
            libXi-devel.x86_64 \
            lapack-devel.x86_64 \
            liblapack-devel.x86_64 \
            libXaw-devel.x86_64 \
            libpng-devel.x86_64
}}}

=== Library Dependencies ===

Download and install the prepackaged bundle of open-source libraries required for building Freesurfer:

/* '''''On 64bit systems''''' */
{{{
$> wget ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/centos6_x86_64/centos6-x86_64-packages.tar.gz
$> tar -xzvf centos6-x86_64-packages.tar.gz
$> cd centos6-x86_64-packages
$> ./setup.sh
}}}

It is theoretically possible to install the bundle in any location on your system, but that would require manually passing the location for each library when running the {{{configure}}} script. By installing in {{{/usr/pubsw/packages}}} the {{{configure}}} script will automatically find them.

/* '''''On 32bit systems'''''{{{wget ftp://surfer.nmr.mgh.harvard.edu/pub/dist/fs_supportlibs/prebuilt/centos6_x86_64/centos6-x86_64-packages.tar.gz mkdir -p /usr/pubsw/packages tar -C /usr/pubsw/packages -xzvf centos6-x86_64-packages.tar.gz }}} */

=== 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.)
{{{
$> ./setup_configure
$> ./configure --prefix=/home/USER/freesurfer
$> make -j4
$> make install
}}}
Done!

Its possible some systems (Ubuntu) will complain about a missing jpeg library after the {{{configure}}} script is run, or during runtime. If this happens, create the following symbolic link:
{{{
$> cd /usr/lib64
$> sudo ln -s libjpeg.so.62 libjpeg.so
}}}

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