summaryrefslogtreecommitdiff
path: root/Build/source/mswin32/minimal-perl.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/mswin32/minimal-perl.pl')
-rw-r--r--Build/source/mswin32/minimal-perl.pl86
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);
+
+}