tools/filter_obyfile.pl
changeset 76 af2426f01bab
parent 75 b0f4d5be8407
child 77 4bb92ff6576a
equal deleted inserted replaced
75:b0f4d5be8407 76:af2426f01bab
   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 	}