tools/filter_obyfile.pl
author William Roberts <williamr@symbian.org>
Mon, 25 Oct 2010 17:26:54 +0100
changeset 80 3ab0df073c86
parent 78 7271390ae2c2
child 99 e23a8d7ea8bb
permissions -rw-r--r--
Add support for "slim", which is "stem" + removal of some exports and checking of import details For this to work, the static_dependencies.txt file needs to contain the augmented dependency information. To help with this, it can now consume a mixture of both rom_content.csv lines and static_dependencies.txt lines: the best way to update the information would be something like (edit rom_content.csv to add "slim" to XXX.dll) findstr /i "xxx.dll" rom_content.csv > slim.txt findstr /i "xxx.dll" static_dependencies.txt >> slim.txt perl ..\tools\static_dependencies.pl -u static_dependencies.txt slim.txt > new_dependencies.txt This will notice the "slim" marking for xxx.dll, and record the detailed import and export lists for xxx.dll and everything which links to it. The new information will look something like sys\bin\xxx.dll /epoc32/release/armv5/urel/stem_xxx.dll exports=1-98.100-102:euser[100039e5].dll sys\bin\yyy.dll /epoc32/release/armv5/urel/yyy.dll euser[100039e5].dll:xxx[102750c7].dll@2.4-5.77.104-106:scppnwdl.dll sys\bin\zzz.dll /epoc32/release/armv5/urel/zzz.dll euser[100039e5].dll:xxx[102750c7].dll@23.25.74-77:scppnwdl.dll Only executables for which there is a "slim" marking will have this level of detail. The filtering script now does the detailed cross-checking of imports to exports for "slim" executables. In this case, it will observe the stem_xxx.dll does not export ordinal 104, and so the filtering will include deleting sys\bin\yyy.dll (xxx.dll Missing ordinal 104) sys\bin\zzz.dll will be acceptable, because it only uses ordinals which are still present in stem_xxx.dll
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;
78
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
    43
my %rom_origins;
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
    44
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
    45
my %must_have;
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    46
my %check_import_details;
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
    47
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
    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
	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
    50
	
78
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
    51
	$rom_origins{$romfile} = "$ibyfile,$package";
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
    52
	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
    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
	$cmd = lc $cmd;
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    55
	if ($cmd eq "slim")
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    56
		{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    57
		$check_import_details{$romfile} = "";
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    58
		$stem_substitutions{$romfile} = $hostfile;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    59
		$must_have{$romfile} = 1;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    60
		next;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    61
		}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    62
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
	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
    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
		$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
    66
		$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
    67
		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
    68
		}
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
	
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
	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
    71
		{
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    72
		# 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
    73
		$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
    74
		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
    75
		}
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
    76
	
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
	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
    78
		{
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
    79
		$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
    80
		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
    81
		}
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
    82
	}
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
    83
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    84
printf STDERR "%d in (including %d slim and %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
    85
	scalar keys %must_have,
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    86
	scalar keys %check_import_details,
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    87
	(scalar keys %stem_substitutions) - (scalar keys %check_import_details), 
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
    88
	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
    89
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
    90
# 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
    91
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
    92
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
    93
my %exe_prerequisites;  # exe -> list of exe
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
    94
my %exe_ordinals;       # exe -> list of valid ordinals
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
    95
my %lc_romfiles;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
    96
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    97
my $line;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
    98
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
    99
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
   100
	{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   101
	chomp $line;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   102
	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
   103
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
   104
	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
   105
	
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
   106
	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
   107
		{
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
   108
		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
   109
			{
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   110
			# print STDERR "Ignoring dependencies of $hostfile because of stem substitution of $romfile\n";
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
   111
			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
   112
			}
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
		}
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
   114
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   115
	$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
   116
	
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
   117
	my $romexe = "";
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   118
	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
   119
		{
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
   120
		$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
   121
		$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
   122
		}
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
   123
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
   124
	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
   125
	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
   126
		{
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
   127
		next if ($prerequisite =~ /^sid=/);	# not a real file
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   128
		if ($prerequisite =~ /^exports=(.*)$/)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   129
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   130
			my $ordinals = $1;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   131
			if (defined $check_import_details{$romfile})
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   132
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   133
				$exe_ordinals{$romexe} = $ordinals;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   134
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   135
			next;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   136
			}
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
   137
		$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
   138
		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
   139
			{
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
   140
			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
   141
			$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
   142
		
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
   143
			push @prerequisite_exes, $exe;
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   144
			$exe =~ s/@.*$//; 	# remove the ordinals, though they remain in the prerequisite exes
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   145
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
   146
			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
   147
				{
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
   148
				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
   149
				$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
   150
				}
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
   151
			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
   152
				{
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
   153
				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
   154
				}
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
   155
			}
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
   156
		}
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
   157
	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
   158
		{
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
   159
		$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
   160
		}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   161
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   162
close STATIC_DEPENDENCIES;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   163
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
   164
# 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
   165
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   166
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
   167
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   168
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
   169
	{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   170
	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
   171
		{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   172
		my $romfile = $1;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   173
		my $newname = $2;
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   174
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   175
		$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
   176
		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
   177
		$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
   178
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   179
		$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
   180
		$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
   181
		
78
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
   182
		$rom_origins{$newname} = "alias to $romfile";
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   183
		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
   184
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   185
			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
   186
			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
   187
			
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
   188
			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
   189
				{
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
   190
				my $newexe = lc $1;
78
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
   191
				$exe_to_romfile{$newexe} = $newname;
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
   192
				$rom_origins{$newname} = "alias " . $rom_origins{$romfile};
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
   193
				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
   194
				$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
   195
				}
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
   196
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   197
			# 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
   198
			}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   199
		}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   200
	}
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   201
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
   202
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
   203
	{
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   204
	foreach my $exe ("libopenvg.dll", "libopenvg_sw.dll", "backend.dll", "qtgui.dll")
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
   205
		{
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
   206
		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
   207
		}
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
   208
	}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   209
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
   210
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
   211
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
   212
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
   213
	{
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
	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
   215
	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
   216
	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
   217
	}
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
   218
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   219
# check the dependents of "slim" DLLs to see if they get eliminated by missing ordinals
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   220
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   221
sub expand_list($$)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   222
	{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   223
	my ($hashref, $list) = @_;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   224
	foreach my $range (split /\./, $list)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   225
		{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   226
		if ($range =~ /^(\d+)-(\d+)$/)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   227
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   228
			foreach my $ordinal ($1 .. $2)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   229
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   230
				$$hashref{$ordinal} = 1;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   231
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   232
			}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   233
		else
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   234
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   235
			$$hashref{$range} = 1;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   236
			}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   237
		}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   238
	}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   239
sub check_list($$)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   240
	{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   241
	my ($hashref, $list) = @_;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   242
	foreach my $range (split /\./, $list)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   243
		{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   244
		if ($range =~ /^(\d+)-(\d+)$/)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   245
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   246
			foreach my $ordinal ($1 .. $2)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   247
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   248
				if (!defined $$hashref{$ordinal})
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   249
					{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   250
					return "Missing ordinal $ordinal";
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   251
					}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   252
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   253
			}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   254
		else
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   255
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   256
			return "Missing ordinal $range" if (!defined $$hashref{$range});
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   257
			}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   258
		}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   259
	return "OK";
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   260
	}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   261
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   262
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   263
foreach my $romexe (keys %exe_ordinals)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   264
	{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   265
	my $exported_ordinals = $exe_ordinals{$romexe};
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   266
	my %exports;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   267
	expand_list(\%exports, $exported_ordinals);
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   268
	my $namelength = length($romexe);
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   269
	foreach my $dependent (@{$exe_dependencies{$romexe}})
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   270
		{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   271
		next if (defined $deletions{$dependent});   # already 
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   272
		
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   273
		if ($dependent =~ /^sys.bin.(.*)$/i)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   274
			{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   275
			my $depexe = lc $1;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   276
			my $imports;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   277
			foreach my $prerequisite (@{$exe_prerequisites{$depexe}})
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   278
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   279
				if (substr($prerequisite, 0, $namelength) eq $romexe)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   280
					{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   281
					$imports = substr($prerequisite, $namelength+1);	# skip name and "@"
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   282
					last;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   283
					}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   284
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   285
			if (!defined $imports)
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   286
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   287
				printf STDERR "Failed to find ordinals imported from %s by %s (in %s)\n", 
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   288
					$romexe, $dependent, join(":",@{$exe_prerequisites{$depexe}});
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   289
				next;
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   290
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   291
			my $compatible = check_list(\%exports,$imports);
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   292
			if ($compatible ne "OK")
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   293
				{
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   294
				$deletions{$dependent} = "$romexe $compatible";
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   295
				# print_detail("Deleting $dependent because of slimmed $romexe ($compatible)");
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   296
				}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   297
			}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   298
		}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   299
	}
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   300
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   301
# process the "out" commands to recursively expand the deletions
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   302
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
   303
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
   304
sub delete_dependents($$$)
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   305
	{
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   306
	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
   307
	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
   308
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   309
	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
   310
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   311
		# 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
   312
		return;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   313
		}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   314
	
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
   315
	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
   316
		{
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
   317
		# 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
   318
		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
   319
		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
   320
		# 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
   321
		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
   322
		}
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
   323
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
   324
	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
   325
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   326
	$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
   327
	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
   328
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   329
		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
   330
		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
   331
			{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   332
			# 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
   333
			return;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   334
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   335
		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
   336
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   337
			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
   338
				{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   339
		  	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
   340
		  	}
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
   341
		  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
   342
				{
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
   343
				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
   344
				}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   345
			}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   346
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   347
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   348
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   349
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
   350
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
   351
	{
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
   352
	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
   353
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   354
	my $reason = $deletions{$romfile};
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   355
	delete $deletions{$romfile}; 	# so that delete_dependents will iterate properly
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   356
	my @delete_list = ("$romfile\t$reason");
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   357
	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
   358
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   359
		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
   360
		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
   361
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   362
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   363
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
   364
# 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
   365
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   366
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
   367
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
   368
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
   369
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   370
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
   371
	{
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
   372
	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
   373
	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
   374
		{
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
   375
		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
   376
		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
   377
		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
   378
		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
   379
		$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
   380
		
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
   381
		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
   382
			{
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
   383
			$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
   384
			$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
   385
			$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
   386
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   387
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   388
		$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
   389
		
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   390
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   391
			{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   392
			$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
   393
			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
   394
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   395
			}
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
   396
		
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
   397
		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
   398
			{
41
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   399
			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
   400
				{
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   401
				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
   402
				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
   403
				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
   404
					{
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   405
					# 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
   406
					$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
   407
					$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
   408
					}
c57a6c85ccdc Fix up the filter_obyfile.pl to make it not double "stem_" things
Tom Pritchard <tomp@symbian.org>
parents: 27
diff changeset
   409
				}
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
   410
			}
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
   411
		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
   412
		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
   413
		}
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
   414
	
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   415
	# __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
   416
	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
   417
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   418
		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
   419
		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
   420
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   421
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   422
			{
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   423
			# 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
   424
			$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
   425
			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
   426
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   427
			}		
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   428
		}
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   429
	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
   430
		{
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   431
		my $romfile = $1;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   432
		my $newname = $2;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   433
		
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   434
		$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
   435
		$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
   436
		if ($deletions{$romfile})
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   437
			{
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   438
			# 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
   439
			$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
   440
			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
   441
			next;
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   442
			}
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   443
		else
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   444
			{
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   445
			# 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
   446
			}
15
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   447
		}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   448
	
17
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   449
	# 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
   450
	# 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
   451
	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
   452
		{
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   453
		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
   454
		$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
   455
		$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
   456
		$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
   457
		
18
142e13d70737 More updates to filter_obyfile.pl, now copes properly with aliases
William Roberts <williamr@symbian.org>
parents: 17
diff changeset
   458
		# 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
   459
		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
   460
			{
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   461
			# 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
   462
			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
   463
			next;
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   464
			}
1d230a71c389 Update filter_obyfile.pl to handle patchdata and some more alias cases.
William Roberts <williamr@symbian.org>
parents: 15
diff changeset
   465
		}
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
   466
	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
   467
	}
330c2ceccdc6 filter_obyfile.pl now handles deletions including ECOM plugins and aliases
William Roberts <williamr@symbian.org>
parents: 14
diff changeset
   468
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
   469
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
   470
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
   471
# 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
   472
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
   473
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
   474
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
   475
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
   476
	{
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
   477
	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
   478
	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
   479
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
   480
	$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
   481
	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
   482
		{
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
   483
		# 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
   484
		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
   485
		}
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
   486
	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
   487
		{
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   488
		$prerequisite =~ s/@.*$//;	# remove any ordinal information
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
   489
		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
   490
		}
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
   491
	}
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
   492
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
   493
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
   494
	{
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
   495
	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
   496
		{
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
   497
		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
   498
		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
   499
		}
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
   500
	}
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
   501
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
   502
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
   503
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
   504
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
   505
	{
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
   506
	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
   507
	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
   508
	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
   509
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
   510
	$$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
   511
	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
   512
		{
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
   513
		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
   514
		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
   515
			{
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
   516
			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
   517
			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
   518
			}
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
   519
		}
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
   520
	}
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
   521
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
   522
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
   523
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
   524
	{
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
   525
	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
   526
	my %dependents;
76
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   527
	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
   528
	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
   529
		{
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
   530
		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
   531
		$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
   532
		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
   533
		}
76
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   534
	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
   535
		{
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   536
		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
   537
			{
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   538
			#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
   539
			}
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   540
			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
   541
		}
af2426f01bab Further tweak to avoid reporting deletion roots already marked as "Out".
William Roberts <williamr@symbian.org>
parents: 75
diff changeset
   542
	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
   543
	
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
   544
	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
   545
	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
   546
	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
   547
	}
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
   548
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
   549
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
   550
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
   551
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
   552
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
   553
	{
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
   554
	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
   555
	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
   556
	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
   557
		{
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
   558
		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
   559
		}
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
   560
	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
   561
	}
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
   562
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
   563
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
   564
	{
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
   565
	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
   566
	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
   567
	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
   568
		{
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
   569
		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
   570
		}
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
   571
		
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
   572
	print FILE "\n====\n";
80
3ab0df073c86 Add support for "slim", which is "stem" + removal of some exports and checking of import details
William Roberts <williamr@symbian.org>
parents: 78
diff changeset
   573
	printf FILE "Minimum ROM now has %d exes\n", scalar keys %must_have_exes;
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
   574
	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
   575
		{
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
   576
		my ($count,$exe) = split /\s+/, $deletion_root;
78
7271390ae2c2 Remember more information from rom_content.csv, to add IBY and package information to filter.log
William Roberts <williamr@symbian.org>
parents: 77
diff changeset
   577
		printf FILE "Remove %d files by deleting %s (%s)\n", $count, $exe, $rom_origins{$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
   578
		}	
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
   579
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
   580
	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
   581
	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
   582
		{
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
   583
		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
   584
		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
   585
		}
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
   586
	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
   587
	}
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
   588