Index: libcfa/Makefile.in
===================================================================
--- libcfa/Makefile.in	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/Makefile.in	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -231,4 +231,5 @@
 CFACC = @CFACC@
 CFACPP = @CFACPP@
+CFADIR_HASH = @CFADIR_HASH@
 CFA_BINDIR = @CFA_BINDIR@
 CFA_INCDIR = @CFA_INCDIR@
@@ -274,4 +275,6 @@
 LIPO = @LIPO@
 LN_S = @LN_S@
+LOCAL_CC1 = @LOCAL_CC1@
+LOCAL_CFACC = @LOCAL_CFACC@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
@@ -293,4 +296,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRELUDEFLAG = @PRELUDEFLAG@
 RANLIB = @RANLIB@
 SED = @SED@
Index: libcfa/configure
===================================================================
--- libcfa/configure	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/configure	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -707,6 +707,12 @@
 CONFIG_CFLAGS
 ARCH_FLAGS
+PRELUDEFLAG
+CFADIR_HASH
+LOCAL_CC1
+LOCAL_CFACC
 CFACPP
 CFACC
+ENABLE_DISTCC_FALSE
+ENABLE_DISTCC_TRUE
 CFA_VERSION
 DRIVER_DIR
@@ -783,4 +789,5 @@
 enable_option_checking
 enable_silent_rules
+enable_distcc
 with_cfa_name
 enable_shared
@@ -1445,4 +1452,5 @@
   --enable-silent-rules   less verbose build output (undo: "make V=1")
   --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-distcc     whether or not to enable distributed compilation
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
@@ -2941,6 +2949,43 @@
 
 
-CFACC=${DRIVER_DIR}cfa
+# Check whether --enable-distcc was given.
+if test "${enable_distcc+set}" = set; then :
+  enableval=$enable_distcc; enable_distcc=$enableval
+else
+  enable_distcc=no
+fi
+
+
+echo -n "checking for distributated build... "
+if test x$enable_distcc = xno; then
+	CFACC=${DRIVER_DIR}cfa
+	PRELUDEFLAG='-in-tree'
+	echo "no"
+else
+	tools="$(readlink -m $ac_confdir/)/../tools/build"
+	config=$(basename $(readlink -f .))
+	echo "$tools/distcc_hash $config"
+	CFADIR_HASH=$($tools/distcc_hash $config)
+	CFACC="distcc ~/.cfadistcc/${CFADIR_HASH}/cfa"
+	PRELUDEFLAG='-dist-tree'
+	echo "yes (hash=${CFADIR_HASH})"
+fi
 CFACPP=${DRIVER_DIR}cfa-cpp
+LOCAL_CFACC=${DRIVER_DIR}cfa
+LOCAL_CC1=${DRIVER_DIR}cc1
+
+ if test x$enable_distcc = xyes; then
+  ENABLE_DISTCC_TRUE=
+  ENABLE_DISTCC_FALSE='#'
+else
+  ENABLE_DISTCC_TRUE='#'
+  ENABLE_DISTCC_FALSE=
+fi
+
+
+
+
+
+
 
 
@@ -16982,4 +17027,8 @@
 fi
 
+if test -z "${ENABLE_DISTCC_TRUE}" && test -z "${ENABLE_DISTCC_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_DISTCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${BUILDLIB_TRUE}" && test -z "${BUILDLIB_FALSE}"; then
   as_fn_error $? "conditional \"BUILDLIB\" was never defined.
Index: libcfa/configure.ac
===================================================================
--- libcfa/configure.ac	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/configure.ac	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -27,9 +27,35 @@
 AC_ARG_VAR(CFA_VERSION, [The long version of cfa])
 
-CFACC=${DRIVER_DIR}cfa
+AC_ARG_ENABLE(distcc,
+	[  --enable-distcc     whether or not to enable distributed compilation],
+	enable_distcc=$enableval, enable_distcc=no)
+
+echo -n "checking for distributated build... "
+if test x$enable_distcc = xno; then
+	CFACC=${DRIVER_DIR}cfa
+	PRELUDEFLAG='-in-tree'
+	echo "no"
+else
+	tools="$(readlink -m $ac_confdir/)/../tools/build"
+	config=$(basename $(readlink -f .))
+	echo "$tools/distcc_hash $config"
+	CFADIR_HASH=$($tools/distcc_hash $config)
+	CFACC="distcc ~/.cfadistcc/${CFADIR_HASH}/cfa"
+	PRELUDEFLAG='-dist-tree'
+	echo "yes (hash=${CFADIR_HASH})"
+fi
 CFACPP=${DRIVER_DIR}cfa-cpp
+LOCAL_CFACC=${DRIVER_DIR}cfa
+LOCAL_CC1=${DRIVER_DIR}cc1
+
+AM_CONDITIONAL([ENABLE_DISTCC], [test x$enable_distcc = xyes])
+
 AC_SUBST(CFACC)
 AC_SUBST(CFACPP)
+AC_SUBST(LOCAL_CFACC)
+AC_SUBST(LOCAL_CC1)
+AC_SUBST(CFADIR_HASH)
 AC_SUBST(CFA_VERSION)
+AC_SUBST(PRELUDEFLAG)
 
 #==============================================================================
Index: libcfa/prelude/Makefile.am
===================================================================
--- libcfa/prelude/Makefile.am	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/prelude/Makefile.am	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -23,5 +23,5 @@
 cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c
 
-CC = @CFACC@
+CC = @LOCAL_CFACC@
 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC @ARCH_FLAGS@ @CONFIG_CFLAGS@
 AM_CFAFLAGS = @CONFIG_CFAFLAGS@
@@ -54,5 +54,5 @@
 
 # create forward declarations for cfa builtins
-builtins.cf : builtins.c ${CC}
+builtins.cf : builtins.c @LOCAL_CFACC@
 	${AM_V_GEN}gcc ${AM_CFLAGS} -E -P ${<} -o ${@} -MD -MP -MF $(DEPDIR)/builtins.Po -D__cforall
 	${AM_V_at}sed -i 's/builtins.o/builtins.cf/g' $(DEPDIR)/builtins.Po
@@ -68,2 +68,10 @@
 MOSTLYCLEANFILES = bootloader.c builtins.cf extras.cf gcc-builtins.c gcc-builtins.cf prelude.cfa
 MAINTAINERCLEANFILES = ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
+
+if ENABLE_DISTCC
+distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+	${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@
+	@echo "Dummy file to track distribution to remote hosts" > ${@}
+
+all: all-am distribution
+endif ENABLE_DISTCC
Index: libcfa/prelude/Makefile.in
===================================================================
--- libcfa/prelude/Makefile.in	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/prelude/Makefile.in	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -167,5 +167,5 @@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-CC = @CFACC@
+CC = @LOCAL_CFACC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
@@ -174,4 +174,5 @@
 CFACC = @CFACC@
 CFACPP = @CFACPP@
+CFADIR_HASH = @CFADIR_HASH@
 CFA_BINDIR = @CFA_BINDIR@
 CFA_INCDIR = @CFA_INCDIR@
@@ -217,4 +218,6 @@
 LIPO = @LIPO@
 LN_S = @LN_S@
+LOCAL_CC1 = @LOCAL_CC1@
+LOCAL_CFACC = @LOCAL_CFACC@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
@@ -236,4 +239,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRELUDEFLAG = @PRELUDEFLAG@
 RANLIB = @RANLIB@
 SED = @SED@
@@ -555,5 +559,5 @@
 
 # create forward declarations for cfa builtins
-builtins.cf : builtins.c ${CC}
+builtins.cf : builtins.c @LOCAL_CFACC@
 	${AM_V_GEN}gcc ${AM_CFLAGS} -E -P ${<} -o ${@} -MD -MP -MF $(DEPDIR)/builtins.Po -D__cforall
 	${AM_V_at}sed -i 's/builtins.o/builtins.cf/g' $(DEPDIR)/builtins.Po
@@ -566,4 +570,10 @@
 maintainer-clean-local :
 	rm -rf $(DEPDIR)
+
+@ENABLE_DISTCC_TRUE@distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
+@ENABLE_DISTCC_TRUE@	${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@
+@ENABLE_DISTCC_TRUE@	@echo "Dummy file to track distribution to remote hosts" > ${@}
+
+@ENABLE_DISTCC_TRUE@all: all-am distribution
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/src/Makefile.am	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -32,5 +32,5 @@
 # use -no-include-stdhdr to prevent rebuild cycles
 # The built sources must not depend on the installed headers
-AM_CFAFLAGS = -quiet -in-tree -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb)  @CONFIG_CFAFLAGS@
+AM_CFAFLAGS = -quiet -cfalib @PRELUDEFLAG@ -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC @ARCH_FLAGS@ @CONFIG_CFLAGS@
 AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
@@ -64,8 +64,8 @@
 # add dependency of cfa files
 libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(libsrc))))
-$(libobjs) : @CFACC@ @CFACPP@ prelude.cfa
+$(libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
 
 thread_libobjs = $(addsuffix .lo, $(basename $(filter %.cfa,$(thread_libsrc))))
-$(thread_libobjs) : @CFACC@ @CFACPP@ prelude.cfa
+$(thread_libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
 
 
@@ -86,10 +86,10 @@
 
 
-prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @CFACC@ @CFACPP@
-	${AM_V_GEN}$(CFACOMPILE) -quiet -in-tree -XCFA -l ${<} -c -o ${@}
+prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
+	${AM_V_GEN}$(CFACOMPILE) -quiet @PRELUDEFLAG@ -XCFA -l ${<} -c -o ${@}
 
-prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @CFACC@ @CFACPP@
+prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
 	${AM_V_GEN}$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
-	$(CFACOMPILE) -quiet -in-tree -XCFA -l ${<} -c -o ${@}
+	$(CFACOMPILE) -quiet @PRELUDEFLAG@ -XCFA -l ${<} -c -o ${@}
 
 
Index: libcfa/src/Makefile.in
===================================================================
--- libcfa/src/Makefile.in	(revision fd8f88fdb617bbb82f852238caec3b0b1732bc67)
+++ libcfa/src/Makefile.in	(revision a539fc3160f56f4694967a0d08b3cb4c7696376e)
@@ -284,4 +284,5 @@
 CFACC = @CFACC@
 CFACPP = @CFACPP@
+CFADIR_HASH = @CFADIR_HASH@
 CFA_BINDIR = @CFA_BINDIR@
 CFA_INCDIR = @CFA_INCDIR@
@@ -327,4 +328,6 @@
 LIPO = @LIPO@
 LN_S = @LN_S@
+LOCAL_CC1 = @LOCAL_CC1@
+LOCAL_CFACC = @LOCAL_CFACC@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
@@ -346,4 +349,5 @@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
+PRELUDEFLAG = @PRELUDEFLAG@
 RANLIB = @RANLIB@
 SED = @SED@
@@ -441,5 +445,5 @@
 # use -no-include-stdhdr to prevent rebuild cycles
 # The built sources must not depend on the installed headers
-AM_CFAFLAGS = -quiet -in-tree -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb)  @CONFIG_CFAFLAGS@
+AM_CFAFLAGS = -quiet -cfalib @PRELUDEFLAG@ -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
 AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC @ARCH_FLAGS@ @CONFIG_CFLAGS@
 AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
@@ -937,6 +941,6 @@
 	$(LTCFACOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
 	$(am__mv) $$depbase.Tpo $$depbase.Plo
-$(libobjs) : @CFACC@ @CFACPP@ prelude.cfa
-$(thread_libobjs) : @CFACC@ @CFACPP@ prelude.cfa
+$(libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
+$(thread_libobjs) : @LOCAL_CFACC@ @CFACPP@ prelude.cfa
 
 -include $(libdeps)
@@ -944,10 +948,10 @@
 -include $(thread_libdeps)
 
-prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @CFACC@ @CFACPP@
-	${AM_V_GEN}$(CFACOMPILE) -quiet -in-tree -XCFA -l ${<} -c -o ${@}
-
-prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @CFACC@ @CFACPP@
+prelude.o : prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
+	${AM_V_GEN}$(CFACOMPILE) -quiet @PRELUDEFLAG@ -XCFA -l ${<} -c -o ${@}
+
+prelude.lo: prelude.cfa extras.cf gcc-builtins.cf builtins.cf @LOCAL_CFACC@ @CFACPP@
 	${AM_V_GEN}$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \
-	$(CFACOMPILE) -quiet -in-tree -XCFA -l ${<} -c -o ${@}
+	$(CFACOMPILE) -quiet @PRELUDEFLAG@ -XCFA -l ${<} -c -o ${@}
 
 #----------------------------------------------------------------------------------------------------------------
