To build with purify, here's what I had to do on the SGI:

It turns out that everything has to have been compiled with the same
compiler -- glib, gtk, and ggobi.  That means that it's necessary to
construct a separate tree for glib and gtk that have been compiled
with cc, and build ggobi against those.

Sources are in /home/dfs/src.

Step 1: glib

CC=/usr/bin/cc ./configure --prefix=/home/dfs/cc 
make install

Step 2: gtk

export GLIB_CONFIG=/home/dfs/cc/bin/glib-config
LD_LIBRARY_PATH=/home/dfs/cc/lib:$LD_LIBRARY_PATH
LD_LIBRARYN32_PATH=/home/dfs/cc/lib:$LD_LIBRARYN32_PATH
PATH=/home/dfs/cc/bin:$PATH
export CC=/usr/bin/cc
./configure --prefix=/home/dfs/cc
make install

Step 3: ggobi

export CC=/usr/bin/cc
export GLIB_CONFIG=/home/dfs/cc/bin/glib-config
LD_LIBRARY_PATH=/home/dfs/cc/lib:/usr/common/lib:/usr/lib32:/home/dfs/ggobi/sgi
LD_LIBRARYN32_PATH=$LD_LIBRARY_PATH
PATH=/home/dfs/cc/bin:$PATH
export GTK_CONFIG=/home/dfs/cc/bin/gtk-config

Makefile:
  CC=cc
  CFLAGS
local.config
  use XML libraries compiled with cc
ggobi.h
  Look for Darwin and do what the comment says


plugin directories
  GTK_CONFIG=/home/dfs/cc/bin/gtk-config

# vanilla
pure: ggobi.o $(OB) $(EXTRA_OB)
	purify.new -cache-dir=/home/dfs/tmp -always-use-cache-dir=yes \
	-user-path=/home/dfs/ggobi/ggobi \
	$(LD) $(OB) $(EXTRA_OB) \
	$(LDFLAGS) -o ggobi \
	/home/dfs/cc/lib/libxml2.so \
	`gtk-config --libs`

# GraphLayout  w/o graphviz
LDFLAGS+=-L$(GVLIB) -ldot -lneato -lpack -ldotneato -lgraph -lpathplan
LDFLAGS+=$(GVLIB)/libgd.a
LDFLAGS+=-L$(GVLIB) -lcdt $(GVIZ_EXTLIB_LIB)
pure: ggobi.o $(OB) $(EXTRA_OB)
	purify.new -cache-dir=/home/dfs/tmp -always-use-cache-dir=yes \
	-user-path=/home/dfs/ggobi/ggobi:/home/dfs/ggobi/ggobi/plugins/GraphLayout \
	$(LD) $(OB) $(EXTRA_OB) \
	/home/dfs/ggobi/ggobi/plugins/GraphLayout/glayout.o \
	/home/dfs/ggobi/ggobi/plugins/GraphLayout/graphviz.o \
	/home/dfs/ggobi/ggobi/plugins/GraphLayout/init.o \
	/home/dfs/ggobi/ggobi/plugins/GraphLayout/radial.o \
	$(LDFLAGS) -o ggobi \
	/home/dfs/cc/lib/libxml2.so \
	`gtk-config --libs`

	#-user-path=/home/dfs/ggobi/ggobi:/home/dfs/ggobi/ggobi/plugins/mstree \
    #gg_mst.o mem-std.o mst-prim.o mstree.o pq-bin-heap.o \

# ggvis
pure: ggobi.o $(OB) $(EXTRA_OB)
	purify.new -cache-dir=/home/dfs/tmp -always-use-cache-dir=yes \
	-user-path=/home/dfs/ggobi/ggobi:/home/dfs/ggobi/ggobi/plugins/ggvis \
	$(LD) $(OB) $(EXTRA_OB) \
	/home/dfs/ggobi/ggobi/plugins/ggvis/ggvis.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/Dtarget.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/ggv_cbacks.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/init.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/mds.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/stressplot.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/histogram.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/ggv_utils.o \
	/home/dfs/ggobi/ggobi/plugins/ggvis/ggv_qsort.o \
	$(LDFLAGS) -o ggobi \
	/home/dfs/cc/lib/libxml2.so \
	`gtk-config --libs`

# VarCloud -- this should use sgi, but it doesn't yet ...
pure: ggobi.o $(OB) $(EXTRA_OB)
	purify.new -cache-dir=/home/dfs/tmp -always-use-cache-dir=yes \
	-user-path=/home/dfs/ggobi/ggobi:/home/dfs/ggobi/ggobi/plugins/ggvis \
	$(LD) $(OB) $(EXTRA_OB) \
	/home/dfs/ggobi/ggobi/plugins/VarCloud/varcloud.o \
	/home/dfs/ggobi/ggobi/plugins/VarCloud/init.o \
	/home/dfs/ggobi/ggobi/plugins/VarCloud/cbacks.o \
	$(LDFLAGS) -o ggobi \
	/home/dfs/cc/lib/libxml2.so \
	`gtk-config --libs`
