409 my @deletion_roots; |
409 my @deletion_roots; |
410 foreach my $exe (sort keys %exe_dependencies) |
410 foreach my $exe (sort keys %exe_dependencies) |
411 { |
411 { |
412 next if (defined $must_have_exes{$exe}); |
412 next if (defined $must_have_exes{$exe}); |
413 my %dependents; |
413 my %dependents; |
414 my $deletion_root = 1; |
414 my $deletion_root = ""; |
415 foreach my $prerequisite (@{$exe_prerequisites{$exe}}) |
415 foreach my $prerequisite (@{$exe_prerequisites{$exe}}) |
416 { |
416 { |
417 next if (defined $must_have_exes{$prerequisite}); |
417 next if (defined $must_have_exes{$prerequisite}); |
418 $deletion_root = 0; # at least one prerequisite is not a must_have, so will delete this exe if removed |
418 $deletion_root = $prerequisite; # at least one prerequisite is not a must_have, so will delete this exe if removed |
419 last; |
419 last; |
420 } |
420 } |
421 next if (!$deletion_root); |
421 if (defined $deletions{$exe_to_romfile{$exe}}) |
|
422 { |
|
423 if ($deletion_root ne "") |
|
424 { |
|
425 #print STDERR "Explicit deletion of $exe is not efficient - $deletion_root would remove it\n"; |
|
426 } |
|
427 next; # no need to report this one |
|
428 } |
|
429 next if ($deletion_root ne ""); |
422 |
430 |
423 count_dependents($exe, \%dependents); |
431 count_dependents($exe, \%dependents); |
424 my $count = scalar keys %dependents; |
432 my $count = scalar keys %dependents; |
425 push @deletion_roots, sprintf "%-4d\t%s", scalar keys %dependents, $exe; |
433 push @deletion_roots, sprintf "%-4d\t%s", scalar keys %dependents, $exe; |
426 } |
434 } |