diff options
Diffstat (limited to 'ACE/bin/libsize.pl')
-rwxr-xr-x | ACE/bin/libsize.pl | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/ACE/bin/libsize.pl b/ACE/bin/libsize.pl deleted file mode 100755 index 3fd3a468b10..00000000000 --- a/ACE/bin/libsize.pl +++ /dev/null @@ -1,192 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# $Id$ -# -# Provides size breakdown of ACE, TAO, or orbsvcs libs. -# -# Assumes (or builds) the lib with debug=0. Allows other make args, -# such as -j 4, to be passed on the command line. - -$usage = - "$0 [-h, for html output] [-s, for shared libs] [-v] [make arguments]\n"; - -#### -#### Configuration parameters. -#### -$build_args = - 'debug=0 optimize=1 static_libs_only=1 DEFFLAGS=-DACE_USE_RCSID=0'; -$ACE_COMPONENTS = - 'OS Utils Logging Threads Demux Connection Sockets IPC Svcconf ' . - 'Streams Memory Token Other'; -$TAO_COMPONENTS = - 'POA Pluggable_Protocols Default_Resources Interpretive_Marshaling ' . - 'IDL_Compiler ORB_Core Dynamic_Any'; -$ORBSVCS_COMPONENTS = - 'Naming ImplRepo Time Concurrency Property Trader LifeCycle Sched ' . - 'Event CosEvent Event2 AV'; - - -#### The following are only used for VxWorks libraries, and -#### only if the corresponding environment variable isn't set. -$default_toolenv = '386'; -$default_wind_base = '/project/doc/pkg/wind'; -$default_host_type = 'sun4-solaris2'; - -#### Use gmake if it's on the user's PATH, otherwise use make. Use -#### sh -c to avoid warning if gmake isn't found. -$make = - system ("sh -c \"gmake --version\" > /dev/null 2>&1") ? 'make' : 'gmake'; - -$ACE_ROOT = $ENV{'ACE_ROOT'} || - die "$0: ACE_ROOT was not set!\n"; - - -$html = $verbose = 0; -$lib_extension = 'a'; - -#### -#### Process command line args. -#### -while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) { - if ($ARGV[0] eq '-h') { - $html = 1; - chop ($sysname = `uname -s`); - chop ($sysrev = `uname -r`); - shift; - } elsif ($ARGV[0] eq '-s') { - $lib_extension = 'so'; - $build_args =~ s/ static_libs_only=1//; - shift; - } elsif ($ARGV[0] eq '-v') { - $verbose = 1; - shift; - } elsif ($ARGV[0] eq '-?') { - print "$usage"; - exit; - } else { - #### Pass remaining args to make. - } -} - -$make_args = join (' ', @ARGV) . $build_args; - -chop ($pwd = `pwd`); - -if ($pwd =~ m%/ace$%) { - #### libACE - $COMPONENTS = "$ACE_COMPONENTS"; - $LIB_COMPONENTS = 'ACE_COMPONENTS'; - $libname = 'ACE'; -} elsif ($pwd =~ m%/tao$%) { - $COMPONENTS = "$TAO_COMPONENTS"; - $LIB_COMPONENTS = 'TAO_COMPONENTS'; - $libname = 'TAO'; -} elsif ($pwd =~ m%/orbsvcs/orbsvcs$%) { - $COMPONENTS = "$ORBSVCS_COMPONENTS"; - $LIB_COMPONENTS = 'TAO_ORBSVCS'; - $libname = 'orbsvcs'; -} else { - die "$0: unsupported directory; $pwd\n"; -} - -$lib = "lib${libname}.$lib_extension"; - - -#### -#### Select the size command based on ACE_ROOT setting. -#### -if ($ACE_ROOT =~ /vxworks/) { - $TOOLENV = $ENV{'TOOLENV'} || $default_toolenv; - $WIND_BASE = $ENV{'WIND_BASE'} || $default_wind_base; - $WIND_HOST_TYPE = $ENV{'WIND_HOST_TYPE'} || $default_host_type; - $size = "$WIND_BASE/host/$WIND_HOST_TYPE/bin/size$TOOLENV"; -} elsif ($ACE_ROOT =~ /lynx-ppc/) { - $size = '/usr/lynx/3.0.0/ppc/cdk/sunos-xcoff-ppc/bin/size'; -} elsif ($ACE_ROOT =~ /lynx/) { - $size = '/usr/lynx/3.0.0/x86/cdk/sunos-coff-x86/bin/size'; -} elsif ($ACE_ROOT =~ /chorus/) { - $size = '/project/doc/mvme/green68k/gnu/bin/size'; -} else { - $size = 'size'; -} - - -#### -#### Measure the size of the entire library. -#### -$sizeTotal = build_lib ("$LIB_COMPONENTS=\"$COMPONENTS\""); -$components = " <th>Platform\n <th>Component\n <th>Total"; -$componentSize = " <th>Size, bytes\n <td align=center>$sizeTotal"; -$componentPercentage = - " <th>Percentage of<br>total size\n <td align=center>100"; -print "Total $sizeTotal (100)\n" unless $html; - - -#### -#### Measure the size of each library component. -#### -foreach my $i (split (' ', $COMPONENTS)) { - $sizeLib = build_lib ("$LIB_COMPONENTS=\"$i\""); - $components .= "\n <th>$i"; - $componentSize .= "\n <td align=center>$sizeLib"; - $thisPercentage = percentage ($sizeLib, $sizeTotal); - $componentPercentage .= "\n <td align=center>$thisPercentage"; - print "$i $sizeLib ($thisPercentage)\n" unless $html; -} - -#### -#### Produce HTML output, if requested. -#### -if ($html) { - print '<center><table cellpadding=4 border=4>' . "\n"; - print ' <tr>' . "\n"; - print "$echoArgs $components\n"; - print ' <tr>' . "\n"; - print " <th rowspan=2>$sysname $sysrev $ACE_ROOT\n"; - print "$echoArgs $componentSize\n"; - print ' <tr>' . "\n"; - print "$echoArgs $componentPercentage\n"; - print '</table></center><p>' . "\n"; -} - - -#### -#### Build library with componnents specified in argument. -#### -sub build_lib () -{ - my ($lib_components) = @_; - - unlink "$lib"; - - print "$make $make_args $lib_components\n" if $verbose; - - system ("$make $make_args $lib_components >> make.log 2>&1") && - die "$0: command failed; $make $make_args $lib_components\n"; - - my $libSize = 0; - - open (SIZE, "$size $lib |") || - die "$0: unable to open $size\n"; - while (<SIZE>) { - my (@field) = split; - $libSize += $field[3] if $field[3] =~ /\d/; #### Skip size header line. - } - close (SIZE); - - $libSize; -} - - -#### -#### Return percentage of first argument as fraction of second. -#### Returns a string with two-decimal place precision. -#### -sub percentage () -{ - my ($size, $total) = @_; - - sprintf ("%.2f", $size * 100 / $total); -} |