Index: configure
===================================================================
--- configure	(revision a98b2cca9704d45e2cb19838871a79c1c794fcd6)
+++ configure	(revision 3bff885e5af1caaa28df2a7dfaffbd17d19e68d4)
@@ -658,4 +658,6 @@
 CFA_INCDIR
 CFA_PREFIX
+BUILD_CONCURRENCY_FALSE
+BUILD_CONCURRENCY_TRUE
 BUILD_NO_LIB_FALSE
 BUILD_NO_LIB_TRUE
@@ -742,4 +744,5 @@
 enable_target_release
 enable_target_debug
+enable_threading
 enable_dependency_tracking
 '
@@ -1386,4 +1389,6 @@
   --enable-target-release Build and install the release target
   --enable-target-debug   Build and install the debug target
+  --enable-threading      Build and install libcfa with threading support
+                          (Enabled by default)
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
@@ -3123,4 +3128,15 @@
 fi
 
+# Check whether --enable-threading was given.
+if test "${enable_threading+set}" = set; then :
+  enableval=$enable_threading; case "${enableval}" in
+  yes) build_threading-"yes" ;;
+  no)  build_threading="no" ;;
+  *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
+esac
+else
+  build_threading="yes"
+fi
+
 
 case "$enable_target_release" in
@@ -3197,4 +3213,12 @@
   BUILD_NO_LIB_TRUE='#'
   BUILD_NO_LIB_FALSE=
+fi
+
+ if test "x$build_threading" = "xyes"; then
+  BUILD_CONCURRENCY_TRUE=
+  BUILD_CONCURRENCY_FALSE='#'
+else
+  BUILD_CONCURRENCY_TRUE='#'
+  BUILD_CONCURRENCY_FALSE=
 fi
 
@@ -6318,4 +6342,8 @@
 if test -z "${BUILD_NO_LIB_TRUE}" && test -z "${BUILD_NO_LIB_FALSE}"; then
   as_fn_error $? "conditional \"BUILD_NO_LIB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_CONCURRENCY_TRUE}" && test -z "${BUILD_CONCURRENCY_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_CONCURRENCY\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
Index: configure.ac
===================================================================
--- configure.ac	(revision a98b2cca9704d45e2cb19838871a79c1c794fcd6)
+++ configure.ac	(revision 3bff885e5af1caaa28df2a7dfaffbd17d19e68d4)
@@ -57,4 +57,10 @@
 AC_ARG_ENABLE(target-release, AS_HELP_STRING([--enable-target-release], [Build and install the release target]))
 AC_ARG_ENABLE(target-debug, AS_HELP_STRING([--enable-target-debug], [Build and install the debug target]))
+AC_ARG_ENABLE(threading, AS_HELP_STRING([--enable-threading], [Build and install libcfa with threading support (Enabled by default)]),
+[case "${enableval}" in
+  yes) build_threading-"yes" ;;
+  no)  build_threading="no" ;;
+  *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;;
+esac],[build_threading="yes"])
 
 case "$enable_target_release" in
@@ -112,4 +118,5 @@
 AM_CONDITIONAL([BUILD_DEBUG], [test "x$build_debug" = "xyes"])
 AM_CONDITIONAL([BUILD_NO_LIB], [test "x$build_release$build_debug" = "xnono"])
+AM_CONDITIONAL([BUILD_CONCURRENCY], [test "x$build_threading" = "xyes"])
 
 if test "x$prefix" = "xNONE"; then
Index: src/libcfa/Makefile.am
===================================================================
--- src/libcfa/Makefile.am	(revision a98b2cca9704d45e2cb19838871a79c1c794fcd6)
+++ src/libcfa/Makefile.am	(revision 3bff885e5af1caaa28df2a7dfaffbd17d19e68d4)
@@ -40,7 +40,18 @@
 CC = ${abs_top_srcdir}/src/driver/cfa
 
-headers = limits stdlib math iostream fstream iterator rational assert containers/vector concurrency/coroutines concurrency/threads concurrency/kernel
-runtimehdrs = concurrency
+headers = limits stdlib math iostream fstream iterator rational assert
+
+# not all platforms support concurrency, add option do disable it
+if BUILD_CONCURRENCY
+headers += containers/vector concurrency/coroutines concurrency/threads concurrency/kernel
+endif
+
 libobjs = ${headers:=.o}
+libsrc = libcfa-prelude.c ${headers:=.c}
+
+# not all platforms support concurrency, add option do disable it
+if BUILD_CONCURRENCY
+libsrc += concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+endif
 
 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing
@@ -56,5 +67,4 @@
 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
 
-libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
 
 libcfa_a_SOURCES = ${libsrc}
Index: src/libcfa/Makefile.in
===================================================================
--- src/libcfa/Makefile.in	(revision a98b2cca9704d45e2cb19838871a79c1c794fcd6)
+++ src/libcfa/Makefile.in	(revision 3bff885e5af1caaa28df2a7dfaffbd17d19e68d4)
@@ -41,7 +41,13 @@
 @BUILD_RELEASE_TRUE@am__append_1 = libcfa.a
 @BUILD_DEBUG_TRUE@am__append_2 = libcfa-d.a
+
+# not all platforms support concurrency, add option do disable it
+@BUILD_CONCURRENCY_TRUE@am__append_3 = containers/vector concurrency/coroutines concurrency/threads concurrency/kernel
+
+# not all platforms support concurrency, add option do disable it
+@BUILD_CONCURRENCY_TRUE@am__append_4 = concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
 subdir = src/libcfa
-DIST_COMMON = $(nobase_cfa_include_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(am__nobase_cfa_include_HEADERS_DIST) \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -91,33 +97,47 @@
 libcfa_d_a_AR = $(AR) $(ARFLAGS)
 libcfa_d_a_LIBADD =
+am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c limits.c stdlib.c \
+	math.c iostream.c fstream.c iterator.c rational.c assert.c \
+	containers/vector.c concurrency/coroutines.c \
+	concurrency/threads.c concurrency/kernel.c \
+	concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
 am__dirstamp = $(am__leading_dot)dirstamp
-am__objects_1 = libcfa_d_a-limits.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@am__objects_1 = containers/libcfa_d_a-vector.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_d_a-coroutines.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_d_a-threads.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_d_a-kernel.$(OBJEXT)
+am__objects_2 = libcfa_d_a-limits.$(OBJEXT) \
 	libcfa_d_a-stdlib.$(OBJEXT) libcfa_d_a-math.$(OBJEXT) \
 	libcfa_d_a-iostream.$(OBJEXT) libcfa_d_a-fstream.$(OBJEXT) \
 	libcfa_d_a-iterator.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \
-	libcfa_d_a-assert.$(OBJEXT) \
-	containers/libcfa_d_a-vector.$(OBJEXT) \
-	concurrency/libcfa_d_a-coroutines.$(OBJEXT) \
-	concurrency/libcfa_d_a-threads.$(OBJEXT) \
-	concurrency/libcfa_d_a-kernel.$(OBJEXT)
-am__objects_2 = libcfa_d_a-libcfa-prelude.$(OBJEXT) $(am__objects_1) \
-	concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \
-	concurrency/libcfa_d_a-invoke.$(OBJEXT)
-am_libcfa_d_a_OBJECTS = $(am__objects_2)
+	libcfa_d_a-assert.$(OBJEXT) $(am__objects_1)
+@BUILD_CONCURRENCY_TRUE@am__objects_3 = concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_d_a-invoke.$(OBJEXT)
+am__objects_4 = libcfa_d_a-libcfa-prelude.$(OBJEXT) $(am__objects_2) \
+	$(am__objects_3)
+am_libcfa_d_a_OBJECTS = $(am__objects_4)
 libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS)
 libcfa_a_AR = $(AR) $(ARFLAGS)
 libcfa_a_LIBADD =
-am__objects_3 = libcfa_a-limits.$(OBJEXT) libcfa_a-stdlib.$(OBJEXT) \
+am__libcfa_a_SOURCES_DIST = libcfa-prelude.c limits.c stdlib.c math.c \
+	iostream.c fstream.c iterator.c rational.c assert.c \
+	containers/vector.c concurrency/coroutines.c \
+	concurrency/threads.c concurrency/kernel.c \
+	concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+@BUILD_CONCURRENCY_TRUE@am__objects_5 =  \
+@BUILD_CONCURRENCY_TRUE@	containers/libcfa_a-vector.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_a-coroutines.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_a-threads.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_a-kernel.$(OBJEXT)
+am__objects_6 = libcfa_a-limits.$(OBJEXT) libcfa_a-stdlib.$(OBJEXT) \
 	libcfa_a-math.$(OBJEXT) libcfa_a-iostream.$(OBJEXT) \
 	libcfa_a-fstream.$(OBJEXT) libcfa_a-iterator.$(OBJEXT) \
 	libcfa_a-rational.$(OBJEXT) libcfa_a-assert.$(OBJEXT) \
-	containers/libcfa_a-vector.$(OBJEXT) \
-	concurrency/libcfa_a-coroutines.$(OBJEXT) \
-	concurrency/libcfa_a-threads.$(OBJEXT) \
-	concurrency/libcfa_a-kernel.$(OBJEXT)
-am__objects_4 = libcfa_a-libcfa-prelude.$(OBJEXT) $(am__objects_3) \
-	concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \
-	concurrency/libcfa_a-invoke.$(OBJEXT)
-am_libcfa_a_OBJECTS = $(am__objects_4)
+	$(am__objects_5)
+@BUILD_CONCURRENCY_TRUE@am__objects_7 = concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \
+@BUILD_CONCURRENCY_TRUE@	concurrency/libcfa_a-invoke.$(OBJEXT)
+am__objects_8 = libcfa_a-libcfa-prelude.$(OBJEXT) $(am__objects_6) \
+	$(am__objects_7)
+am_libcfa_a_OBJECTS = $(am__objects_8)
 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -147,5 +167,10 @@
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES)
-DIST_SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES)
+DIST_SOURCES = $(am__libcfa_d_a_SOURCES_DIST) \
+	$(am__libcfa_a_SOURCES_DIST)
+am__nobase_cfa_include_HEADERS_DIST = limits stdlib math iostream \
+	fstream iterator rational assert containers/vector \
+	concurrency/coroutines concurrency/threads concurrency/kernel \
+	${shell echo stdhdr/*} concurrency/invoke.h
 HEADERS = $(nobase_cfa_include_HEADERS)
 ETAGS = etags
@@ -276,8 +301,8 @@
 EXTRA_FLAGS = -g -Wall -Wno-unused-function -I${abs_top_srcdir}/src/libcfa/libhdr -imacros libcfa-prelude.c @CFA_FLAGS@
 AM_CCASFLAGS = @CFA_FLAGS@
-headers = limits stdlib math iostream fstream iterator rational assert containers/vector concurrency/coroutines concurrency/threads concurrency/kernel
-runtimehdrs = concurrency
+headers = limits stdlib math iostream fstream iterator rational assert \
+	$(am__append_3)
 libobjs = ${headers:=.o}
-libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+libsrc = libcfa-prelude.c ${headers:=.c} $(am__append_4)
 libcfa_a_SOURCES = ${libsrc}
 libcfa_a_CFLAGS = -nodebug -O2
