Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 74cfe0546278223b53e1c9e5a60bcecd3ab3ee1a)
+++ tests/Makefile.am	(revision 0c30ecc5ea7a75e702bd47070432649f203cad0d)
@@ -18,5 +18,5 @@
 ACLOCAL_AMFLAGS  = -I automake
 
-include $(top_srcdir)/src/cfa.make
+@CFAMAKE@
 
 DEFAULT_INCLUDES = -I${abs_srcdir}
Index: tests/Makefile.in
===================================================================
--- tests/Makefile.in	(revision 74cfe0546278223b53e1c9e5a60bcecd3ab3ee1a)
+++ tests/Makefile.in	(revision 0c30ecc5ea7a75e702bd47070432649f203cad0d)
@@ -99,5 +99,5 @@
 	$(top_srcdir)/automake/ltversion.m4 \
 	$(top_srcdir)/automake/lt~obsolete.m4 \
-	$(top_srcdir)/automake/cfa.m4 $(top_srcdir)/configure.ac
+	$(top_srcdir)/tools/build/cfa.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
@@ -114,9 +114,5 @@
 am__v_lt_0 = --silent
 am__v_lt_1 = 
-am__dirstamp = $(am__leading_dot)dirstamp
-am_avl_test_OBJECTS = avltree/avl_test.$(OBJEXT) \
-	avltree/avl0.$(OBJEXT) avltree/avl1.$(OBJEXT) \
-	avltree/avl2.$(OBJEXT) avltree/avl3.$(OBJEXT) \
-	avltree/avl4.$(OBJEXT) avltree/avl-private.$(OBJEXT)
+am_avl_test_OBJECTS =
 avl_test_OBJECTS = $(am_avl_test_OBJECTS)
 avl_test_LDADD = $(LDADD)
@@ -199,6 +195,5 @@
 CTAGS = ctags
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.py.in \
-	$(srcdir)/test.py $(top_srcdir)/automake/depcomp \
-	$(top_srcdir)/src/cfa.make
+	$(srcdir)/test.py $(top_srcdir)/automake/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -221,4 +216,5 @@
 CFACC_INSTALL = @CFACC_INSTALL@
 CFACPP = @CFACPP@
+CFAMAKE = @CFAMAKE@
 CFA_BACKEND_CC = @CFA_BACKEND_CC@
 CFA_BINDIR = @CFA_BINDIR@
@@ -354,43 +350,4 @@
 AUTOMAKE_OPTIONS = foreign    # do not require all the GNU file names
 ACLOCAL_AMFLAGS = -I automake
-AM_T_CFA = $(am__t_CFA_@AM_T@)
-am__t_CFA_ = 
-am__t_CFA_0 = 
-am__t_CFA_1 = /usr/bin/time --quiet -f "$@ %E" # trailling space is necessary
-CFACOMPILE = $(AM_T_CFA)$(CFACC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CFAFLAGS) $(CFAFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCFACOMPILE = $(AM_T_CFA)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CFACC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CFAFLAGS) $(AM_CFLAGS) $(CFAFLAGS) $(CFLAGS)
-
-AM_V_CFA = $(am__v_CFA_@AM_V@)
-am__v_CFA_ = $(am__v_CFA_@AM_DEFAULT_V@)
-am__v_CFA_0 = @echo "  CFA     " $@;
-am__v_CFA_1 = 
-UPPCC = u++
-UPPCOMPILE = $(UPPCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_UPPFLAGS) $(UPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_UPP = $(am__v_UPP_@AM_V@)
-am__v_UPP_ = $(am__v_UPP_@AM_DEFAULT_V@)
-am__v_UPP_0 = @echo "  UPP     " $@;
-am__v_UPP_1 = 
-AM_V_GOC = $(am__v_GOC_@AM_V@)
-am__v_GOC_ = $(am__v_GOC_@AM_DEFAULT_V@)
-am__v_GOC_0 = @echo "  GOC     " $@;
-am__v_GOC_1 = 
-AM_V_PY = $(am__v_PY_@AM_V@)
-am__v_PY_ = $(am__v_PY_@AM_DEFAULT_V@)
-am__v_PY_0 = @echo "  PYTHON  " $@;
-am__v_PY_1 = 
-AM_V_RUST = $(am__v_RUST_@AM_V@)
-am__v_RUST_ = $(am__v_RUST_@AM_DEFAULT_V@)
-am__v_RUST_0 = @echo "  RUST    " $@;
-am__v_RUST_1 = 
-AM_V_NODEJS = $(am__v_NODEJS_@AM_V@)
-am__v_NODEJS_ = $(am__v_NODEJS_@AM_DEFAULT_V@)
-am__v_NODEJS_0 = @echo "  NODEJS  " $@;
-am__v_NODEJS_1 = 
-AM_V_JAVAC = $(am__v_JAVAC_@AM_V@)
-am__v_JAVAC_ = $(am__v_JAVAC_@AM_DEFAULT_V@)
-am__v_JAVAC_0 = @echo "  JAVAC   " $@;
-am__v_JAVAC_1 = 
 DEFAULT_INCLUDES = -I${abs_srcdir}
 debug = yes
@@ -448,5 +405,5 @@
 .SUFFIXES:
 .SUFFIXES: .c .cfa .cpp .dummy_hack .dummy_hackxx .lo .o .obj .validate
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/src/cfa.make $(am__configure_deps)
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -468,5 +425,4 @@
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/src/cfa.make $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -484,24 +440,4 @@
 	@rm -f .dummy_hack$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(_dummy_hack_OBJECTS) $(_dummy_hack_LDADD) $(LIBS)
-avltree/$(am__dirstamp):
-	@$(MKDIR_P) avltree
-	@: > avltree/$(am__dirstamp)
-avltree/$(DEPDIR)/$(am__dirstamp):
-	@$(MKDIR_P) avltree/$(DEPDIR)
-	@: > avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl_test.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl0.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl1.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl2.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl3.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl4.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
-avltree/avl-private.$(OBJEXT): avltree/$(am__dirstamp) \
-	avltree/$(DEPDIR)/$(am__dirstamp)
 
 avl_test$(EXEEXT): $(avl_test_OBJECTS) $(avl_test_DEPENDENCIES) $(EXTRA_avl_test_DEPENDENCIES) 
@@ -511,5 +447,4 @@
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
-	-rm -f avltree/*.$(OBJEXT)
 
 distclean-compile:
@@ -685,6 +620,4 @@
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-rm -f avltree/$(DEPDIR)/$(am__dirstamp)
-	-rm -f avltree/$(am__dirstamp)
 
 maintainer-clean-generic:
@@ -780,13 +713,5 @@
 
 
-.cfa.o:
-	$(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-	$(CFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-	$(am__mv) $$depbase.Tpo $$depbase.Po
-
-.cfa.lo:
-	$(AM_V_CFA)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-	$(LTCFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@CFAMAKE@
 
 .PHONY: list .validate
