#! /bin/sh
#------------------------------------------------------------------------
# Script to search for directories where valgrind can be run.
#------------------------------------------------------------------------
#
# LICENSE
#
#  Copyright (C) 2018 California Institute of Technology
#
#  This program is free software; you may redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 (GPLv2) of the
#  License or at your discretion, any later version.
#
#  This program is distributed in the hope that it will be useful, but
#  without any warranty or even the implied warranty of merchantability
#  or fitness for a particular purpose. See the GNU General Public
#  License (GPLv2) for more details.
#
#  Neither the names of the California Institute of Technology (Caltech),
#  The Massachusetts Institute of Technology (M.I.T), The Laser
#  Interferometer Gravitational-Wave Observatory (LIGO), nor the names
#  of its contributors may be used to endorse or promote products derived
#  from this software without specific prior written permission.
# 
#  You should have received a copy of the licensing terms for this
#  software included in the file LICENSE located in the top-level
#  directory of this package. If you did not, you can view a copy at
#  http://dcc.ligo.org/M1500244/LICENSE
#
#
VALGRIND_TOOL_SET=$1
case x$1 in
x) VALGRIND_TOOL_SET=valgrind-memcheck
  ;;
*)
esac
OUT="${VALGRIND_TOOL_SET}.log"
VALGRIND_MAKEFILES=`find ./ -name Makefile -exec grep -l valgrind.mk {} /dev/null \; | grep -v /build/`
if test -f $OUT
then
    rm -f $OUT
fi
for m in ${VALGRIND_MAKEFILES}
do
  dir=`echo $m | sed -e 's/\/[^\/]*$//g'`
  echo "@@@@@@@@@@  $dir @@@@@@@@@@" >>$OUT 2>&1
  ( cd $dir ; make check >/dev/null 2>&1; make valgrind-clean > /dev/null 2>&1; make ${VALGRIND_TOOL_SET} ) >> $OUT 2>&1
done
