Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision ce9f9d49a2f8e613169e8a0385563024beea05b3)
+++ benchmark/Makefile.am	(revision 637240f4f4e37fbc01bcf3eaa02768282ca19461)
@@ -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
@@ -612,5 +612,54 @@
 ## =========================================================================================================
 
-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
-	cd $(builddir) && cargo build --release
-	cp $(builddir)/target/release/$(basename $@) $@
+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-transfer-tokio \
+	rdq-transfer-go \
+	rdq-transfer-fibre
+
+rdq-benches:
+	+make $(RDQBENCHES)
+
+clean-rdq-benches:
+	rm -rf $(RDQBENCHES) $(builddir)/target go.mod
+
+rdq-%-tokio$(EXEEXT): $(builddir)/target/release/rdq-%-tokio$(EXEEXT)
+	$(BENCH_V_RUSTC)cp $(builddir)/target/release/$(basename $@) $@
+
+$(builddir)/target/release/rdq-%-tokio$(EXEEXT): $(srcdir)/readyQ/%.rs $(srcdir)/bench.rs
+	$(BENCH_V_RUSTC)cd $(builddir) && cargo build --release
+
+rdq-%-cfa$(EXEEXT): $(srcdir)/readyQ/%.cfa $(srcdir)/readyQ/rq_bench.hfa
+	$(BENCH_V_CFA)$(CFACOMPILE) $< -o $@
+
+go.mod:
+	touch $@
+	go mod edit -module=rdq.bench
+	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 -std=c++17 $(AM_CFLAGS)
+
+# ## =========================================================================================================
+
+CLEANFILES = $(RDQBENCHES) go.mod go.sum
+
+clean-local:
+	-rm -rf target
