Changeset 6788 for branches/refactor/SOURCE_TOOLS/fix_depends.pl
- Timestamp:
- 06/09/10 20:47:59 (21 months ago)
- Files:
-
- 1 modified
-
branches/refactor/SOURCE_TOOLS/fix_depends.pl (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/refactor/SOURCE_TOOLS/fix_depends.pl
r6617 r6788 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 else { 69 push @$depends_r, "# skipped '$depends_on'"; 70 } 71 } 104 72 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; 73 sub read_input_stream(\@) { 74 my ($depends_r) = @_; 75 my $makedependlineseen = 0; 76 77 foreach (<>) { 78 if ($makedependlineseen==0) { # simply forward lines until 'DO NOT DELETE' 79 print "$_"; 80 if (/^\# DO NOT DELETE/) { $makedependlineseen = 1; } 81 } 82 else { # put lines behind into '@depends' 83 chomp; 84 if (/^ *[\/\$a-z]/i) { # skip empty lines 85 if (/^([^:]*): *(.*)$/) { 86 my $file = $1; 87 my $depends_on = $2; 88 $file = fix_name($file); 89 90 while ($depends_on =~ / /) { # split lines with multiple dependencies 91 my $name = $`; 92 my $rest = $'; 93 94 add_dependency(@$depends_r,$file,$name); 95 $depends_on = $rest; 96 } 97 add_dependency(@$depends_r,$file,$depends_on); 98 } 99 else { 100 push @$depends_r,$_; # what lines go here? 101 } 102 } 103 } 112 104 } 113 print "$_\n";114 105 } 106 107 sub main() { 108 my @depends=(); 109 read_input_stream(@depends); 110 111 @depends = sort arb_dependency_order @depends; 112 113 print "\n# Do not add dependencies manually - use 'make depend' in \$ARBHOME\n"; 114 print "# For formatting issues see SOURCE_TOOLS/fix_depends.pl\n"; 115 116 # print dependency lines 117 my $prefix = ''; 118 foreach (@depends) { 119 my $tprefix = ''; 120 if (/^([^:]*):/) { $tprefix = $1; } 121 if ($tprefix ne $prefix) { 122 print "\n"; # empty line between different files 123 $prefix = $tprefix; 124 } 125 print "$_\n"; 126 } 127 } 128 main();
