scons: Add --without-tcmalloc build option
authorCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 22 Sep 2014 19:37:23 +0000 (14:37 -0500)
committerCurtis Dunham <Curtis.Dunham@arm.com>
Mon, 22 Sep 2014 19:37:23 +0000 (14:37 -0500)
Disabling tcmalloc is required for valgrind's memcheck to work properly;
this option makes it easier to create such a build.

SConstruct

index 034e8e626826990147926445af098085650a7e1f..1d1b9571122f2430634b72d74a6652e82fe707d2 100755 (executable)
@@ -186,6 +186,9 @@ AddLocalOption('--verbose', dest='verbose', action='store_true',
 AddLocalOption('--without-python', dest='without_python',
                action='store_true',
                help='Build without Python configuration support')
+AddLocalOption('--without-tcmalloc', dest='without_tcmalloc',
+               action='store_true',
+               help='Disable linking against tcmalloc')
 
 termcap = get_termcap(GetOption('use_colors'))
 
@@ -973,15 +976,16 @@ have_posix_timers = \
     conf.CheckLibWithHeader([None, 'rt'], [ 'time.h', 'signal.h' ], 'C',
                             'timer_create(CLOCK_MONOTONIC, NULL, NULL);')
 
-if conf.CheckLib('tcmalloc'):
-    main.Append(CCFLAGS=main['TCMALLOC_CCFLAGS'])
-elif conf.CheckLib('tcmalloc_minimal'):
-    main.Append(CCFLAGS=main['TCMALLOC_CCFLAGS'])
-else:
-    print termcap.Yellow + termcap.Bold + \
-          "You can get a 12% performance improvement by installing tcmalloc "\
-          "(libgoogle-perftools-dev package on Ubuntu or RedHat)." + \
-          termcap.Normal
+if not GetOption('without_tcmalloc'):
+    if conf.CheckLib('tcmalloc'):
+        main.Append(CCFLAGS=main['TCMALLOC_CCFLAGS'])
+    elif conf.CheckLib('tcmalloc_minimal'):
+        main.Append(CCFLAGS=main['TCMALLOC_CCFLAGS'])
+    else:
+        print termcap.Yellow + termcap.Bold + \
+              "You can get a 12% performance improvement by "\
+              "installing tcmalloc (libgoogle-perftools-dev package "\
+              "on Ubuntu or RedHat)." + termcap.Normal
 
 if not have_posix_clock:
     print "Can't find library for POSIX clocks."