Azara, v2.8, copyright (C) 1993-2010 Wayne Boucher
	and Department of Biochemistry, University of Cambridge.

Installation procedure for Azara suite of programs.

email address (bugs, etc.): azara@bioc.cam.ac.uk

All the programs are written for Unix-style machines, in particular for Linux and OSX. They may compile with other compilers and run on other machines, but they may not. The processing programs have been written with ANSI-type C, and the most likely modifications would be to do with disk access. The viewing programs assume that an X terminal is being used, and have been written with Motif/X11 (but not up to any style guidelines).

The programs have been successfully compiled on Linux boxes and on Mac OS-X. The non-graphical programs have been successfully ported to Windows platforms (send an email to the address given at the top if interested).

The top-level directory mainly contains other directories. Each program has its own directory which contains (most of) its source code. If you have a pre-compiled release, so which includes executables, and these work on your machine and you are happy with the way they were compiled, then go to step (4). Otherwise compilation will need to be done. If you have a source only release then go to step (2), otherwise go to step (1).

************************************************************

Step (1) Clean up.

Remove all the previously compiled (*.o) files by typing

	make clean

in the top-level directory. Alternatively you can remove both the *.o files and all the executables by typing

	make realclean

************************************************************

Step (2) Edit ENVIRONMENT or makefiles

A file called ENVIRONMENT has been included in the top-level directory. This specifies the various compiler settings. A makefile has been set up in each directory which first includes ENVIRONMENT. This should work for most platforms but the settings specified in ENVIRONMENT can be overridden in the makefiles if required.

The variables in ENVIRONMENT (not all of which are used in each makefile), and some possible settings (use only one!), are below. If a variable is not needed it can either be set to a blank string or that line commented out.

ARCHFLAG (architecture)

	ARCHFLAG = 		(Unix)
	ARCHFLAG = -DWINDOWS	(Windows)

CC (compiler)

	CC = cc		(the standard compiler, often an alias for gcc)
	CC = gcc	(the GNU compiler)

CFLAGS (compiler flags)

	CFLAGS = -O -DDO_NOT_HAVE_MALLOC (ARCHFLAG)	(no malloc.h)
	CFLAGS = -O (ARCHFLAG)				(have malloc.h)

LFLAGS (linker flags)

	LFLAGS =	(none)
	LFLAGS = -p	(allows profiling of code)

LIB (generic libraries)

	LIB = 		(none)
	LIB = -lmalloc	(memory allocation)

MATH_LIB (math library)

	MATH_LIB = -lm

X11_INCLUDE_DIR (X11 include path)

	X11_INCLUDE_DIR =
	X11_INCLUDE_DIR = -I/usr/X11R6/include
MOTIF_INCLUDE_DIR (MOTIF include path, if different from X11)
	MOTIF_INCLUDE_DIR =
	MOTIF_INCLUDE_DIR = -I/usr/X11R6/include
X11_LIB_DIR (X11 library path)
	X11_LIB_DIR =
	X11_LIB_DIR = -L/usr/X11R6/include
MOTIF_LIB_DIR (MOTIF library path, if different from X11)
	MOTIF_LIB_DIR =
	MOTIF_LIB_DIR = -L/usr/X11R6/include
XPM_FLAG (whether XPM is available and you want to use)
	XPM_FLAG = -DUSE_XPM
	XPM_FLAG =
(used only to dump bitmaps in plot2) XPM_LIB (Xpm library, if used, if not leave blank)
	XPM_LIB = -lXpm
	XPM_LIB =

X11_LIB (X11 libraries)

	X11_LIB = -lX11 -lPW
	X11_LIB = -lX11
	X11_LIB = -lX11 -lXp -lXext
	X11_LIB = -lX11_s -lPW
(non-SGI platforms do not need PW; _s is for shared libraries) MOTIF_LIB (Motif libraries)
	MOTIF_LIB = -lXm -lXt
	MOTIF_LIB = -lXm_s -lXt_s
PYTHON_INCLUDE_DIR (Python include path)
	PYTHON_INCLUDE_DIR = /usr/include/python2.5/
SHARED_FLAGS (for Python shared library)
	SHARED_FLAGS = -shared		(for Linux)
	SHARED_FLAGS = -L/sw/lib -bundle -bundle_loader /sw/bin/python
ENDIAN_FLAG (specifies endian options)
	ENDIAN_FLAG =
	ENDIAN_FLAG = -DWRITE_ENDIAN_PAR
	ENDIAN_FLAG = -DBIG_ENDIAN_DATA
	ENDIAN_FLAG = -DLITTLE_ENDIAN_DATA
(options: WRITE_ENDIAN_PAR if want endianess written to par file BIG_ENDIAN_DATA if want data files to be big endian by default LITTLE_ENDIAN_DATA if want data files to be little endian by default FLIP_SWAP if want input data files to have swap flipped not all of these make sense in combination)

************************************************************

Step (3) Compile code.

To compile all the programs, type

	make
or
	make all

in the top-level directory.

To compile only the non-graphical non-python programs, type

	make nongui

in the top-level directory.

To compile only the graphical programs, type

	make gui

in the top-level directory.

To compile only the Python shared library, type

	make gl

in the top-level directory.

To compile only one program, go into the corresponding directory and type

	make

If all does not go well, then send an email to the address given at the top of this file, or first ask a local expert if one is at hand.

************************************************************

Step (4) Make executables usable.

When compiled, the executables live in their respective directories. Links to these have been made in the bin directory. To make these usable by you either

(i) include the bin directory on your 'path' or (ii) put links to bin or the executables in another directory or (iii) copy the executables into another directory

If you know how to do (i) or (ii) these are recommended. If more than one person is using these programs then (ii) is recommended, with the other directory being one that is already on everyone's path (e.g. maybe /usr/local/bin).

Azara help: INSTALL / W. Boucher / azara@bioc.cam.ac.uk