cvsdist 8d2da45
#!/usr/bin/perl -w
cvsdist 8d2da45
use strict;
cvsdist 8d2da45
cvsdist 3b54367
my ($arch, $patfile, $infile, $outfile, $libdir, $thread_arch) = @ARGV;
cvsdist 8d2da45
cvsdist 3b54367
if (not $arch or not $patfile or not $infile or not $outfile or not $libdir) {
cvsdist 3b54367
  die "Usage: $0 arch thread_arch pattern-file in-file out-file libdir [ threadarch ]";
cvsdist 8d2da45
}
cvsdist 8d2da45
cvsdist 8d2da45
$thread_arch ||= '';
cvsdist 8d2da45
cvsdist 8d2da45
open IN, "<$infile"
cvsdist 8d2da45
  or die "Can't open $infile: $!";
cvsdist 8d2da45
open OUT, ">$outfile"
cvsdist 8d2da45
  or die "Can't open $outfile: $!";
cvsdist 8d2da45
open PATTERN, "<$patfile"
cvsdist 8d2da45
  or die "Can't open $patfile: $!";
cvsdist 8d2da45
cvsdist 8d2da45
my @patterns = <PATTERN>;
cvsdist 8d2da45
chomp @patterns;
cvsdist 8d2da45
for my $p (@patterns) {
cvsdist 3b54367
  $p =~ s/%{_libdir}/$libdir/g;
cvsdist 8d2da45
  $p =~ s/%{_arch}/$arch/g;
cvsdist 8d2da45
  $p =~ s/%{thread_arch}/$thread_arch/g;
cvsdist 8d2da45
}
cvsdist 8d2da45
cvsdist 8d2da45
my %exclude = map { $_ => 1 } @patterns;
cvsdist 8d2da45
cvsdist 8d2da45
close PATTERN;
cvsdist 8d2da45
cvsdist 8d2da45
while(<IN>) {
cvsdist 8d2da45
  chomp;
cvsdist 8d2da45
cvsdist 8d2da45
  print OUT "$_\n"
cvsdist 8d2da45
    unless exists $exclude{$_}
cvsdist 8d2da45
}
cvsdist 8d2da45
cvsdist 8d2da45
close IN;
cvsdist 8d2da45
close OUT;