tools/filter_obyfile.pl
author William Roberts <williamr@symbian.org>
Thu, 21 Oct 2010 13:11:05 +0100
changeset 77 4bb92ff6576a
parent 76 af2426f01bab
child 78 7271390ae2c2
permissions -rw-r--r--
Don't count files already deleted from the ROM in the "Deleting X would remove N files" analysis
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     1
# Copyright (c) 2010 Symbian Foundation Ltd.
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     2
# All rights reserved.
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     3
# This component and the accompanying materials are made available
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     4
# under the terms of the License "Eclipse Public License v1.0"
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     5
# which accompanies this distribution, and is available
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     7
#
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     8
# Initial Contributors:
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
     9
# Symbian Foundation - initial contribution.
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    10
#
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    11
# Contributors:
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    12
#
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    13
# Description: 
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    14
# This script filters an OBY file given a rom_content.csv and a static_dependencies.txt
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    15
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    16
use strict;
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    17
use Getopt::Long;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    18
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    19
my $deleted_lines_oby = "filtered.oby";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    20
my $deletion_details_file = "filter.log";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    21
GetOptions(
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    22
  "d|deleted=s" => \$deleted_lines_oby,   # file to hold the deleted lines
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    23
  "l|log=s" => \$deletion_details_file,   # log of whats deleted and why
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    24
  );
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    25
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    26
if (scalar @ARGV < 2)
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    27
	{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    28
	die ("Must specify at least two arguments: rom_content.csv and static_dependencies.txt");
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    29
	}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    30
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    31
my $rom_content_csv = shift @ARGV;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    32
my $static_dependencies_txt = shift @ARGV;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    33
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    34
open ROM_CONTENT, "<$rom_content_csv" or die("Cannot read $rom_content_csv: $!\n");
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    35
my @rom_content = <ROM_CONTENT>;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    36
close ROM_CONTENT;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    37
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    38
my $rom_content_header = shift @rom_content;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    39
die("Not a valid rom_content.csv file") if ($rom_content_header !~ /^ROM file,/);
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    40
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    41
# read through the rom_content_csv looking for direct instructions
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    42
my %stem_substitutions;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    43
my %deletions;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    44
my %must_have;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    45
foreach my $line (@rom_content)
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    46
	{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    47
	my ($romfile,$hostfile,$ibyfile,$package,$cmd,@rest) = split /,/, $line;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    48
	
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    49
	next if ($cmd eq "");
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    50
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    51
	$cmd = lc $cmd;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    52
	if ($cmd eq "stem")
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    53
		{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    54
		$stem_substitutions{$romfile} = $hostfile;
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    55
		$must_have{$romfile} = 1;
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    56
		next;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    57
		}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    58
	
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    59
	if ($cmd eq "out")
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    60
		{
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    61
		# print STDERR "Deletion request for >$romfile<\n";
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    62
		$deletions{$romfile} = "out";
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    63
		next;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    64
		}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    65
	
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    66
	if ($cmd eq "in")
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    67
		{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    68
		$must_have{$romfile} = 1;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    69
		next;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    70
		}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    71
	}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    72
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
    73
printf STDERR "%d in (including %d stem), %d out\n", 
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    74
	scalar keys %must_have,
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    75
	scalar keys %stem_substitutions, 
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
    76
	scalar keys %deletions; 
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    77
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
    78
# read static dependencies file
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
    79
my %exe_to_romfile;     # exe -> original romfile
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
    80
my %exe_dependencies;   # exe -> list of romfile
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
    81
my %exe_prerequisites;  # exe -> list of exe
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
    82
my %lc_romfiles;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
    83
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    84
my $line;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    85
open STATIC_DEPENDENCIES, "<$static_dependencies_txt" or die ("Cannot read $static_dependencies_txt: $!\n");
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    86
while ($line = <STATIC_DEPENDENCIES>)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    87
	{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    88
	chomp $line;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    89
	my ($romfile, $hostfile, $stuff) = split /\t/, $line;
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
    90
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    91
	next if ($romfile eq "x");	# pre-inverted dependency information
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    92
	
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    93
	if (defined $stem_substitutions{$romfile})
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    94
		{
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    95
		if ($hostfile !~ /\/stem_/)
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    96
			{
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    97
			print STDERR "Ignoring dependencies of $hostfile because of stem substitution of $romfile\n";
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    98
			next;
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
    99
			}
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   100
		}
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   101
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   102
	$lc_romfiles{lc $romfile} = $romfile;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   103
	
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   104
	my $romexe = "";
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   105
	if ($romfile =~ /^sys.bin.(.*)$/i)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   106
		{
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   107
		$romexe = lc $1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   108
		$exe_to_romfile{$romexe} = $romfile;
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   109
		}
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   110
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   111
	my @prerequisite_exes = ();
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   112
	foreach my $prerequisite (split /:/,$stuff)
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   113
		{
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   114
		next if ($prerequisite =~ /^sid=/);	# not a real file
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   115
		$prerequisite =~ s/^sys.bin.//;	# remove leading sys/bin, if present
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   116
		if ($prerequisite !~ /\\/)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   117
			{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   118
			my $exe = lc $prerequisite;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   119
			$exe =~ s/\[\S+\]//;	# ignore the UIDs for now
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   120
		
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   121
			push @prerequisite_exes, $exe;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   122
			if (!defined $exe_dependencies{$exe})
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   123
				{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   124
				my @dependents = ($romfile);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   125
				$exe_dependencies{$exe} = \@dependents;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   126
				}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   127
			else
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   128
				{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   129
				push @{$exe_dependencies{$exe}}, $romfile;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   130
				}
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   131
			}
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   132
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   133
	if ($romexe ne "")
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   134
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   135
		$exe_prerequisites{$romexe} = \@prerequisite_exes;
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   136
		}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   137
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   138
close STATIC_DEPENDENCIES;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   139
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   140
# Add static dependencies for aliases
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   141
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   142
my @obylines = <>;	# read the oby file
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   143
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   144
foreach my $line (@obylines)
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   145
	{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   146
	if ($line =~ /^\s*alias\s+(\S+)\s+(\S+)\s*$/)
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   147
		{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   148
		my $romfile = $1;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   149
		my $newname = $2;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   150
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   151
		$romfile =~ s/^\\sys/sys/;	# remove leading \, to match $romfile convention
22
76c5e260003e Calculate the inverted dependency table in filter_obyfile.pl, and make it optional (-i) in static_dependencies.pl
William Roberts <williamr@symbian.org>
parents: 19
diff changeset
   152
		next if (!defined $lc_romfiles{lc $romfile});		# ignore aliases to non-executables
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   153
		$romfile = $lc_romfiles{lc $romfile};
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   154
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   155
		$newname =~ s/^\\sys/sys/;	# remove leading \, to match $romfile convention
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   156
		$lc_romfiles{lc $newname} = $newname;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   157
		
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   158
		if ($romfile =~ /^sys.bin.(\S+)$/i)
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   159
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   160
			my $realexe = lc $1;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   161
			push @{$exe_dependencies{$realexe}}, $newname;		# the alias is a dependent of the real file
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   162
			
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   163
			if ($newname =~ /^sys.bin.(\S+)$/i)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   164
				{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   165
				my $newexe = lc $1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   166
				my @prerequisite_exes = ($realexe);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   167
				$exe_prerequisites{$newexe} = \@prerequisite_exes;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   168
				}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   169
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   170
			# print STDERR "added $newname as a dependent of $realexe\n"
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   171
			}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   172
		}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   173
	}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   174
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   175
if (0)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   176
	{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   177
	foreach my $exe ("libopenvg.dll", "libopenvg_sw.dll", "backend.dll")
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   178
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   179
		printf STDERR "Dependents of %s = %s\n", $exe, join(", ", @{$exe_dependencies{$exe}});
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   180
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   181
	}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   182
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   183
# process the "out" commands to recursively expand the deletions
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   184
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   185
my @details;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   186
sub print_detail($)
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   187
	{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   188
	my ($message) = @_;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   189
	push @details, $message;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   190
	print STDERR $message, "\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   191
	}
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   192
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   193
my @problems;	# list of romtrails which will be a problem
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   194
sub delete_dependents($$$)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   195
	{
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   196
	my ($romtrail,$original_reason,$listref) = @_;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   197
	my ($romfile,$trail) = split /\t/, $romtrail;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   198
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   199
	if (defined $deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   200
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   201
		# already marked for deletion
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   202
		return;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   203
		}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   204
	
19
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   205
	if (defined $must_have{$romfile})
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   206
		{
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   207
		# Problem! We won't be able to build this ROM
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   208
		print_detail("WARNING: $romfile is being kept, but will fail to link because of deletion trail $trail");
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   209
		push @problems, $romtrail;
19
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   210
		# keep that file and see what happens anyway
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   211
		return;
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   212
		}
b1cc137d8adb Update filter_obyfile.pl to support the "In" command, which detects conflicts with the scope of removals
William Roberts <williamr@symbian.org>
parents: 18
diff changeset
   213
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   214
	push @details, sprintf "deleting %s (%s)", scalar $romfile, $trail;
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   215
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   216
	$deletions{$romfile} = $original_reason;	# this ensures that it gets deleted
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   217
	if ($romfile =~ /^sys.bin.(.*)$/i)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   218
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   219
		my $exe = lc $1;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   220
		if (!defined $exe_dependencies{$exe})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   221
			{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   222
			# print STDERR "No dependencies for $exe ($romfile)\n";
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   223
			return;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   224
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   225
		foreach my $dependent (@{$exe_dependencies{$exe}})
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   226
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   227
			if (!defined $deletions{$dependent})
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   228
				{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   229
		  	push @{$listref}, "$dependent\t$romfile $trail";
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   230
		  	}
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   231
		  elsif ($deletions{$romfile} eq "out")
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   232
				{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   233
				print_detail("NOTE: direct deletion of $romfile is not needed - it would be removed by $original_reason");
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   234
				}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   235
			}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   236
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   237
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   238
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   239
my @delete_cmds = sort keys %deletions;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   240
foreach my $romfile (@delete_cmds)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   241
	{
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   242
	push @details, "", "===Deleting $romfile", "";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   243
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   244
	delete $deletions{$romfile}; 	# so that delete_dependents will iterate properly
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   245
	my @delete_list = ("$romfile\tout");
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   246
	while (scalar @delete_list > 0)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   247
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   248
		my $next_victim = shift @delete_list;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   249
		delete_dependents($next_victim, $romfile, \@delete_list);
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   250
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   251
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   252
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   253
# read the oby file and apply the commands
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   254
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   255
my $stem_count = 0;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   256
my $deletion_count = 0;
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   257
my @deleted_lines;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   258
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   259
foreach my $line (@obylines)
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   260
	{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   261
	chomp $line;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   262
	if ($line =~ /^(.*=)(\S+\s+)(\S+)(\s.*)?$/)
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   263
		{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   264
		my $romcmd = $1;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   265
		my $hostfile = $2;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   266
		my $romfile = $3;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   267
		my $rest = $4;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   268
		$rest = "" if (!defined $rest);
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   269
		
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   270
		if ($romfile =~ /^"(.*)"$/)
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   271
			{
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   272
			$romfile = $1;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   273
			$hostfile .= '"';
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   274
			$rest = '"'. $rest;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   275
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   276
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   277
		$lc_romfiles{lc $romfile} = $romfile;
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   278
		
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   279
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   280
			{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   281
			$deletion_count++;
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   282
			push @deleted_lines, $line;
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   283
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   284
			}
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   285
		
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   286
		if (defined $stem_substitutions{$romfile})
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   287
			{
41
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   288
			if ($hostfile =~ /^(.*(\/|\\))([^\\\/]+)$/)
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   289
				{
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   290
				my $path=$1;
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   291
				my $filename=$3;
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   292
				if ($filename !~ /^stem_/)
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   293
					{
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   294
					# print STDERR "Applying stem_ prefix to $hostfile in $line\n";
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   295
					$hostfile = "${path}stem_$filename";
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   296
					$stem_count++;
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   297
					}
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   298
				}
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   299
			}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   300
		print $romcmd, $hostfile, $romfile, $rest, "\n";
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   301
		next;
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   302
		}
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   303
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   304
	# __ECOM_PLUGIN(emulator directory, file rom dir, dataz_, resource rom dir, filename, resource filename)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   305
	if ($line =~ /__ECOM_PLUGIN\(([^)]+)\)/)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   306
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   307
		my ($emudir, $romdir, $dataz, $resourcedir, $exename, $rscname) = split /\s*,\s*/, $1;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   308
		my $romfile = $romdir. "\\". $exename;
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   309
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   310
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   311
			{
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   312
			# print STDERR "Deleted __ECOM_PLUGIN for $romfile\n";
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   313
			$deletion_count++;
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   314
			push @deleted_lines, $line;
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   315
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   316
			}		
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   317
		}
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   318
	if ($line =~ /^\s*alias\s+(\S+)\s+(\S+)\s*$/)
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   319
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   320
		my $romfile = $1;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   321
		my $newname = $2;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   322
		
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   323
		$romfile =~ s/^\\sys/sys/;	# remove leading \, to match $romfile convention
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   324
		$romfile = $lc_romfiles{lc $romfile};
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   325
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   326
			{
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   327
			# delete the alias if the real file is marked for deletion
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   328
			$deletion_count++;
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   329
			push @deleted_lines, $line;
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   330
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   331
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   332
		else
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   333
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   334
			# print STDERR "$romfile is not deleted - saving $line\n";
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   335
			}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   336
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   337
	
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   338
	# patchdata  sys\bin\eiksrv.dll addr 0x0000c944 4 5
57
a44af1db196f Update buildrom.pm to keep better information for patchdata, with corresponding changes in repair_obyfile.pl and filter_obyfile.pl
William Roberts <williamr@symbian.org>
parents: 41
diff changeset
   339
	# patchdata rawip.dll@KRMtuIPv6 0x578
a44af1db196f Update buildrom.pm to keep better information for patchdata, with corresponding changes in repair_obyfile.pl and filter_obyfile.pl
William Roberts <williamr@symbian.org>
parents: 41
diff changeset
   340
	if ($line =~ /^\s*patchdata\s*(\S+)(\s*@|\s+addr)/i)
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   341
		{
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   342
		my $romfile = $1;
57
a44af1db196f Update buildrom.pm to keep better information for patchdata, with corresponding changes in repair_obyfile.pl and filter_obyfile.pl
William Roberts <williamr@symbian.org>
parents: 41
diff changeset
   343
		$romfile = "sys\\bin\\$romfile" if ($romfile !~ /\\/);
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   344
		$romfile =~ s/^\\//;	# remove leading \, to match $romfile convention
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   345
		$romfile = $lc_romfiles{lc $romfile};
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   346
		
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   347
		# print STDERR "deleting patchdata line for $romfile\n";
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   348
		if ($deletions{$romfile})
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   349
			{
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   350
			# don't count these lines as deletions - they are just extra lines relating to deleted files.
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   351
			push @deleted_lines, $line;
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   352
			next;
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   353
			}
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   354
		}
14
4331846fc8cb Add first version of tools\filter_obyfile.pl, which uses rom_content.csv to select "stem_" versions of files.
William Roberts <williamr@symbian.org>
parents:
diff changeset
   355
	print $line,"\n";
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   356
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   357
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   358
print_detail("Applied $stem_count stem substitutions and deleted $deletion_count rom files");
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   359
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   360
# Caculate what else could be removed
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   361
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   362
my %must_have_exes;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   363
sub mark_prerequisites($);	# prototype for recursion
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   364
sub mark_prerequisites($)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   365
	{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   366
	my ($exe) = @_;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   367
	return if (defined $must_have_exes{$exe});	# already marked
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   368
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   369
	$must_have_exes{$exe} = 1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   370
	if (!defined $exe_prerequisites{$exe})
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   371
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   372
		# printf STDERR "$exe has no prerequisites to be marked!\n";
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   373
		return;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   374
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   375
	foreach my $prerequisite (@{$exe_prerequisites{$exe}})
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   376
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   377
		mark_prerequisites($prerequisite);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   378
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   379
	}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   380
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   381
foreach my $romfile (keys %must_have)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   382
	{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   383
	if ($romfile =~ /^sys.bin.(.*)$/i)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   384
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   385
		my $exe = lc $1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   386
		mark_prerequisites($exe);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   387
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   388
	}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   389
printf STDERR "Minimum ROM now has %d exes\n", scalar keys %must_have_exes;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   390
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   391
sub count_dependents($$);	# prototype for recursion
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   392
sub count_dependents($$)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   393
	{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   394
	my ($exe, $hashref) = @_;
77
4bb92ff6576a Don't count files already deleted from the ROM in the "Deleting X would remove N files" analysis
William Roberts <williamr@symbian.org>
parents: 76
diff changeset
   395
	return if (defined $deletions{$exe_to_romfile{$exe}});
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   396
	return if (defined $$hashref{$exe});
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   397
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   398
	$$hashref{$exe} = 1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   399
	foreach my $dependent (@{$exe_dependencies{$exe}})
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   400
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   401
		next if ($dependent =~ /^sid=/);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   402
		if ($dependent =~ /^sys.bin.(.*)$/i)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   403
			{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   404
			my $depexe = lc $1;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   405
			count_dependents($depexe, $hashref);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   406
			}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   407
		}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   408
	}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   409
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   410
my @deletion_roots;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   411
foreach my $exe (sort keys %exe_dependencies)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   412
	{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   413
	next if (defined $must_have_exes{$exe});
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   414
	my %dependents;
76
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   415
	my $deletion_root = "";
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   416
	foreach my $prerequisite (@{$exe_prerequisites{$exe}})
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   417
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   418
		next if (defined $must_have_exes{$prerequisite});
76
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   419
		$deletion_root = $prerequisite;	# at least one prerequisite is not a must_have, so will delete this exe if removed
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   420
		last;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   421
		}
76
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   422
	if (defined $deletions{$exe_to_romfile{$exe}})
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   423
		{
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   424
		if ($deletion_root ne "")
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   425
			{
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   426
			#print STDERR "Explicit deletion of $exe is not efficient - $deletion_root would remove it\n";
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   427
			}
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   428
			next;	# no need to report this one
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   429
		}
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   430
	next if ($deletion_root ne "");
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   431
	
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   432
	count_dependents($exe, \%dependents);
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   433
	my $count = scalar keys %dependents;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   434
	push @deletion_roots, sprintf "%-4d\t%s", scalar keys %dependents, $exe;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   435
	}
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   436
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   437
my $deleted_lines_oby = "filtered.oby";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   438
my $deletion_details_file = "filter.log";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   439
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   440
if ($deleted_lines_oby && scalar @deleted_lines)
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   441
	{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   442
	print STDERR "Writing deleted lines to $deleted_lines_oby\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   443
	open FILE, ">$deleted_lines_oby" or die("Unable to write to file $deleted_lines_oby: $!\n");
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   444
	foreach my $line (@deleted_lines)
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   445
		{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   446
		print FILE $line, "\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   447
		}
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   448
	close FILE;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   449
	}
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   450
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   451
if ($deletion_details_file && scalar (@details, @problems, @deletion_roots))
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   452
	{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   453
	print STDERR "Writing deletion details to $deletion_details_file\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   454
	open FILE, ">$deletion_details_file" or die("Unable to write to file $deletion_details_file: $!\n");
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   455
	foreach my $line (@details)
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   456
		{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   457
		print FILE $line, "\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   458
		}
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   459
		
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   460
	print FILE "\n====\n";
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   461
	foreach my $deletion_root (sort {$b <=> $a} @deletion_roots)
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   462
		{
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   463
		my ($count,$exe) = split /\s+/, $deletion_root;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   464
		printf FILE "Deleting %s would remove %d files\n", $exe, $count;
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   465
		}	
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   466
27
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   467
	print FILE "\n====\n";
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   468
	foreach my $problem (sort @problems)
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   469
		{
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   470
		my ($romfile, $trail) = split /\t/, $problem;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   471
		print FILE "$romfile depends on removed files $trail\n"
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   472
		}
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   473
	close FILE;
c29882e1d694 Add filter_obyfile.pl -l filter.log and -d filtered.oby options, to capture details of the deletions
William Roberts <williamr@symbian.org>
parents: 22
diff changeset
   474
	}
75
b0f4d5be8407 Extend filter_obyfile.pl to report on good exes to delete - see new info in filter.log
William Roberts <williamr@symbian.org>
parents: 57
diff changeset
   475