15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/bin/bash
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ***** BEGIN LICENSE BLOCK *****
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Version: MPL 1.1/GPL 2.0/LGPL 2.1
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The contents of this file are subject to the Mozilla Public License Version
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 1.1 (the "License"); you may not use this file except in compliance with
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the License. You may obtain a copy of the License at
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# http://www.mozilla.org/MPL/
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Software distributed under the License is distributed on an "AS IS" basis,
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# for the specific language governing rights and limitations under the
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# License.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The Original Code is autosummary.linx.bash code, released
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Oct 10, 2002.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The Initial Developer of the Original Code is
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Netscape Communications Corporation.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Portions created by the Initial Developer are Copyright (C) 2002
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the Initial Developer. All Rights Reserved.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Contributor(s):
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Garrett Arch Blythe, 10-October-2002
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Simon Fraser <sfraser@netscape.com>
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Alternatively, the contents of this file may be used under the terms of
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# either the GNU General Public License Version 2 or later (the "GPL"), or
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# in which case the provisions of the GPL or the LGPL are applicable instead
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# of those above. If you wish to allow use of your version of this file only
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# under the terms of either the GPL or the LGPL, and not to allow others to
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# use your version of this file under the terms of the MPL, indicate your
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# decision by deleting the provisions above and replace them with the notice
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# and other provisions required by the GPL or the LGPL. If you do not delete
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the provisions above, a recipient may use your version of this file under
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the terms of any one of the MPL, the GPL or the LGPL.
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ***** END LICENSE BLOCK *****
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Check for optional objdir
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "$1" = "-o" ]; then 
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OBJROOT="$2"
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shift
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shift
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OBJROOT="./mozilla"
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "$1" = "-s" ]; then 
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SRCROOT="$2"
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shift
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shift
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SRCROOT="./mozilla"
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   A little help for my friends.
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "-h" == "$1" ];then 
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SHOWHELP="1"
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "--help" == "$1" ];then 
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SHOWHELP="1"
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "" == "$1" ]; then
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SHOWHELP="1"
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "" == "$2" ]; then
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SHOWHELP="1"
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ "" == "$3" ]; then
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SHOWHELP="1"
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Show the help if required.
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $SHOWHELP ]; then
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "usage: $0 <save_results> <old_results> <summary>"
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "  <save_results> is a file that will receive the results of this run."
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "    This file can be used in a future run as the old results."
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "  <old_results> is a results file from a previous run."
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "    It is used to diff with current results and come up with a summary"
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "      of changes."
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "    It is OK if the file does not exist, just supply the argument."
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "  <summary> is a file which will contain a human readable report."
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "    This file is most useful by providing more information than the"
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "      normally single digit output of this script."
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo ""
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "Run this command from the parent directory of the mozilla tree."
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo ""
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "This command will output two numbers to stdout that will represent"
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "  the total size of all code and data, and a delta from the prior."
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "  the old results."
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "For much more detail on size drifts refer to the summary report."
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo ""
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "This tool reports on all executables in the directory tree."
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Stash our arguments away.
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)COPYSORTTSV="$1"
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OLDTSVFILE="$2"
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SUMMARYFILE="$3"
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)OSTYPE=`uname -s`
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   On Mac OS X, use the --zerodrift option to maptsvdifftool
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $OSTYPE == "Darwin" ]; then
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ZERODRIFT="--zerodrift"
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ZERODRIFT=""
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Create our temporary directory.
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   mktemp on Darwin doesn't support -d (suckage)
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $OSTYPE == "Darwin" ]; then
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ZERODRIFT="--zerodrift"
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MYTMPDIR=`mktemp ./codesighs.tmp.XXXXXXXX`
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rm $MYTMPDIR
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mkdir $MYTMPDIR
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MYTMPDIR=`mktemp -d ./codesighs.tmp.XXXXXXXX`
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Find all relevant files.
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ALLFILES="$MYTMPDIR/allfiles.list"
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $OSTYPE == "Darwin" ] || [ $OSTYPE == "SunOS" ]; then
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)find $OBJROOT/dist/bin ! -type d > $ALLFILES
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)find $OBJROOT/dist/bin -not -type d > $ALLFILES
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Check whether we have 'eu-readelf' or 'readelf' available.
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If we do, it will give more accurate symbol sizes than nm.
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $OSTYPE == "Darwin" ]; then
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USE_READELF=
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)READELF_PROG=`which eu-readelf 2>/dev/null | grep /eu-readelf$`
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "$READELF_PROG"; then
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USE_READELF=1
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  READELF_PROG=`which readelf 2>/dev/null | grep /readelf$`
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test "$READELF_PROG"; then
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Check whether we need -W
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if readelf --help | grep "\--wide" >&/dev/null; then
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      READELF_PROG="readelf -W"
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      READELF_PROG="readelf"
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    USE_READELF=1
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    USE_READELF=
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RAWTSVFILE="$MYTMPDIR/raw.tsv"
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "$USE_READELF"; then
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)export READELF_PROG
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xargs -n 1 $SRCROOT/tools/codesighs/readelf_wrap.pl < $ALLFILES > $RAWTSVFILE 2> /dev/null
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Produce the cumulative nm output.
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   We are very particular on what switches to use.
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   nm --format=bsd --size-sort --print-file-name --demangle
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Darwin (Mac OS X) has a lame nm that we have to wrap in a perl
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   script to get decent output.
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NMRESULTS="$MYTMPDIR/nm.txt"
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $OSTYPE == "Darwin" ]; then
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xargs -n 1 $SRCROOT/tools/codesighs/nm_wrap_osx.pl < $ALLFILES  > $NMRESULTS 2> /dev/null
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xargs -n 1 nm --format=bsd --size-sort --print-file-name --demangle < $ALLFILES > $NMRESULTS 2> /dev/null
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Produce the TSV output.
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$OBJROOT/dist/bin/nm2tsv --input $NMRESULTS > $RAWTSVFILE
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi  # USE_READELF
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Sort the TSV output for useful diffing and eyeballing in general.
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sort -r $RAWTSVFILE > $COPYSORTTSV
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   If a historical file was specified, diff it with our sorted tsv values.
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Run it through a tool to summaries the diffs to the module
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#       level report.
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Otherwise, generate the module level report from our new data.
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rm -f $SUMMARYFILE
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DIFFFILE="$MYTMPDIR/diff.txt"
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ -e $OLDTSVFILE ]; then
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  diff $OLDTSVFILE $COPYSORTTSV > $DIFFFILE
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $OBJROOT/dist/bin/maptsvdifftool $ZERODRIFT --input $DIFFFILE >> $SUMMARYFILE
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $OBJROOT/dist/bin/codesighs --modules --input $COPYSORTTSV >> $SUMMARYFILE
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Output our numbers, that will let tinderbox specify everything all
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#       at once.
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   First number is in fact the total size of all code and data in the map
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#       files parsed.
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Second number, if present, is growth/shrinkage.
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $TINDERBOX_OUTPUT ]; then
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo -n "__codesize:"
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$OBJROOT/dist/bin/codesighs --totalonly --input $COPYSORTTSV
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ -e $DIFFFILE ]; then
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if [ $TINDERBOX_OUTPUT ]; then
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo -n "__codesizeDiff:"
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $OBJROOT/dist/bin/maptsvdifftool $ZERODRIFT --summary --input $DIFFFILE
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#   Remove our temporary directory.
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rm -rf $MYTMPDIR
251