diff options
Diffstat (limited to 'Build/source/mswin32/minimal-perl.pl')
-rw-r--r-- | Build/source/mswin32/minimal-perl.pl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/Build/source/mswin32/minimal-perl.pl b/Build/source/mswin32/minimal-perl.pl new file mode 100644 index 00000000000..d67ab11c00c --- /dev/null +++ b/Build/source/mswin32/minimal-perl.pl @@ -0,0 +1,86 @@ +# +# Install a minimal perl based on a list of files generated +# by the PerlApp compiler +# Author: F. Popineau +# Date : 04/11/98 +# Time-stamp: <03/08/20 15:24:57 popineau> +# +# + +BEGIN { +push @INC, 'c:/source/TeXLive/Master/Tools'; +} + +require "newgetopt.pl"; +use FileUtils; +use Tpm; +use Cwd; + +my $source_perl_dir = "c:/Local/Perl"; +my $source_tcl_dir = "c:/Local/tcl"; +# my $dest_perl_dir = ${Tpm::MasterDir} . "/xemtex/perl"; +my $dest_bin_dir = "c:/Program Files/TeXLive/bin/win32"; +my $dest_perl_dir = "c:/Program Files/TeXLive/xemtex/perl"; +my $perlfilesname = "c:/source/fptex/mswin32/perlfiles.lst"; +my $perlfilesnode; + +my @perlfiles; + +my %binaries = ( + "$source_perl_dir/bin" => [ "perl.exe", "perl58.dll" ], + "$source_tcl_dir/bin" => [ "tk83.dll" ] + ); + +&main; + +1; + +sub restrict_perl { + + my ($dir, $dst, @files) = @_; + my $node = $perlfilesnode; + + $dir =~ s@^\.@@; + $dir =~ s@\\@/@g; + $dir =~ s@^/@@; + + my @path = split "/", $dir; + + while (@path) { + $node = $node->{shift @path}; + } + + @files = keys %{$node}; +# print "files = @files\n"; + return @files; +} + +sub main { + + for my $dir (keys %binaries) { + print "dir = $dir\n"; + for my $f (@{$binaries{$dir}}) { + print "f = $f\n"; + if (&FileUtils::newer("$dir/$f", "${dest_bin_dir}/$f")) { + &FileUtils::copy ("$dir/$f", "${dest_bin_dir}/$f"); + &FileUtils::set_file_time("$dir/$f", "${dest_bin_dir}/$f"); + + } + } + } + + open IN, "<${perlfilesname}"; + while (<IN>) { + chomp; + if (/^ file:\s*c:\\Local(\\ActiveState)?\\Perl/) { + $_ =~ s/^ file:\s+c:\\Local(\\ActiveState)?\\Perl\\//; + $perlfiles{$_} = $_; + } + } + close IN; + @perlfiles = sort(keys %perlfiles); + $perlfilesnode = &FileUtils::build_tree(@perlfiles); + + &FileUtils::sync_dir($source_perl_dir, $dest_perl_dir, \&restrict_perl, "", 0, 0, 0); + +} |