Notes on compiling azara on Linux

(Davide Salomoni, June 7, 2005)

Important disclaimer: do this at your own risk. If by following the procedure below you manage to destroy your computer, lose data, burn your house, or if in general you are not satisfied with the result, I don't accept any responsibility. You have been warned.

The azara home page is at

Please note that I don't know anything about azara, NMR, and so on. If you find these notes useful, good. If not, please seek advice from someone more knowledgeable than me.

These notes assume you have some basic knowledge of how to manage a Linux system. Everything written here has been tested on Linux Ubuntu "Hoary", freshly installed from the Ubuntu installation CD. These notes should be easily portable at least to other Debian-like systems.

To download or learn more about Ubuntu, see

First of all, make sure that the "universe" repository is uncommented in the file /etc/apt/sources.list. There should be a line like

deb hoary universe

(the URL for the repository might be different on your system.)

Make sure the apt cache is up-to-date running the following command as root:

# apt-get update

Install the following packages as root:

# apt-get install lesstif2-dev libxpm-dev
(needed for the plot1 and plot2 programs)

# apt-get install xlibmesa-gl-dev freeglut3-dev libxmu-dev
(needed for the viewer program)

Say yes if asked about installing package dependencies.

All the following operations can be done without root privileges, so from this point on there is no need to use the root account.

Download the latest azara tarball fetching it from; when I wrote these notes, the latest available version was azara 2.7.

I suggest you download the file azara-2.7-linux.tar.gz; this includes some Linux binaries, but they are probably compiled with old shared libraries that won't work on your system, so we will recompile everything from source.

You could also download just the source, but then you'd need to change the file named ENVIRONMENT to tell azara you are actually on Linux. If you download azara-2.7-linux.tar.gz, this file is ready to use. If you decide to download the source tarball instead (azara-2.7-src.tar.gz), make sure you edit the file ENVIRONMENT to look like this. The notes below assume you have downloaded azara-2.7-linux.tar.gz.

Untar with

$ tar zxf azara-2.7-linux.tar.gz

This will create the subdirectory azara-2.7. Now:

$ cd azara-2.7
$ export PATH=$PATH:.
$ make clean
$ make

This will recompile all azara programs. The final binaries are all in the bin subdirectory.

[end of notes]


The file ENVIRONMENT I used:

# this file specifies environment for makefiles and source code
# X11 and Motif stuff used in global, plot1, plot2, viewer
# XPM stuff used in plot2
# GL stuff used in viewer
# ENDIAN_FLAG used in global
# rest used in many or all makefiles

# C compiler
CC = cc

# compiler flags
#CFLAGS = -g

# linker flags
#LFLAGS = -p

# generic library
#LIB = -lmalloc

# math library
MATH_LIB = -lm

# X11 include path
X11_INCLUDE_DIR = -I/usr/X11R6/include

# MOTIF include path, if different from X11
#MOTIF_INCLUDE_DIR = -I/usr/X11R6/include

# X11 library path
X11_LIB_DIR = -L/usr/X11R6/lib

# MOTIF library path, if different from X11
#MOTIF_LIB_DIR = -L/usr/X11R6/lib

# whether XPM used (available)

# Xpm library (if used, otherwise comment out)
XPM_LIB = -lXpm
#XPM_LIB = /usr/X11R6/lib/

# X11 libraries
#X11_LIB = -lX11 -lPW
# non-SGI platforms do not need PW
X11_LIB = -lX11
# below uses shared libraries
#X11_LIB = -lX11_s -lPW

# Motif libraries
MOTIF_LIB = -lXm -lXt
# below uses shared libraries
#MOTIF_LIB = -lXm_s -lXt_s

# GL include path
GL_INCLUDE_DIR = $(X11_INCLUDE_DIR) -I/home/wb104/mesa/include

# GL library path
GL_LIB_DIR = $(X11_LIB_DIR) -L/home/wb104/mesa/lib

# GL libraries
GL_LIB = -lglut -lGLU -lGL -lXmu -lX11 -lXext

# set up ENDIAN_FLAG as required
#   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
# some examples of what you might do: