#!/bin/bash
# Check if all header files are included in file
/mm.h.
# Example: In glibmm, go to directory glibmm, and run
# tools/test_scripts/testmmh.sh gio # check glibmm/gio/giomm.h
# tools/test_scripts/testmmh.sh glib # check glibmm/glib/glibmm.h
# For each file $1/$1mm/.h, check if $1mm/.h is included in $1/$1mm.h.
# If the file is not included in $1/$1mm.h, search for inclusion in any of the
# files $1/$1mm/.h. Thus you can see if it's included indirectly via
# another header file.
# Some manual checking of $1/$1mm.h is usually necessary.
# Perhaps some header files (like wrap_init.h and _private.h) shall not be included.
# Other header files shall perhaps be surrounded by #ifdef/#ifndef/#endif directives.
if [ $# -ne 1 ]
then
echo "Usage $0 "
exit 1
fi
for headerfile in $1/$1mm/*.h
do
h1="${headerfile#$1/}" # Delete the "$1/" prefix
h2="${h1//./\.}" # Replace each "." by "\."
echo "=== $h1"
grep -q "^ *# *include *<$h2>" $1/$1mm.h
if [ $? -ne 0 ]
then
echo " Missing"
grep "<$h2>" $1/$1mm/*.h
fi
done
exit 0