and added files
[bcm963xx.git] / userapps / opensource / sshd / libtommath / pretty.build
1 #!/bin/perl -w
2 #
3 # Cute little builder for perl 
4 # Total waste of development time...
5 #
6 # This will build all the object files and then the archive .a file
7 # requires GCC, GNU make and a sense of humour.
8 #
9 # Tom St Denis
10 use strict;
11
12 my $count = 0;
13 my $starttime = time;
14 my $rate  = 0;
15 print "Scanning for source files...\n";
16 foreach my $filename (glob "*.c") {
17        ++$count;
18 }
19 print "Source files to build: $count\nBuilding...\n";
20 my $i = 0;
21 my $lines = 0;
22 my $filesbuilt = 0;
23 foreach my $filename (glob "*.c") {
24        printf("Building %3.2f%%, ", (++$i/$count)*100.0);
25        if ($i % 4 == 0) { print "/, "; }
26        if ($i % 4 == 1) { print "-, "; }
27        if ($i % 4 == 2) { print "\\, "; }
28        if ($i % 4 == 3) { print "|, "; }
29        if ($rate > 0) {
30            my $tleft = ($count - $i) / $rate;
31            my $tsec  = $tleft%60;
32            my $tmin  = ($tleft/60)%60;
33            my $thour = ($tleft/3600)%60;
34            printf("%2d:%02d:%02d left, ", $thour, $tmin, $tsec);
35        }
36        my $cnt = ($i/$count)*30.0;
37        my $x   = 0;
38        print "[";
39        for (; $x < $cnt; $x++) { print "#"; }
40        for (; $x < 30; $x++)   { print " "; }
41        print "]\r";
42        my $tmp = $filename;
43        $tmp =~ s/\.c/".o"/ge;
44        if (open(SRC, "<$tmp")) {
45           close SRC;
46        } else {
47           !system("make $tmp > /dev/null 2>/dev/null") or die "\nERROR: Failed to make $tmp!!!\n";
48           open( SRC, "<$filename" ) or die "Couldn't open $filename for reading: $!";
49           ++$lines while (<SRC>);
50           close SRC or die "Error closing $filename after reading: $!";
51           ++$filesbuilt;
52        }      
53
54        # update timer 
55        if (time != $starttime) {
56           my $delay = time - $starttime;
57           $rate = $i/$delay;
58        }
59 }
60
61 # finish building the library 
62 printf("\nFinished building source (%d seconds, %3.2f files per second).\n", time - $starttime, $rate);
63 print "Compiled approximately $filesbuilt files and $lines lines of code.\n";
64 print "Doing final make (building archive...)\n";
65 !system("make > /dev/null 2>/dev/null") or die "\nERROR: Failed to perform last make command!!!\n";
66 print "done.\n";