sub update_from_so { my ($site, $so, $verbose) = @_; my @so = split /\n/, $so; my %so2f; for my $so (@so) { $_ = $so; chomp; s!\./auto/!!; s!(/([^/]+))/\2\.so!$1!; s!/!-!; if ($verbose) { print "Looking for $_...\n"; } my ($dir, $file) = module_to_file ($_); if ($verbose) { print "Found $_ as '$dir/$file'\n"; } if (! -f $file) { my $cwd = getcwd (); chdir $dir or die $!; do_system ("./build.pl -d"); if (! -f $file) { die "Could not recreate file $file\n"; } chdir $cwd or die $!; } $so2f{$so} = [$dir, $file]; } for my $so (@so) { my ($dir, $file) = @{$so2f{$so}}; my $cwd = getcwd (); chdir $dir or die $!; if (! -f $file) { die "$dir: No $file"; } do_system ("$site-module-build.pl $file"); chdir $cwd or die $!; } }