CCP4 related
- Introduction
- Quick(est) installation of CCP4
- Fine tuning
- Some notes
- Unsorted list of changes
- What doesn't work at the moment
Introduction
These are my CCP4 related pages that might be helpful getting you
started with a complete installation of CCP4. The various pages cover
installation under Linux (Intel/ix86), IRIX and Tru64 (aka Digital
Unix). A variety of compilers can be used and the setup is capable of
dealing with multi-machine, multi-OS scenarios.
IMPORTANT: you should be aware, that CCP4 is a licensed
product. Please make sure you've read the academic and/or commercial
license info! All information on this page(s) assumes that you are
entitled to download and install the CCP4 release.
VERY IMPORTANT: I don't intend to support this in any way. But
if you find (and fix) some problems I would be glad if you'll let me
know. Furthermore, there is no guarantee that the resulting binaries
will work correctly: if in doubt please use the 'official'
binaries/sources from CCP4.
Quick(est?) installation of CCP4
- decide where you want to install CCP4
(e.g. in /public/xtal) and go there
% cd /public/xtal
- download the script ccp4_cv.sh to this
directory
- make the script executable, e.g.
% chmod +x ./ccp4_cv.sh
- run the script - this will install everything in subdirectory
ccp4-A.B.C
(where A.B.C is the current CCP4 release; e.g. /public/xtal/ccp4-5.0.2). It will test your
installed compilers, download a few patches for the relevant
CCP4 version (currently about
5Mb for CCP4 4.2, 700k for CCP4 4.2.1, 130k for CCP4 4.2.2 and
40k for CCP4 5.0.2),
compile and install
(optionally with the tcl/tk and BLT stuff needed for the ccp4i)
everything. It will also
download the official CCP4 tar.gz file (from ftp://ftp.ccp4.ac.uk/pub/ccp4)
if not already there.
% ./ccp4_cv.sh
- you can run this script (in the same location, e.g. in
/public/xtal) on
different platforms: binary files are kept in different
locations
To use the resulting installation, add the following to your startup
files (~/.login, ~/.cshrc, ~/.profile or whatever):
source /public/xtal/ccp4-5.0.2/include/ccp4.setup-csh # for csh/tcsh
or
. /public/xtal/ccp4-5.0.2/include/ccp4.setup-sh # for sh/ksh/bash
To force the setup script to use a specific set of binaries:
setenv CSYSTEM linux-lf95
source /public/xtal/ccp4-5.0.2/include/ccp4.setup-csh # for csh/tcsh
or
CSYSTEM=linux-lf95
export CSYSTEM
. /public/xtal/ccp4-5.0.2/include/ccp4.setup-sh # for sh/ksh/bash
(you can see a list of available binaries e.g. doing ls
$CCP4/bin)
Fine tuning
- If you want to change some compiler flags you need to edit the
file ccp4-5.0.2/.cv/setup.<os>-<fc>,
where
- <os> is one of irixn32, alpha or linux
- <fc> is a short name for the Fortran compiler used
(e.g. f77, f90, ifc, g77 etc)
You can then re-run the ccp4_cv.sh script: this will now use your
edited setup script to get compiler flags etc. You might want to first
save the directories that contain the current version of the
<os>-<fc> files. These are:
- $CCP4/bin/<os>-<fc>: here are the binaries
- $CCP4/lib/<os>-<fc>: here are the libraries
and several other files
- Another option is to use the various files (Makefile,
config.status, libtool etc) that were
produced by using the default compiler options. Once the
ccp4_cv.sh script is finished, a copy of these
is saved in
<filename>_<os>-<fc>_<host>.
To find these you can e.g. use something like
% cd /public/xtal/ccp4-5.0.2
% find . -name "Makefile_*_`hostname -s`" -print
To move all necessary
Makefile_<os>-<fc>_<host>s
into place for a normal compile run of the whole CCP4 suite you
can do the following (in sh/ksh/bash):
% cd $CCP4
% c=<os>-<fc>
% h=<host>
% for m in `find . -name "Makefile_${c}_${h}" -print` \
`find . -name "config.status_${c}_${h}" -print` \
`find . -name "libtool_${c}_${h}" -print` \
`find . -name "ccp4.setup-compile-*sh_${c}_${h}" -print`
do
mm=`echo $m | sed "s/_${c}_${h}//g"`
if [ ! -f ${mm} ] || [ `cmp -s $m $mm ; echo $?` -ne 0 ]; then
cp -i $m $mm
fi
done
for i in configure.in Makefile.am aclocal.m4 configure Makefile.in \
ltconfig ltmain.sh config.status
do
touch x-windows/xdl_view/src/$i && sleep 1
done
Compilation is then done using (again for sh/ksh/bash):
% cd $CCP4
% . .cv/ccp4.setup-compile-sh # for sh/ksh/bash
- or -
% source .cv/ccp4.setup-compile-csh # for csh/tcsh
% make
Some notes
- use at your own risk: if in doubt - stick with the default CCP4
distribution of binaries.
- compilation for 4.2.2 was tested on the following platforms:
- SGI/IRIX 6.5.15m, MIPSpro Compilers: Version 7.30
- HP(ex-Compaq)/Tru64 Digital UNIX V4.0E (DIGITAL Fortran 77
Driver V5.1) and
V4.0F (Compaq Fortran V5.4A),
- Intel/Linux Debian 3.0 (Woody), RedHat 7.0, RedHat 7.2,
RedHat 7.3, Debian/Woody (g77/gcc - various versions;
Lahey/Fujitsu Fortran 95 L6.10e; Intel(R)
Fortran Compiler Version 6.0-149; Portland Group compiler 3.2-4)
- I concentrated on the Fortran part of CCP4 - when using non-GNU
C compilers under Linux (e.g. Intel C or Portland Group C) you
might experience problems. The vendor C compilers on Irix and
Tru64 are fine.
- the script will try to compile and install CCP4 5.0.2 (including the
x-windows programs);
- I still have some problems with the ccp4mapwish program;
- the LAPACK/BLAS version used is the distributed one - so no
effort is made to find the latest, fastest, best optimized
version on your particular operating system;
- if compiling with a Fortran90 compiler: the resulting binaries
have NOT been thoroughly tested - so use at your own risk.
- if you compile with the Intel compilers: this can take a
long time. Especially, when using some optimization
flags. It seems to be possible to avoid this, by splitting large
Fortran source files into single subroutines/functions
(e.g. with fsplit) - but the current Makefiles do not support
this everywhere.
- The compiler flags/options used in most cases are not
necessarily fine-tuned for best performance - it's just a
starting point.
- If possible, shared libraries are used.
- If you find better or more reliable compiler flags it would be
nice if you could drop me a line.
Clemens Vonrhein,<PutHereMyLastName AT GlobalPhasing DOT com>
Last modification: 10.08.04