# don't ignore any errors set -e source_dir=. output_dir=./include_graphs file_pattern="*.cpp" # get the complete list of all directories where include files might be include_dirs=`find $source_dir -type d -exec echo "-I {} " \;` source_files=`(cd $source_dir && find . -name $file_pattern -print)` # make a separate graph for each and every source file for file in $source_files do perl includepig.pl $include_dirs $source_dir/$file > include.dot mkdir -p $output_dir/`dirname $file` dot -Tpng -o$output_dir/$file.png include.dot done # generate a listing of all the include graphs, sorted by size (biggest first) cd $output_dir find . -name '*.png' -exec ls -s {} \; \ | sort -rn \ | sed -e 's/ \.\/\([^ ]*\).png$/ \1<\/a> /' \ > index-by-size.html print "Done! Results are in $output_dir"