
Appendices:
Also:
Installation of CCP4 Interface.
Disk Space
To uncompress the standard distribution requires ~235Mbytes
(~50Mbytes for the compressed archive file plus ~180Mbytes for the
unpacked source code).
Disk requirements for the fully built and installed suite depends
on your system and particularly if you use shared libraries. An IRIX6.5
system with shared libraries and X-windows software requires ~350Mbytes
(after running make and make install),
though this can be reduced to around 250Mbytes after installation by
performing make realclean (see "Reducing
Disk Space Requirements for Executables").
The size of the installation may increase significantly if the build
is configured to build any optional packages (see below). For example,
building the Clipper and FFTW packages requires ~450Mbytes for installation
(which reduces to ~320Mbytes after make realclean).
A minumum cut-down version of the suite (consisting of the compressed
tarred files for ccp4-main, lib, include, doc, src and etc) will require
~100Mbytes to unpack the distribution.
Some programs use a lot of temporary scratch space to execute - you will need 10s of MBytes free in the directory pointed at by the environment variable $CCP4_SCR, see Scratch Directories.
Other dependenciesIf you are installing on a Unix or Linux system: then decide where you want to put the software, for example this might be /usr/local (following usual Unix convention) - this directory is later referred to by the environment variable $CCP4_MASTER.
FTP the compressed tar file ccp4-5.0.tar.gz to this directory (or see Alternative Compression Formats)
Uncompress the gzipped file :
> gzip -dc ccp4-5.0.tar.gz | tar xvf -
This will create a new ccp4-5.0 directory, in turn containing about ten new directories (see Directory Structure for details).
Precompiled binaries of the program executables are available for a number of Unix and Linux-based platforms. If using these precompiled executables it is necessary to download and uncompress the appropriate additional archive file, see the section on Installing Pre-Built CCP4 for further details.
If you are installing under Microsoft Windows: FTP the self-extracting exe file ccp4win5.0.exe and follow the instructions in Installing CCP4 on Microsoft Windows.
The setup file is sourced by users (typically from their .cshrc file) to create the environment to run CCP4 programs. You will need to customise this file for your site.
| > cd ccp4-5.0/include | ||
| > cp ccp4.setup-dist ccp4.setup | (to make two copies of the file - one is left unchanged for reference). |
Edit ccp4.setup following the instructions in the comments - the minimum
that you will need to do is:
Source this file - the setting of the environment variables is necessary for the rest of the installation:
> source ccp4.setup
NB if you are using the bash shell (which is common on some Linux systems) then you will need to create your ccp4.setup file from the $CCP4/include/ccp4.setup-bash file instead (the rest of the instructions above still apply).
If you are unsure whether you are using bash then use the following command:
> echo $SHELL
which will return something like /bin/bash.
Make sure that you are in the top CCP4 directory and look at a listing of currently supported systems using the configure help option (see Configure Systems for more information - essential if you have multiple operating systems). Then start the configure process proper:
> cd $CCP4
> ./configure help
> ./configure system options
where the system is one of those listed by configure help, and must be supplied. There are options for setting non-default directories, for controlling whether or not certain parts of the Suite are built, and for overcoming possible problems. The options that you are most likely use are --with-shared-libs and --with-x. See Configure Options for details and a full list of options.
If you are running configure for the first time then before the configuration starts a copy of the current CCP4 licensing conditions will be displayed and you will be asked whether you agree to them. For academic/non-profit users of the software, you should return a completed and signed copy of the licence, if this has not already been done.
Copies of the academic licence agreement can be found in various formats in the $CCP4 directory:
To agree to the licence conditions and continue with the configuration, enter "y" at the prompt.
When the configuration is complete be sure that you are in the $CCP4 directory and then run make (to build the executables) and make install to move executables from the src to the bin directory (unless an alternative target directory was specified with the configure --bindir option).
A reminder for a few people using the configure --bindir option: if you intend to reuse the same executables directory as for a previous CCP4 installation then remove the installed executables with make uninstall.
| > cd $CCP4 | |
| > make | (or make > make.log to keep a log file) |
| > make install | (or make install >> make.log to append to the log file) |
It is generally unnecessary but if you want to test the suite before installation look at Testing.
You can save disk space by removing many files which have been moved elsewhere:
> make realclean
or, rather than completely deleting files you can leave dummy copies of the executables so that if the sources get updated, make will only rebuild the relevant ones:
> make clean empty-targets
If you have problems see Problems.
Pre-compiled binary versions of the programs are available for some platforms. It is still necessary to obtain the source code distribution, which contains various data files required by the programs at run-time, and to edit and source the setup file, see above. The set-up script BINARY.setup must also be run to complete the installation.
The procedure for platforms other than Mac OS-X and Microsoft Windows is as follows:
The $CEXAM/unix/runnable/run-all script can be run to test the installation, see Testing the Suite.
For Mac OS-X the complete binary installation can be performed by downloading and running the ccp4-5.0_MacOSX.1.dmg.gz, and then following the steps as per a standard Mac OS-X package installation. For Microsoft Windows, see the section on Installing CCP4 on Microsoft Windows.
A version of the CCP4 suite is available which will run under a number of different Microsoft Windows versions: Windows ME, Windows 95/98, Windows NT V4.0, Windows 2000, and Windows XP. The installation procedure is different from the Unix/Linux platforms but is straightforward:
More detailed information is available from the CCP4 on Microsoft Windows webpage.
a) Let us know or we are liable to stop distributing alternatives.
b) FTP the ccp4-all.tar.Z file and uncompress:
> zcat ccp4-all.tar.gz | tar xf -
Large programs are written in several separate source files and so will be made up from several object files. Programs also require some standard 'libraries' of commonly used utilities - these are similar to object file and have file names like foo.a. There are some 'system' libraries which are a standard part of the operating system of your computer and some CCP4 libraries such as mtzlib and symlib which provide utilities to handle MTZ files and symmetry which are used by many programs. The CCP4 libraries also start out as source code in $CCP4/lib/src and need compiling too. The next stage after compiling is linking (this is still done by the 'compiler') which is pulling together all the object files and libraries needed for the program to work and creating the 'executable' file (usually just called foo).
There is an alternative approach to linking programs with the libraries and that is using 'shared libraries'. Linking programs to the default archive library foo.a involves including the necessary library routines in the program executable. Over the suite, therefore, the same code is included many times, and a lot of extra disk space is used. In contrast, when a program is linked to a shared library foo.so (created from foo.a by the link editor ld) only a reference to the library routine is included - it is not actually loaded until runtime. This means that the program executable takes up less disk space, but also that the program must be able to find the library routine at runtime. For this to work requires that the environment variable LD_LIBRARY_PATH is set correctly. This variable is a list of the directories that should be searched to find shared object libraries; it may include the names of several 'system' libraries or libraries for non-CCP4 programs but should also include $CCP4/lib.
The process of compiling and linking a complex system such as the CCP4 Suite is best done by a utility called make which interprets the instructions in a makefile. The great usefulness of make is that the system 'understands' the dependencies between the various levels of the programming system so that, for example, if you change one file which is used to build many different programs than the make procedure 'knows' to recompile and relink all the programs that are affected by the change. The make procedure will also control other necessary functions such as installing the software (which is basically moving files from where they are first built to where you want them to be used) or any configuring of data or documentation files. It will also clean up by deleting intermediate files.
It is usual in a complex program system to have several makefiles, one in each directory, always called Makefile. Within CCP4 there are separate Makefiles in several directories. There is a master Makefile in the $CCP4 directory which 'calls' all the other makefiles and so to run the make should only require typing the command make in the $CCP4 directory - this command will, by default, use the file called Makefile. The make utility can be got to perform some of its other functions by commands such as make install or make clean.
There is one more important part of the process, configure. The differences in operating systems and user requirements means it is impossible to write a makefile which would work for everybody. The way round this is to edit the makefile before it is run to customise it for your system. This process is done by a script called configure (which is in $CCP4 directory) which converts a standard initial file, Makefile.in, into a customised Makefile for your system. The configure process will do a lot of automatic checks on your system (do you have compilers? what system libraries are present?) and has a large number of options for you to set your own requirements.
So the minimal instructions you will actually need to type for a standard Unix installation are the trilogy:
> configure
> make
> make install
(but see Building the Suite on Unix/Linux before
trying it on CCP4!).
When running configure it is necessary to specify the system that you are installing on. The following systems are supported:
| irix | SGI IRIX operating system (standard 32-bit ABI) |
| irix64 | SGI IRIX operating system (64-bit ABI) |
| sunos | Solaris SunOS operating system |
| sunos64 | Solaris SunOS operating system, 64-bit version |
| aix | AIX operating system for IBM |
| hpux | Hewlett-Packard HP-UX operating system |
| osf1 | DEC/Compaq OSF1 or Tru64 operating system |
| linux | Linux operating system with GNU compilers |
| linux_compaq_compilers | Linux operating system using Compaq compilers |
| linux_intel_compilers | Linux operating system using Intel compilers |
| Darwin | Mac OS-X operating system |
| ia64_linux_ecc | Itanium Linux using Intel compilers |
| freebsd | FreeBSD operating system for x86 compatible, AMD64, DEC Alpha, IA-64, PC-98 and UltraSPARC® architectures |
If your system does not appear on the list of supported systems for configure then use generic.
--<flag>=<value>
where <flag> may be abbreviated uniquely and = may be replaced by whitespace. The currently-implemented flags of this form are are:
Other common options are controlled by flags of the form --with-feature:
Other options are:
configure currently assumes that the shareable (plain-text) library files remain in $CCP4/lib/data rather than being installed elsewhere.
If the build is not done in $CCP4, configure creates src and lib directories mirroring those in $CCP4 and does the compilations there.
Configure examines the environment variables necessary for running the suite as defined by ccp4.setup and tries to check them as far as reasonable, but these are not actually used in the build process. There are a number of configuration parameters that you don't usually want to change, but whose defaults can be over-ridden by the values of environment variables when configure is run:
There are corresponding Makefile variables that you can override, e.g.:
make FOPTIM=-g
Suppose you support several types of system and share the CCP4 source and system-independent data files across a network with a distributed file system such as NFS, AFS or RFS. Then it may be convenient to have a subdirectory in $CCP4 for each system in which to build and, possibly, in which to keep the resulting binaries. Directories for binaries can be anywhere, though.
To build X-windows programs you must use the configure --with-x option and you must ensure that the programs have access to the resources' relevant application defaults files. This is installation specific - there is an example for Unix users in ccp4.setup.
Increasing the optimisation level of the compiler might make the executables bigger or smaller. However, under agressive optimisation the programs may not work at all. To do this see either Configure Options for ways to change the configuration parameters or use parameters to make , (for example make FOPTIM=-O ).
Using shared libraries will definitely make executables smaller
- use the configure argument --with-shared-libs to build a
shared version of the CCP4 library to link against. You must make sure
you have the correct setup, with LD_LIBRARY_PATH defined, to find the shared
CCP4 library at runtime. Beware, using shared libraries has caused
problems in the past when upgrading the operating system or moving executables.
All systems supporting the dlopen mechanism
should be able to use shared libraries.
In extremis you can probably save some space by removing all debugging information from the executables using the strip program or installing using install -s (see Unix man pages for strip or install). This will prevent diagnosing some problems, though.
> set path=($CCP4/src:$path)
You will find two example datasets in $CCP4/examples/toxd and $CCP4/examples/rnase, and some runnable scripts in $CCP4/examples/unix/runnable. The script $CCP4/examples/unix/runnable/run-all can also be used to automatically run the example scripts in sequence and report any failures.
In addition a set of htmlised CCP4i-based tutorials are available in $CCP4/examples/tutortial. These tutorials cover various aspects of the structure determination process using the CCP4 programs, including Data Processing, MIR and MAD phasing, Molecular Replacement and Refinement.
First check our problem page (http://www.ccp4.ac.uk/problems.html)
If there is no reported fix then please try to solve the problem - if you suspect it relates to the library try building the library and running the test program for it with make testlib. If the problem is in building some of the programs (make fails on the srcdir target, having done the libdir target successfully) you can build as much as possible using:
| > cd $CCP4 | ||
| > make -i | ||
| > cd $CCP4/src | (or cd $CCP4/unsupported/src) | |
| > make instsome | (This will install the executables which are built and ignore what is missing) |
Finally if you can not solve the problem contact CCP4 (ccp4@ccp4.ac.uk).
If you find a solution please let CCP4 know; sending patches (made with
diff -c) is very helpful. If you successfully use a
configure option which reports itself as `untested' or `not properly tested'
please let CCP4 know.
setenv CCP4_SCR /scratch
setenv BINSORT_SCR /scratch
Alternatively users can just use the subdirectory in their $HOME area so:
setenv CCP4_SCR $HOME/temporary
setenv BINSORT_SCR $HOME/temporary
Note that the user interface, CCP4i, also has the idea of a TEMPORARY
directory which by default is the same as CCP4_SCR but this may need modifying
for some setups.
To rebuild individual programs - put the new source code in $CCP4/src
> cd $CCP4/src
> make foo
Alternatively if you used make empty-targets when you did the original installation then a simple make will just rebuild the necessary. When you have installed the changes to your satisfaction remove the .orig files left behind by patch.
> make clean
Patch releases are made available in a number of ways:
If downloading the suite for the first time it is best to take the most recent available version. Otherwise, the source code patch file can be applied to a previously installed copy of the suite as follows:
| > cp patchfile $CCP4 | (Move the patch file to the top CCP4 directory) |
| > cd $CCP4 | |
| > patch -p1 -N -i patchfile >& patch.log | (Apply the patch to the source code using the patch program, and save the output to a log file) |
If you wish to rebuild any updated libraries and programs then you further need to:
| > ./config.status | (Rerun configure with the original settings to regenerate Makefiles) |
| > make [install] | (Rebuild [and install] any updated programs) |
Finally, patch generates files with the extension .orig (one .orig file for each patched file). These files can be removed by running make clean afterwards.
If using the precompiled binaries you can simply download the latest executables as outlined in the section on Installing Pre-Built CCP4. (Please note that it is still a good idea to apply the source code patch in this case, as this will address bugs in the uncompiled elements of the suite, such as CCP4i and the documentation.)
Finally, we recommend that you read the notes below before applying patches for the first time, and to report any problems with the procedure to CCP4 (ccp4@ccp4.ac.uk).
If it is necessary or desirable to undo the installation and start again from scratch (for example you wish to run the configuration with different options) then the following prescription should restore the original distribution:
| > cd $CCP4 | ||
| > make uninstall | (Delete all the installed files, e.g. libraries in $CCP4_LIB and binaries in $CBIN) | |
| > make distclean | (Delete all the files created in configuring and building the suite, including the Makefiles) |
It will then be necessary to re-run configure etc as if starting from scratch.
This procedure should also work for individual sections of the suite, for
example if you want to uninstall and remake the libraries then cd $CLIBS
instead before executing make uninstall and make distclean.
Completed licence agreements and requests for commercial software licences should be mailed or faxed to:
The Secretary to CCP4 | Telephone: (+44) 1925 603929 (direct line) |
| Facsimile: (+44) 1925 603825 | |
| e-mail: ccp4@ccp4.ac.uk |
Technical queries including reports of problems with downloading, installing or running the software should in the first instance be sent to us by e-mail at ccp4@ccp4.ac.uk.