Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision fcc57ba616c7ee1746ee86717f162476cbb858e3)
+++ benchmark/Makefile.am	(revision 41cca44b5b36b35c27f252878c7488107149c20a)
@@ -33,6 +33,4 @@
 TIME_FORMAT = "%E"
 PRINT_FORMAT = %20s: #Comments needed for spacing
-
-LIBFIBRE_DIR ?= /home/tdelisle/software/KOS/src/
 
 .NOTPARALLEL:
@@ -111,5 +109,5 @@
 
 ## =========================================================================================================
-ctxswitch$(EXEEXT): \
+CTXSWITCH_DEPEND  =                 \
 	loop.run				\
 	function.run			\
@@ -121,9 +119,22 @@
 	ctxswitch-upp_coroutine.run	\
 	ctxswitch-upp_thread.run	\
-	-ctxswitch-kos_fibre.run	\
-	-ctxswitch-kos_fibre2.run	\
 	ctxswitch-goroutine.run		\
 	ctxswitch-java_thread.run
 
+if WITH_LIBFIBRE
+CTXSWITCH_DEPEND  +=           \
+	ctxswitch-kos_fibre.run	 \
+	ctxswitch-kos_fibre2.run
+
+
+ctxswitch-kos_fibre$(EXEEXT):
+	@$(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
+endif
+
+ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
+
 ctxswitch-pthread$(EXEEXT):
 	@$(COMPILE)    -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
@@ -143,10 +154,4 @@
 ctxswitch-upp_thread$(EXEEXT):
 	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
-
-ctxswitch-kos_fibre$(EXEEXT):
-	@$(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
 
 ctxswitch-goroutine$(EXEEXT):
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision fcc57ba616c7ee1746ee86717f162476cbb858e3)
+++ benchmark/Makefile.in	(revision 41cca44b5b36b35c27f252878c7488107149c20a)
@@ -93,4 +93,8 @@
 host_triplet = @host@
 noinst_PROGRAMS =
+@WITH_LIBFIBRE_TRUE@am__append_1 = \
+@WITH_LIBFIBRE_TRUE@	ctxswitch-kos_fibre.run	 \
+@WITH_LIBFIBRE_TRUE@	ctxswitch-kos_fibre2.run
+
 subdir = benchmark
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -273,4 +277,10 @@
 TIME_FORMAT = "%E"
 PRINT_FORMAT = %20s: #Comments needed for spacing
+CTXSWITCH_DEPEND = loop.run function.run fetch_add.run \
+	ctxswitch-pthread.run ctxswitch-cfa_coroutine.run \
+	ctxswitch-cfa_thread.run ctxswitch-cfa_thread2.run \
+	ctxswitch-upp_coroutine.run ctxswitch-upp_thread.run \
+	ctxswitch-goroutine.run ctxswitch-java_thread.run \
+	$(am__append_1)
 testdir = $(top_srcdir)/tests
 all: all-am
@@ -470,6 +480,4 @@
 	$(am__mv) $$depbase.Tpo $$depbase.Po
 
-LIBFIBRE_DIR ?= /home/tdelisle/software/KOS/src/
-
 .NOTPARALLEL:
 
@@ -541,18 +549,11 @@
 	$(COMPILE) -DBENCH_N=500000000  fetch_add.c
 
-ctxswitch$(EXEEXT): \
-	loop.run				\
-	function.run			\
-	fetch_add.run			\
-	ctxswitch-pthread.run		\
-	ctxswitch-cfa_coroutine.run	\
-	ctxswitch-cfa_thread.run	\
-	ctxswitch-cfa_thread2.run	\
-	ctxswitch-upp_coroutine.run	\
-	ctxswitch-upp_thread.run	\
-	-ctxswitch-kos_fibre.run	\
-	-ctxswitch-kos_fibre2.run	\
-	ctxswitch-goroutine.run		\
-	ctxswitch-java_thread.run
+@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@ctxswitch-kos_fibre2$(EXEEXT):
+@WITH_LIBFIBRE_TRUE@	@$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
+
+ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
 
 ctxswitch-pthread$(EXEEXT):
@@ -573,10 +574,4 @@
 ctxswitch-upp_thread$(EXEEXT):
 	@$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
-
-ctxswitch-kos_fibre$(EXEEXT):
-	@$(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
 
 ctxswitch-goroutine$(EXEEXT):
Index: configure
===================================================================
--- configure	(revision fcc57ba616c7ee1746ee86717f162476cbb858e3)
+++ configure	(revision 41cca44b5b36b35c27f252878c7488107149c20a)
@@ -630,4 +630,6 @@
 GREP
 CPP
+WITH_LIBFIBRE_FALSE
+WITH_LIBFIBRE_TRUE
 RANLIB
 LEXLIB
@@ -5439,4 +5441,54 @@
 
 # Checks for libraries.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fibre::yield in -lfibre" >&5
+$as_echo_n "checking for Fibre::yield in -lfibre... " >&6; }
+if ${ac_cv_lib_fibre_Fibre__yield+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lfibre  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char Fibre::yield ();
+int
+main ()
+{
+return Fibre::yield ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_fibre_Fibre__yield=yes
+else
+  ac_cv_lib_fibre_Fibre__yield=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fibre_Fibre__yield" >&5
+$as_echo "$ac_cv_lib_fibre_Fibre__yield" >&6; }
+if test "x$ac_cv_lib_fibre_Fibre__yield" = xyes; then :
+  HAVE_LIBFIBRE=1
+else
+  HAVE_LIBFIBRE=0
+fi
+
+ if test "$HAVE_LIBFIBRE" -eq 1; then
+  WITH_LIBFIBRE_TRUE=
+  WITH_LIBFIBRE_FALSE='#'
+else
+  WITH_LIBFIBRE_TRUE='#'
+  WITH_LIBFIBRE_FALSE=
+fi
+
 
 # Checks for header files.
@@ -6478,4 +6530,8 @@
 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_LIBFIBRE_TRUE}" && test -z "${WITH_LIBFIBRE_FALSE}"; then
+  as_fn_error $? "conditional \"WITH_LIBFIBRE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
Index: configure.ac
===================================================================
--- configure.ac	(revision fcc57ba616c7ee1746ee86717f162476cbb858e3)
+++ configure.ac	(revision 41cca44b5b36b35c27f252878c7488107149c20a)
@@ -204,4 +204,6 @@
 
 # Checks for libraries.
+AC_CHECK_LIB([fibre], [Fibre::yield], [HAVE_LIBFIBRE=1], [HAVE_LIBFIBRE=0])
+AM_CONDITIONAL([WITH_LIBFIBRE], [test "$HAVE_LIBFIBRE" -eq 1])
 
 # Checks for header files.
