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