Index: src/libcfa/Makefile.am
===================================================================
--- src/libcfa/Makefile.am	(revision cf97ccbe5ff1cabc0f4f2965c7fb63fd50884c42)
+++ src/libcfa/Makefile.am	(revision facc44fe4d426e63ad34bdaebce3da27ffdfc017)
@@ -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 cf97ccbe5ff1cabc0f4f2965c7fb63fd50884c42)
+++ src/libcfa/Makefile.in	(revision facc44fe4d426e63ad34bdaebce3da27ffdfc017)
@@ -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
