Changeset 6812 for trunk/SOURCE_TOOLS/fix_depends.pl
- Timestamp:
- 09/09/10 19:58:32 (21 months ago)
- Files:
-
- 1 modified
-
trunk/SOURCE_TOOLS/fix_depends.pl (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCE_TOOLS/fix_depends.pl
r6617 r6812 12 12 # to avoid CVS/SVN changes caused by formatting. 13 13 14 use strict; 15 use warnings; 16 14 17 my $arbhome_quoted = quotemeta($ENV{ARBHOME}); 15 18 my $arbhome = qr/$arbhome_quoted/; 16 my $makedependlineseen = 0;17 my @depends;18 19 if (0) {20 foreach (<>) {21 print "ALL: $_";22 }23 24 die "done";25 }26 19 27 20 sub fix_name($) { … … 29 22 $name =~ s/^$arbhome/\$\(ARBHOME\)/ig; # translate $ARBHOME 30 23 $name =~ s/^.\///ig; # remove './' at start 31 24 32 25 # ensure there's a / behind '$(ARBHOME)' 33 26 if ($name =~ /\$\(ARBHOME\)[^\/]/) { … … 38 31 } 39 32 40 # read input stream 41 foreach (<>) { 42 if ($makedependlineseen==0) { # simply forward lines before 'DO NOT DELETE' 43 print "$_"; 44 if (/^\# DO NOT DELETE/) { $makedependlineseen = 1; } 45 } 46 else { # put lines behind into '@depends' 47 chomp; 48 if (/^ *[\/\$a-z]/i) { 49 if (/^([^:]*): *(.*)$/) { 50 my $file = $1; 51 my $depends_on = $2; 52 $file = fix_name($file); 53 54 while ($depends_on =~ / /) { # split lines with multiple dependencies 55 my $name = $`; 56 my $rest = $'; 57 $name = fix_name($name); 58 push @depends, "$file: $name"; 59 $depends_on = $rest; 60 } 61 $depends_on = fix_name($depends_on); 62 $_ = "$file: $depends_on"; 63 } 64 push @depends,$_; 65 } 66 } 67 } 68 69 print "\n# Do not add dependencies manually - use 'make depend' in \$ARBHOME\n"; 70 print "# For formatting issues see SOURCE_TOOLS/fix_depends.pl\n"; 71 72 # sort dependency lines 73 74 sub beautiful($$) { 33 sub arb_dependency_order($$) { 75 34 # sorts files alphabetically (ign. case) 76 35 # sorts local dependencies first (for each file) … … 99 58 } 100 59 101 @depends = sort beautiful @depends; 60 sub add_dependency(\@$$) { 61 my ($depends_r,$file,$depends_on) = @_; 62 $depends_on = fix_name($depends_on); 102 63 103 # print dependency lines 64 # skip outside dependencies 65 if (not $depends_on =~ m@/usr/include/@) { 66 push @$depends_r, "$file: $depends_on"; 67 } 68 } 104 69 105 my $prefix = ''; 106 foreach (@depends) { 107 my $tprefix = ''; 108 if (/^([^:]*):/) { $tprefix = $1; } 109 if ($tprefix ne $prefix) { 110 print "\n"; # empty line between different files 111 $prefix = $tprefix; 70 sub read_input_stream(\@) { 71 my ($depends_r) = @_; 72 my $makedependlineseen = 0; 73 74 foreach (<>) { 75 if ($makedependlineseen==0) { # simply forward lines until 'DO NOT DELETE' 76 print "$_"; 77 if (/^\# DO NOT DELETE/) { $makedependlineseen = 1; } 78 } 79 else { # put lines behind into '@depends' 80 chomp; 81 if (/^ *[\/\$a-z]/i) { # skip empty lines 82 if (/^([^:]*): *(.*)$/) { 83 my $file = $1; 84 my $depends_on = $2; 85 $file = fix_name($file); 86 87 while ($depends_on =~ / /) { # split lines with multiple dependencies 88 my $name = $`; 89 my $rest = $'; 90 91 add_dependency(@$depends_r,$file,$name); 92 $depends_on = $rest; 93 } 94 add_dependency(@$depends_r,$file,$depends_on); 95 } 96 else { 97 push @$depends_r,$_; # what lines go here? 98 } 99 } 100 } 112 101 } 113 print "$_\n";114 102 } 103 104 sub main() { 105 my @depends=(); 106 read_input_stream(@depends); 107 108 @depends = sort arb_dependency_order @depends; 109 110 print "\n# Do not add dependencies manually - use 'make depend' in \$ARBHOME\n"; 111 print "# For formatting issues see SOURCE_TOOLS/fix_depends.pl\n"; 112 113 # print dependency lines 114 my $prefix = ''; 115 foreach (@depends) { 116 my $tprefix = ''; 117 if (/^([^:]*):/) { $tprefix = $1; } 118 if ($tprefix ne $prefix) { 119 print "\n"; # empty line between different files 120 $prefix = $tprefix; 121 } 122 print "$_\n"; 123 } 124 } 125 main();
