Index: GNUmakefile
===================================================================
--- GNUmakefile	(revision 579349)
+++ GNUmakefile	(working copy)
@@ -144,6 +144,9 @@
 #
 #   PRELINKFLAGS - flags passed to the prelinker
 #
+#   PURE_OPTS - if non-empty, enables building with Pruifiy and contains a 
+#               list of flags to pass to purify.
+#
 #   RUNFLAGS  - default options passed to runall.sh when running executables
 #   RUNOPTS   - additional options to pass to runall.sh (empty by default)
 #
@@ -627,6 +630,7 @@
           && echo "DEPENDDIR  = $(DEPENDDIR)"            >> $(MAKEFILE_IN)  \
           && echo "PHDIR      = $(PHDIR)"                >> $(MAKEFILE_IN)  \
           && echo "PHWARNFLAGS = $(PHWARNFLAGS)"         >> $(MAKEFILE_IN)  \
+          && echo "PURE_OPTS  = $(PURE_OPTS)"            >> $(MAKEFILE_IN)  \
           && echo "LIBSUFFIX  = $(LIBSUFFIX)"            >> $(MAKEFILE_IN)  \
           && echo "LIBBASE    = std$$""(BUILDTYPE)"      >> $(MAKEFILE_IN)  \
           && echo "LIBVER     = $(LIBVER)"               >> $(MAKEFILE_IN)  \
Index: etc/config/makefile.rules
===================================================================
--- etc/config/makefile.rules	(revision 579349)
+++ etc/config/makefile.rules	(working copy)
@@ -90,9 +90,18 @@
 %.o: %.cpp
 	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(call CXX.repo,$<) $<
 
+ifeq ($(PURE_OPTS),)
+
 %: %.o
 	$(LD) $< -o $@ $(LDFLAGS) $(LDLIBS) $(call CXX.repo,$<)
 
+else # ifeq ($(PURE_OPTS),)
+
+%: %.o
+	purify $(PURE_OPTS) $(LD) $< -o $@ $(LDFLAGS) $(LDLIBS) $(call CXX.repo,$<)
+
+endif
+
 # disable compilation and linking in the same step
 # %: %.cpp
 
