Index: src/driver/Makefile.am
===================================================================
--- src/driver/Makefile.am	(revision 58dd019a052f07152d413d2f67f0b5337b50f417)
+++ src/driver/Makefile.am	(revision 04c8bbad1be80d4847100f8e88715fd81fd8a3fa)
@@ -17,4 +17,14 @@
 # applies to both programs
 AM_CXXFLAGS = -Wall -O2
+if BUILD_NO_LIB
+else
+AM_CXXFLAGS += -DHAVE_LIBCFA
+endif
+if BUILD_DEBUG
+AM_CXXFLAGS += -DHAVE_LIBCFA_DEBUG
+endif
+if BUILD_RELEASE
+AM_CXXFLAGS += -DHAVE_LIBCFA_RELEASE
+endif
 
 bin_PROGRAMS = cfa
Index: src/driver/Makefile.in
===================================================================
--- src/driver/Makefile.in	(revision 58dd019a052f07152d413d2f67f0b5337b50f417)
+++ src/driver/Makefile.in	(revision 04c8bbad1be80d4847100f8e88715fd81fd8a3fa)
@@ -38,4 +38,7 @@
 build_triplet = @build@
 host_triplet = @host@
+@BUILD_NO_LIB_FALSE@am__append_1 = -DHAVE_LIBCFA
+@BUILD_DEBUG_TRUE@am__append_2 = -DHAVE_LIBCFA_DEBUG
+@BUILD_RELEASE_TRUE@am__append_3 = -DHAVE_LIBCFA_RELEASE
 bin_PROGRAMS = cfa$(EXEEXT)
 cc1lib_PROGRAMS = cc1$(EXEEXT)
@@ -204,5 +207,6 @@
 
 # applies to both programs
-AM_CXXFLAGS = -Wall -O2
+AM_CXXFLAGS = -Wall -O2 $(am__append_1) $(am__append_2) \
+	$(am__append_3)
 cfa_SOURCES = cfa.cc
 
Index: src/driver/cfa.cc
===================================================================
--- src/driver/cfa.cc	(revision 58dd019a052f07152d413d2f67f0b5337b50f417)
+++ src/driver/cfa.cc	(revision 04c8bbad1be80d4847100f8e88715fd81fd8a3fa)
@@ -231,11 +231,5 @@
 	} // if
 
-	string d;
-	if ( debug ) {
-		d = "-d";
-	} // if
-
 	// add the CFA include-library paths, which allow direct access to header files without directory qualification
-
 	args[nargs] = "-I" CFA_INCDIR;
 	nargs += 1;
@@ -249,11 +243,30 @@
 	nargs += 1;
 
+#ifdef HAVE_LIBCFA
 	if ( link ) {
+		#if ! defined(HAVE_LIBCFA_RELEASE)
+			if( !debug ) { 
+				cerr << "error: Option -nodebug is not available, libcfa was not installed." << endl;
+				exit( EXIT_FAILURE );
+				}
+		#endif
+		#if ! defined(HAVE_LIBCFA_DEBUG)
+			if( debug ) { 
+				cerr << "error: Option -debug is not available, libcfa-d was not installed." << endl;
+				exit( EXIT_FAILURE );
+				}
+		#endif
+
 		// include the cfa library in case it's needed
 		args[nargs] = "-L" CFA_LIBDIR;
 		nargs += 1;
-		args[nargs] = "-lcfa";
-		nargs += 1;
-	} // if
+		if( debug ) {
+			args[nargs] = "-lcfa-d";
+		} else {
+			args[nargs] = "-lcfa";
+		}
+		nargs += 1;
+	} // if
+#endif //HAVE_LIBCFA
 
 	// add the correct set of flags based on the type of compile this is
Index: src/libcfa/Makefile.am
===================================================================
--- src/libcfa/Makefile.am	(revision 58dd019a052f07152d413d2f67f0b5337b50f417)
+++ src/libcfa/Makefile.am	(revision 04c8bbad1be80d4847100f8e88715fd81fd8a3fa)
@@ -18,5 +18,13 @@
 AUTOMAKE_OPTIONS = subdir-objects
 
-lib_LIBRARIES = libcfa.a
+lib_LIBRARIES =
+
+if BUILD_RELEASE
+lib_LIBRARIES += libcfa.a
+endif
+
+if BUILD_DEBUG
+lib_LIBRARIES += libcfa-d.a
+endif
 
 # put into lib for now
@@ -78,5 +86,9 @@
 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator
 
-libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+
+libcfa_a_SOURCES = ${libsrc}
+
+libcfa_d_a_SOURCES = ${libsrc}
 
 stdhdr = ${shell echo stdhdr/*}
Index: src/libcfa/Makefile.in
===================================================================
--- src/libcfa/Makefile.in	(revision 58dd019a052f07152d413d2f67f0b5337b50f417)
+++ src/libcfa/Makefile.in	(revision 04c8bbad1be80d4847100f8e88715fd81fd8a3fa)
@@ -40,4 +40,6 @@
 build_triplet = @build@
 host_triplet = @host@
+@BUILD_RELEASE_TRUE@am__append_1 = libcfa.a
+@BUILD_DEBUG_TRUE@am__append_2 = libcfa-d.a
 subdir = src/libcfa
 DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \
@@ -89,6 +91,6 @@
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
-libcfa_a_AR = $(AR) $(ARFLAGS)
-libcfa_a_LIBADD =
+libcfa_d_a_AR = $(AR) $(ARFLAGS)
+libcfa_d_a_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) math.$(OBJEXT) \
@@ -96,7 +98,12 @@
 	rational.$(OBJEXT) assert.$(OBJEXT) \
 	containers/vector.$(OBJEXT) concurrency/threads.$(OBJEXT)
-am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1) \
+am__objects_2 = libcfa-prelude.$(OBJEXT) $(am__objects_1) \
 	concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \
 	concurrency/invoke.$(OBJEXT)
+am_libcfa_d_a_OBJECTS = $(am__objects_2)
+libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS)
+libcfa_a_AR = $(AR) $(ARFLAGS)
+libcfa_a_LIBADD =
+am_libcfa_a_OBJECTS = $(am__objects_2)
 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -122,6 +129,6 @@
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libcfa_a_SOURCES)
-DIST_SOURCES = $(libcfa_a_SOURCES)
+SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES)
+DIST_SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES)
 DATA = $(cfalib_DATA)
 HEADERS = $(nobase_include_HEADERS)
@@ -250,5 +257,5 @@
 # create object files in directory with source files
 AUTOMAKE_OPTIONS = subdir-objects
-lib_LIBRARIES = libcfa.a
+lib_LIBRARIES = $(am__append_1) $(am__append_2)
 
 # put into lib for now
@@ -268,5 +275,7 @@
 runtimehdrs = concurrency
 libobjs = ${headers:=.o}
-libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c
+libcfa_a_SOURCES = ${libsrc}
+libcfa_d_a_SOURCES = ${libsrc}
 stdhdr = ${shell echo stdhdr/*}
 nobase_include_HEADERS = ${headers} ${stdhdr} concurrency/invoke.h
@@ -357,4 +366,8 @@
 concurrency/invoke.$(OBJEXT): concurrency/$(am__dirstamp) \
 	concurrency/$(DEPDIR)/$(am__dirstamp)
+libcfa-d.a: $(libcfa_d_a_OBJECTS) $(libcfa_d_a_DEPENDENCIES) $(EXTRA_libcfa_d_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libcfa-d.a
+	$(AM_V_AR)$(libcfa_d_a_AR) libcfa-d.a $(libcfa_d_a_OBJECTS) $(libcfa_d_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libcfa-d.a
 libcfa.a: $(libcfa_a_OBJECTS) $(libcfa_a_DEPENDENCIES) $(EXTRA_libcfa_a_DEPENDENCIES) 
 	$(AM_V_at)-rm -f libcfa.a
