Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision 2c7d0e83c824f1dc542abb7b2e415aacc33341d2)
+++ benchmark/Makefile.am	(revision dd1cc02b5538c4de4c07747b3ff0e3fb315ffedb)
@@ -21,5 +21,5 @@
 include $(top_srcdir)/tools/build/cfa.make
 
-AM_CFLAGS = -O2 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
+AM_CFLAGS = -O3 -Wall -Wextra -I$(srcdir) -lrt -pthread # -Werror
 AM_CFAFLAGS = -quiet -nodebug
 AM_UPPFLAGS = -quiet -nodebug -multi -std=c++14
@@ -524,5 +524,49 @@
 ## =========================================================================================================
 
-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
+RDQBENCHES = \
+	rdq-cycle-cfa \
+	rdq-cycle-tokio \
+	rdq-cycle-go \
+	rdq-cycle-fibre \
+	rdq-yield-cfa \
+	rdq-yield-tokio \
+	rdq-yield-go \
+	rdq-yield-fibre \
+	rdq-locality-cfa \
+	rdq-locality-tokio \
+	rdq-locality-go \
+	rdq-locality-fibre \
+	rdq-transfer-cfa
+
+rdq-benches:
+	+make $(RDQBENCHES)
+
+clean-rdq-benches:
+	rm -rf $(RDQBENCHES)
+
+rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
 	cd $(builddir) && cargo build --release
 	cp $(builddir)/target/release/$(basename $@) $@
+
+rdq-%-cfa$(EXEEXT): $(srcdir)/readyQ/%.cfa $(srcdir)/readyQ/rq_bench.hfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $< -o $@
+
+go.mod:
+	touch $@
+	go mod edit -module=rdqbench
+	go get golang.org/x/sync/semaphore
+	go get golang.org/x/text/language
+	go get golang.org/x/text/message
+
+rdq-%-go$(EXEEXT): $(srcdir)/readyQ/%.go $(srcdir)/readyQ/bench.go go.mod
+	$(BENCH_V_GOC)go build -o $@ $< $(srcdir)/readyQ/bench.go
+
+rdq-%-fibre$(EXEEXT): $(srcdir)/readyQ/%.cpp
+	$(BENCH_V_CXX)$(CXXCOMPILE) $< -o $@ -lfibre $(AM_CFLAGS)
+
+# ## =========================================================================================================
+
+CLEANFILES = $(RDQBENCHES) go.mod go.sum
+
+clean-local:
+	-rm -rf target
