summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/calcrom/calcrom.pl26
1 files changed, 14 insertions, 12 deletions
diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl
index 4858babb9..2aaf25c43 100755
--- a/.github/calcrom/calcrom.pl
+++ b/.github/calcrom/calcrom.pl
@@ -1,12 +1,18 @@
#!/usr/bin/perl
use IPC::Cmd qw[ run ];
+use Getopt::Long;
-(@ARGV == 1)
- or die "ERROR: no map file specified.\n";
+my $usage = "Usage: calcrom.pl file.map [--data]\n";
+
+(@ARGV >= 1)
+ or die $usage;
open(my $file, $ARGV[0])
or die "ERROR: could not open file '$ARGV[0]'.\n";
+my $showData;
+GetOptions("data" => \$showData) or die $usage;
+
my $src = 0;
my $asm = 0;
my $srcdata = 0;
@@ -149,17 +155,13 @@ else
print "$undocumented symbols undocumented ($undocPct%)\n";
}
-print "\n";
-my $dataTotal = $srcdata + $data;
-my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal);
-my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal);
-
-if ($data == 0)
-{
- print "Data porting to C is 100% complete\n"
-}
-else
+if ($showData)
{
+ print "\n";
+ my $dataTotal = $srcdata + $data;
+ my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal);
+ my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal);
+
print "$dataTotal total bytes of data\n";
print "$srcdata bytes of data in src ($srcDataPct%)\n";
print "$data bytes of data in data ($dataPct%)\n";