Index: translator/Makefile.in
===================================================================
--- translator/Makefile.in	(revision 51b734528489f81a5af985bfee9aa3b6625b9774)
+++ translator/Makefile.in	(revision 51b734528489f81a5af985bfee9aa3b6625b9774)
@@ -0,0 +1,59 @@
+# This makefile is adapted from Peter Miller's article
+# "Recursive Make Considered Harmful"
+#
+# http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html
+
+MODULES := Common Parser SynTree SymTab ResolvExpr CodeGen ControlStruct GenPoly Tuples InitTweak Designators #Try ArgTweak Explain
+TARGET := cfa-cpp
+
+all: $(TARGET)
+
+# look for include files in each of the modules
+CXX := @CXX@
+CXXFLAGS += -Wno-deprecated -Wall -g -DDEBUG_ALL -I. -I Common -MMD
+INSTALL=@INSTALL@
+
+# this is the back-end compiler, used to compile libcfa & builtins to link with user code
+BACKEND_CC := @BACKEND_CC@
+
+# uncomment the definition of this variable to enable purify
+#  (do a "purerun" first)
+#PURIFY := purify --cache-dir=$(HOME)/tmp
+
+# extra libraries if required
+LIBS :=
+
+# each module will add to this
+SRC := main.cc MakeLibCfa.cc
+
+# other things that ought to be cleaned up
+EXTRA_OUTPUT := core
+
+# include the description for each module
+include $(patsubst %,%/module.mk,$(MODULES))
+
+# determine the object files
+OBJ := $(patsubst %.cc,%.o,$(filter %.cc,$(SRC))) \
+       $(patsubst %.y,%.tab.o,$(filter %.y,$(SRC))) \
+       $(patsubst %.l,%.yy.o,$(filter %.l,$(SRC)))
+
+# include the C include dependencies
+DEPS := $(OBJ:.o=.d)
+-include $(DEPS)
+
+# link the program
+$(TARGET): $(OBJ)
+	$(PURIFY) $(CXX) -o $@ $(OBJ) $(LIBS)
+
+#installing
+install: $(TARGET)
+	$(INSTALL) -d @CFA_LIBDIR@
+	$(INSTALL) $(TARGET) @CFA_LIBDIR@
+
+# clean-up rule
+clean:
+	rm -f $(OBJ) $(DEPS) $(TARGET) tags $(EXTRA_OUTPUT)
+	find . -name "Expected*" -prune -o \( -name "*.tst" -o -name "report" \) -print | xargs rm -f
+	find . -name "core*" -print | xargs rm -f
+
+distclean: clean
