]>
Commit | Line | Data |
---|---|---|
8039257d BL |
1 | #!/usr/local/bin/perl -w |
2 | # Clean the dependency list in a makefile of standard includes... | |
3 | # Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999 | |
4 | ||
5 | use strict; | |
6 | ||
7 | while(<STDIN>) { | |
8 | print; | |
9 | last if /^# DO NOT DELETE THIS LINE/; | |
10 | } | |
11 | ||
12 | my %files; | |
13 | ||
87b79c3e | 14 | my $thisfile=""; |
8039257d | 15 | while(<STDIN>) { |
87b79c3e | 16 | my ($dummy, $file,$deps)=/^((.*):)? (.*)$/; |
6da980e2 | 17 | my $origfile=""; |
87b79c3e | 18 | $thisfile=$file if defined $file; |
8039257d | 19 | next if !defined $deps; |
6da980e2 RL |
20 | $origfile=$thisfile; |
21 | $origfile=~s/\.o$/.c/; | |
8039257d | 22 | my @deps=split ' ',$deps; |
3b4cfea6 | 23 | @deps=grep(!/^\//,@deps); |
87b79c3e | 24 | @deps=grep(!/^\\$/,@deps); |
6da980e2 | 25 | @deps=grep(!/^$origfile$/,@deps); |
87b79c3e | 26 | push @{$files{$thisfile}},@deps; |
8039257d BL |
27 | } |
28 | ||
637691e6 RE |
29 | my $file; |
30 | foreach $file (sort keys %files) { | |
6f935399 | 31 | my $len=0; |
637691e6 | 32 | my $dep; |
6da980e2 RL |
33 | my $origfile=$file; |
34 | $origfile=~s/\.o$/.c/; | |
3009e9f9 | 35 | $file=~s/^\.\///; |
6da980e2 | 36 | push @{$files{$file}},$origfile; |
cb40bdaf | 37 | my $prevdep=""; |
9311c442 BL |
38 | |
39 | # Remove leading ./ before sorting | |
40 | my @deps = map { $_ =~ s/^\.\///; $_ } @{$files{$file}}; | |
41 | ||
42 | foreach $dep (sort @deps) { | |
3009e9f9 | 43 | $dep=~s/^\.\///; |
cb40bdaf RL |
44 | next if $prevdep eq $dep; # to exterminate duplicates... |
45 | $prevdep = $dep; | |
8039257d BL |
46 | $len=0 if $len+length($dep)+1 >= 80; |
47 | if($len == 0) { | |
48 | print "\n$file:"; | |
49 | $len=length($file)+1; | |
50 | } | |
51 | print " $dep"; | |
52 | $len+=length($dep)+1; | |
53 | } | |
54 | } | |
55 | ||
56 | print "\n"; |