Custom building Coot from source code: Difference between revisions

m
no edit summary
m (url for mirrors for source code)
mNo edit summary
Line 5: Line 5:
This is a so-called "advanced" task. Don't attempt it unless you would rather compile your own software than use pre-compiled versions. The standard (supported) method for installing Coot is to download a pre-compiled binary, or to use the autobuild scripts: [[Coot]].
This is a so-called "advanced" task. Don't attempt it unless you would rather compile your own software than use pre-compiled versions. The standard (supported) method for installing Coot is to download a pre-compiled binary, or to use the autobuild scripts: [[Coot]].


====Install gpp4 and other dependencies on Linux.====
==Install gpp4 and other dependencies on Linux.==


Instead of using ccp4-onlylibs-dev, we want to use ssm, mmdb, gpp4 and clipper packages.     
Instead of using ccp4-onlylibs-dev, we want to use ssm, mmdb, gpp4 and clipper packages.     
Line 13: Line 13:
Install these in the order described:
Install these in the order described:


=====mmdb=====
===mmdb===
  wget http://www.ebi.ac.uk/~keb/cldoc/downloads/mmdb-1.19.tar.gz
  wget http://www.ebi.ac.uk/~keb/cldoc/downloads/mmdb-1.19.tar.gz
  ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
  ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
Line 19: Line 19:
  make install
  make install


=====ssm=====
===ssm===
  wget ftp://ftp.bioxray.au.dk/pub/mok/src/ssm-0.1.tar.gz
  wget ftp://ftp.bioxray.au.dk/pub/mok/src/ssm-0.1.tar.gz
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
Line 25: Line 25:
  make install
  make install


=====gpp4=====
===gpp4===
  wget ftp://ftp.bioxray.au.dk/pub/mok/src/gpp4-1.0.4.tar.gz
  wget ftp://ftp.bioxray.au.dk/pub/mok/src/gpp4-1.0.4.tar.gz
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include
Line 31: Line 31:
  make install
  make install


=====fftw=====
===fftw===
We need to compile fftw in a way that differs from that used to make the standard linux distribution of fftw. So to do that, we will install our own in /usr/local/xtal/lib, so it will remain hidden from the rest of the system, unless directed to look for it there.
We need to compile fftw in a way that differs from that used to make the standard linux distribution of fftw. So to do that, we will install our own in /usr/local/xtal/lib, so it will remain hidden from the rest of the system, unless directed to look for it there.
  ftp://ftp.fftw.org/pub/fftw/old/fftw-2.1.5.tar.gz
  ftp://ftp.fftw.org/pub/fftw/old/fftw-2.1.5.tar.gz
Line 38: Line 38:
  make install
  make install


=====clipper=====
===clipper===
  wget http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper20ac.latest.tar.gz
  wget http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper20ac.latest.tar.gz
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include -enable-shared --with-gpp4=/usr/local/xtal --with-mmdb=/usr/local/xtal --with-fftw=/usr/local/xtal --enable-mmdb --enable-minimol --enable-cif --enable-cns --enable-gpp4
  CPPFLAGS=-I/usr/local/xtal/include ./configure --prefix=/usr/local/xtal --includedir=/usr/local/xtal/include -enable-shared --with-gpp4=/usr/local/xtal --with-mmdb=/usr/local/xtal --with-fftw=/usr/local/xtal --enable-mmdb --enable-minimol --enable-cif --enable-cns --enable-gpp4
Line 51: Line 51:




====Make sure the other needed dependencies are installed====
==Make sure the other needed dependencies are installed==


These include at least the following dependencies:
These include at least the following dependencies:


=====Ubuntu packages=====
===Ubuntu packages===


A [[list of coot dependencies]] that is probably only a subset
A [[list of coot dependencies]] that is probably only a subset


=====Others that you have to make yourself: =====
===Others that you have to make yourself: ===
[http://download.gna.org/guile-lib guile-lib] (I had to compile this myself as described below)
[http://download.gna.org/guile-lib guile-lib] (I had to compile this myself as described below)


Line 78: Line 78:
This puts stuff into /usr, rather than /usr/local or /usr/local/xtal, which you might not want to do.  The aim is to eventually get these into the standard system distribution, in which case they will reside in /usr with the other guile extensions. All of these should work with guile-1.8.
This puts stuff into /usr, rather than /usr/local or /usr/local/xtal, which you might not want to do.  The aim is to eventually get these into the standard system distribution, in which case they will reside in /usr with the other guile extensions. All of these should work with guile-1.8.


====Configuring and building coot ====
==Configuring and building coot ==


=====Start a root shell session=====
===Start a root shell session===


If root is enabled, log into a root shell, or else if you have sudo (debian, ubuntu, etc), use the command
If root is enabled, log into a root shell, or else if you have sudo (debian, ubuntu, etc), use the command
Line 89: Line 89:




=====Fix a configure bug=====
===Fix a configure bug===


First, issue the following command to fix a configure bug when compiling with gpp4:
First, issue the following command to fix a configure bug when compiling with gpp4:
Line 95: Line 95:
  perl -pi -e 's|lccp4c|lgpp4|g' configure  
  perl -pi -e 's|lccp4c|lgpp4|g' configure  


=====Now configure this way: =====
===Now configure this way: ===


<pre>
<pre>
Line 114: Line 114:
</pre>
</pre>


=====Then, remake the  src/coot_wrap_python.cc and src/coot_wrap_guile.cc files: =====
===Then, remake the  src/coot_wrap_python.cc and src/coot_wrap_guile.cc files: ===


  /bin/rm -f **/coot_wrap_**.cc
  /bin/rm -f **/coot_wrap_**.cc
Line 124: Line 124:
  cd ..
  cd ..


=====Now compile coot:=====
===Now compile coot:===
  make  
  make  
  make -i install
  make -i install


=====To make it play nice with python, I have had to do the following: =====
===To make it play nice with python, I have had to do the following: ===
  perl pi -e 's|PYTHONHOME=\$COOT_PREFIX|\#PYTHONHOME=\$COOT_PREFIX|g' bin/coot
  perl pi -e 's|PYTHONHOME=\$COOT_PREFIX|\#PYTHONHOME=\$COOT_PREFIX|g' bin/coot
  cp src/coot.py python/.
  cp src/coot.py python/.
  cp src/coot.py share/coot/python/.
  cp src/coot.py share/coot/python/.
   
   
=====Now add the reference structures: =====
===Now add the reference structures: ===
  cd share/coot
  cd share/coot
  wget http://www.ysbl.york.ac.uk/~emsley/software/coot-reference-structures.tar.gz
  wget http://www.ysbl.york.ac.uk/~emsley/software/coot-reference-structures.tar.gz
  tar xvfz coot-reference-structures.tar.gz ; rm coot-reference-structures.tar.gz
  tar xvfz coot-reference-structures.tar.gz ; rm coot-reference-structures.tar.gz


===== Now add the refmac dictionaries=====
=== Now add the refmac dictionaries===
(eg using coot-0.5 and refmac 5.4; change as required):
(eg using coot-0.5 and refmac 5.4; change as required):


Line 147: Line 147:
  cp -r dic /usr/local/xtal/coot-0.5/lib/data/monomers
  cp -r dic /usr/local/xtal/coot-0.5/lib/data/monomers


=====Export the COOT_REFMAC_LIB_DIR variable =====
===Export the COOT_REFMAC_LIB_DIR variable ===
(you can edit bin/coot):  
(you can edit bin/coot):  
   export COOT_REFMAC_LIB_DIR=$COOT_PREFIX/lib
   export COOT_REFMAC_LIB_DIR=$COOT_PREFIX/lib


=====Notes on the above: =====
===Notes on the above: ===
The configure command is all one line; I've escaped the return. Using --prefix=$PWD simply keeps everything self-contained.  You can use any install prefix you want to (it defaults to /usr/local; another sensible choice is /usr/local/xtal.  Avoid /usr as a prefix, as it can mess with your system).
The configure command is all one line; I've escaped the return. Using --prefix=$PWD simply keeps everything self-contained.  You can use any install prefix you want to (it defaults to /usr/local; another sensible choice is /usr/local/xtal.  Avoid /usr as a prefix, as it can mess with your system).


Line 158: Line 158:
----
----


====If you want to make it portable====
==If you want to make it portable==


You don't need to do this to run coot; this is only handy if you need to redistribute it (or make say a debian package).
You don't need to do this to run coot; this is only handy if you need to redistribute it (or make say a debian package).
126

edits