Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 85acec947dba4af8e8cd04ac79b95cf499716c78)
+++ benchmark/Makefile.am	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -20,5 +20,5 @@
 include $(top_srcdir)/src/cfa.make
 
-UPPCOMPILE = $(UPPCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_UPPFLAGS) $(UPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CFLAGS) $(CFLAGS)
+UPPCC = u++
 
 AM_CFLAGS = -O2 -Wall -I$(srcdir) -lrt -pthread
@@ -34,8 +34,12 @@
 PRINT_FORMAT = %20s: #Comments needed for spacing
 
+#prevent any tests in parallel
 .NOTPARALLEL:
 
-noinst_PROGRAMS =
-
+#make sure automake includes the compile rules for C and C++
+EXTRA_PROGRAMS = dummy
+dummy_SOURCES = c.c cxx.cpp
+
+## =========================================================================================================
 all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
 
@@ -47,5 +51,5 @@
 	@${STATS} .result.log
 	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log
+	@rm -f a.out .result.log *.class
 
 %.runquiet :
@@ -100,11 +104,11 @@
 ## =========================================================================================================
 loop$(EXEEXT):
-	$(COMPILE) -DBENCH_N=5000000000 loop.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c
 
 function$(EXEEXT):
-	$(COMPILE) -DBENCH_N=5000000000 function.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/function.c
 
 fetch_add$(EXEEXT):
-	$(COMPILE) -DBENCH_N=500000000  fetch_add.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/fetch_add.c
 
 ## =========================================================================================================
@@ -129,8 +133,8 @@
 
 ctxswitch-kos_fibre$(EXEEXT):
-	@$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
+	$(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
 
 ctxswitch-kos_fibre2$(EXEEXT):
-	@$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
+	$(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
 endif
 
@@ -138,28 +142,28 @@
 
 ctxswitch-pthread$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
 
 ctxswitch-cfa_coroutine$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.c
 
 ctxswitch-cfa_thread$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.c
 
 ctxswitch-cfa_thread2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.c
 
 ctxswitch-upp_coroutine$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
 
 ctxswitch-upp_thread$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
 
 ctxswitch-goroutine$(EXEEXT):
-	@go build -o a.out $(srcdir)/ctxswitch/goroutine.go
+	$(AM_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
 
 ctxswitch-java_thread$(EXEEXT):
-	@javac $(srcdir)/ctxswitch/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd ctxswitch && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -177,22 +181,22 @@
 
 mutex-pthread_lock$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
 
 mutex-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
 
 mutex-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa1.c
 
 mutex-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa2.c
 
 mutex-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa4.c
 
 mutex-java_thread$(EXEEXT):
-	@javac $(srcdir)/mutex/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd mutex && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -207,22 +211,22 @@
 
 signal-pthread_cond$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=500000  $(srcdir)/schedint/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=500000  $(srcdir)/schedint/pthreads.c
 
 signal-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
 
 signal-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa1.c
 
 signal-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa2.c
 
 signal-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa4.c
 
 signal-java_thread$(EXEEXT):
-	@javac $(srcdir)/schedint/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd schedint && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -236,14 +240,14 @@
 
 waitfor-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
 
 waitfor-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.c
 
 waitfor-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.c
 
 waitfor-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.c
 
 ## =========================================================================================================
@@ -259,28 +263,28 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
 
 creation-cfa_coroutine_eager$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
 
 creation-cfa_thread$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.c
 
 creation-upp_coroutine$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
 
 creation-upp_thread$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
 
 creation-pthread$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=250000   $(srcdir)/creation/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=250000   $(srcdir)/creation/pthreads.c
 
 creation-goroutine$(EXEEXT):
-	@go build -o a.out $(srcdir)/creation/goroutine.go
+	$(AM_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
 
 creation-java_thread$(EXEEXT):
-	@javac $(srcdir)/creation/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd creation && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -301,28 +305,28 @@
 
 compile-array$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.c
 
 compile-attributes$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
 
 compile-empty$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.c
 
 compile-expression$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.c
 
 compile-io$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.c
 
 compile-monitor$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.c
 
 compile-operators$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.c
 
 compile-thread$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.c
 
 compile-typeof$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.c
-
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.c
+
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision 85acec947dba4af8e8cd04ac79b95cf499716c78)
+++ benchmark/Makefile.in	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -17,5 +17,4 @@
 ######################## -*- Mode: Makefile-Automake -*- ######################
 ###############################################################################
-
 VPATH = @srcdir@
 am__is_gnu_make = { \
@@ -92,5 +91,5 @@
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS =
+EXTRA_PROGRAMS = dummy$(EXEEXT)
 @WITH_LIBFIBRE_TRUE@am__append_1 = \
 @WITH_LIBFIBRE_TRUE@	ctxswitch-kos_fibre.run	 \
@@ -108,5 +107,7 @@
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
+am_dummy_OBJECTS = c.$(OBJEXT) cxx.$(OBJEXT)
+dummy_OBJECTS = $(am_dummy_OBJECTS)
+dummy_LDADD = $(LDADD)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -121,6 +122,35 @@
 am__v_at_0 = @
 am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/automake/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
+SOURCES = $(dummy_SOURCES)
+DIST_SOURCES = $(dummy_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -129,6 +159,24 @@
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/src/cfa.make \
-	compile
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/automake/depcomp \
+	$(top_srcdir)/src/cfa.make compile
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -269,7 +317,20 @@
 am__v_CFA_0 = @echo "  CFA     " $@;
 am__v_CFA_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 = 
+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 = 
+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 = 
 
 # applies to both programs
-UPPCOMPILE = $(UPPCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_UPPFLAGS) $(UPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_CFLAGS) $(CFLAGS)
+UPPCC = u++
 AM_CFLAGS = -O2 -Wall -I$(srcdir) -lrt -pthread
 AM_CFAFLAGS = -quiet -in-tree -nodebug
@@ -282,4 +343,5 @@
 TIME_FORMAT = "%E"
 PRINT_FORMAT = %20s: #Comments needed for spacing
+dummy_SOURCES = c.c cxx.cpp
 CTXSWITCH_DEPEND = loop.run function.run fetch_add.run \
 	ctxswitch-pthread.run ctxswitch-cfa_coroutine.run \
@@ -292,5 +354,5 @@
 
 .SUFFIXES:
-.SUFFIXES: .cfa .lo .o
+.SUFFIXES: .c .cfa .cpp .lo .o .obj
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/src/cfa.make $(am__configure_deps)
 	@for dep in $?; do \
@@ -324,12 +386,100 @@
 $(am__aclocal_m4_deps):
 
-clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
+dummy$(EXEEXT): $(dummy_OBJECTS) $(dummy_DEPENDENCIES) $(EXTRA_dummy_DEPENDENCIES) 
+	@rm -f dummy$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(dummy_OBJECTS) $(dummy_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cxx.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.o:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
@@ -365,5 +515,5 @@
 check-am: all-am
 check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile
 installdirs:
 install: install-am
@@ -399,9 +549,11 @@
 clean: clean-am
 
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-generic mostlyclean-am
 
 distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
 
 dvi: dvi-am
@@ -446,4 +598,5 @@
 
 maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -451,5 +604,5 @@
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
 
 pdf: pdf-am
@@ -465,14 +618,15 @@
 .MAKE: install-am install-strip
 
-.PHONY: all all-am check check-am clean clean-generic \
-	clean-noinstPROGRAMS cscopelist-am ctags-am distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	cscopelist-am ctags ctags-am distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am
 
@@ -490,4 +644,5 @@
 	$(am__mv) $$depbase.Tpo $$depbase.Plo
 
+#prevent any tests in parallel
 .NOTPARALLEL:
 
@@ -501,5 +656,5 @@
 	@${STATS} .result.log
 	@echo "------------------------------------------------------"
-	@rm -f a.out .result.log
+	@rm -f a.out .result.log *.class
 
 %.runquiet :
@@ -551,45 +706,45 @@
 
 loop$(EXEEXT):
-	$(COMPILE) -DBENCH_N=5000000000 loop.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c
 
 function$(EXEEXT):
-	$(COMPILE) -DBENCH_N=5000000000 function.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/function.c
 
 fetch_add$(EXEEXT):
-	$(COMPILE) -DBENCH_N=500000000  fetch_add.c
+	$(AM_V_CC)$(COMPILE) -DBENCH_N=500000000  $(srcdir)/fetch_add.c
 
 @WITH_LIBFIBRE_TRUE@ctxswitch-kos_fibre$(EXEEXT):
-@WITH_LIBFIBRE_TRUE@	@$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
+@WITH_LIBFIBRE_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
 
 @WITH_LIBFIBRE_TRUE@ctxswitch-kos_fibre2$(EXEEXT):
-@WITH_LIBFIBRE_TRUE@	@$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
+@WITH_LIBFIBRE_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
 
 ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
 
 ctxswitch-pthread$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
 
 ctxswitch-cfa_coroutine$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.c
 
 ctxswitch-cfa_thread$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.c
 
 ctxswitch-cfa_thread2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.c
 
 ctxswitch-upp_coroutine$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
 
 ctxswitch-upp_thread$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
 
 ctxswitch-goroutine$(EXEEXT):
-	@go build -o a.out $(srcdir)/ctxswitch/goroutine.go
+	$(AM_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
 
 ctxswitch-java_thread$(EXEEXT):
-	@javac $(srcdir)/ctxswitch/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd ctxswitch && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -606,22 +761,22 @@
 
 mutex-pthread_lock$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
 
 mutex-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
 
 mutex-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa1.c
 
 mutex-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa2.c
 
 mutex-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000  $(srcdir)/mutex/cfa4.c
 
 mutex-java_thread$(EXEEXT):
-	@javac $(srcdir)/mutex/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd mutex && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -635,22 +790,22 @@
 
 signal-pthread_cond$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=500000  $(srcdir)/schedint/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=500000  $(srcdir)/schedint/pthreads.c
 
 signal-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
 
 signal-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa1.c
 
 signal-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa2.c
 
 signal-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedint/cfa4.c
 
 signal-java_thread$(EXEEXT):
-	@javac $(srcdir)/schedint/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd schedint && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -662,14 +817,14 @@
 
 waitfor-upp$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
 
 waitfor-cfa1$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.c
 
 waitfor-cfa2$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.c
 
 waitfor-cfa4$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.c
 
 creation$(EXEEXT) :\
@@ -684,28 +839,28 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
 
 creation-cfa_coroutine_eager$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.c
 
 creation-cfa_thread$(EXEEXT):
-	@$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.c
+	$(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.c
 
 creation-upp_coroutine$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
 
 creation-upp_thread$(EXEEXT):
-	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
+	$(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
 
 creation-pthread$(EXEEXT):
-	@$(COMPILE)    -DBENCH_N=250000   $(srcdir)/creation/pthreads.c
+	$(AM_V_CC)$(COMPILE)    -DBENCH_N=250000   $(srcdir)/creation/pthreads.c
 
 creation-goroutine$(EXEEXT):
-	@go build -o a.out $(srcdir)/creation/goroutine.go
+	$(AM_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
 
 creation-java_thread$(EXEEXT):
-	@javac $(srcdir)/creation/JavaThread.java
+	$(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
 	@echo "#!/bin/sh" > a.out
-	@echo "cd creation && java JavaThread" >> a.out
+	@echo "java JavaThread" >> a.out
 	@chmod a+x a.out
 
@@ -721,29 +876,29 @@
 
 compile-array$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.c
 
 compile-attributes$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
 
 compile-empty$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.c
 
 compile-expression$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.c
 
 compile-io$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.c
 
 compile-monitor$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.c
 
 compile-operators$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.c
 
 compile-thread$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.c
 
 compile-typeof$(EXEEXT):
-	@$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.c
+	$(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.c
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: benchmark/c.c
===================================================================
--- benchmark/c.c	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
+++ benchmark/c.c	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -0,0 +1,1 @@
+int main() { return 0; }
Index: benchmark/cxx.cpp
===================================================================
--- benchmark/cxx.cpp	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
+++ benchmark/cxx.cpp	(revision 1b8f13f01797a50919f120102c0e347ce17daab3)
@@ -0,0 +1,1 @@
+void dummy() {}
