Index: src/Common/Stats/Heap.cc
===================================================================
--- src/Common/Stats/Heap.cc	(revision 02af79b05e3659f90757da2a0f63fc847afd2597)
+++ src/Common/Stats/Heap.cc	(revision 292d599b65d54a5005b8bf8c6e8d95e4a5761fb8)
@@ -21,5 +21,5 @@
 #include <iostream>
 
-#if defined( NO_STATISTICS )
+#if defined( NO_STATISTICS ) || defined( TCMALLOC )
 	#define NO_HEAP_STATISTICS
 #endif
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision 02af79b05e3659f90757da2a0f63fc847afd2597)
+++ src/Makefile.am	(revision 292d599b65d54a5005b8bf8c6e8d95e4a5761fb8)
@@ -28,4 +28,13 @@
 MOSTLYCLEANFILES =
 
+if WITH_LIBPROFILER
+LIBPROFILER = -lprofiler
+endif
+
+if WITH_LIBTCMALLOC
+LIBTCMALLOC = -ltcmalloc
+TCMALLOCFLAG = -DTCMALLOC
+endif
+
 include CodeGen/module.mk
 include CodeTools/module.mk
@@ -54,15 +63,7 @@
 cfa_cpplib_PROGRAMS = ../driver/cfa-cpp demangler
 ___driver_cfa_cpp_SOURCES = $(SRC)
-___driver_cfa_cpp_LDADD = -ldl			# yywrap
+___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC)
 
-if WITH_LIBPROFILER
-	___driver_cfa_cpp_LDADD += -lprofiler
-endif
-
-if WITH_LIBTCMALLOC
-	___driver_cfa_cpp_LDADD += -ltcmalloc
-endif
-
-AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14
+AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
 AM_LDFLAGS  = @HOST_FLAGS@ -Xlinker -export-dynamic
 ARFLAGS     = cr
Index: src/Makefile.in
===================================================================
--- src/Makefile.in	(revision 02af79b05e3659f90757da2a0f63fc847afd2597)
+++ src/Makefile.in	(revision 292d599b65d54a5005b8bf8c6e8d95e4a5761fb8)
@@ -258,5 +258,7 @@
 am____driver_cfa_cpp_OBJECTS = $(am__objects_8)
 ___driver_cfa_cpp_OBJECTS = $(am____driver_cfa_cpp_OBJECTS)
-___driver_cfa_cpp_DEPENDENCIES =
+am__DEPENDENCIES_1 =
+___driver_cfa_cpp_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -554,4 +556,7 @@
 MOSTLYCLEANFILES = Parser/lex.cc Parser/parser.cc Parser/parser.hh \
 	Parser/parser.output
+@WITH_LIBPROFILER_TRUE@LIBPROFILER = -lprofiler
+@WITH_LIBTCMALLOC_TRUE@LIBTCMALLOC = -ltcmalloc
+@WITH_LIBTCMALLOC_TRUE@TCMALLOCFLAG = -DTCMALLOC
 SRC_CODEGEN = \
 	CodeGen/CodeGenerator.cc \
@@ -650,6 +655,6 @@
 cfa_cpplibdir = $(CFA_LIBDIR)
 ___driver_cfa_cpp_SOURCES = $(SRC)
-___driver_cfa_cpp_LDADD = -ldl			# yywrap
-AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14
+___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC)
+AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
 AM_LDFLAGS = @HOST_FLAGS@ -Xlinker -export-dynamic
 ARFLAGS = cr
@@ -1526,8 +1531,4 @@
 	@rm BasicTypes-gen
 
-@WITH_LIBPROFILER_TRUE@	___driver_cfa_cpp_LDADD += -lprofiler
-
-@WITH_LIBTCMALLOC_TRUE@	___driver_cfa_cpp_LDADD += -ltcmalloc
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
