diff options
22 files changed, 4228 insertions, 0 deletions
diff --git a/Build/source/mswin32/add-info-toc.pl b/Build/source/mswin32/add-info-toc.pl new file mode 100644 index 00000000000..4cd9899170b --- /dev/null +++ b/Build/source/mswin32/add-info-toc.pl @@ -0,0 +1,60 @@ +$dd = '/'; + +&main; + +exit 0; + +sub main { + local (@files); + @files = @ARGV; + $temp = &get_tmp_dir() . "ait.$$"; + open(OUT, ">$temp") || exit 1; + print OUT "Contents:\n\n"; + while (<>) { + $prevline = $line; + $line = $_; + if ($line =~ m/^\*+$/) { + print OUT "$prevline"; + } + elsif ($line =~ m/^=+$/) { + print OUT " $prevline"; + } + elsif ($line =~ m/^-+$/) { + print OUT " $prevline"; + } + elsif ($line =~ m/^\.+$/) { + print OUT " $prevline"; + } + } + print OUT "\n\n"; + @ARGV = @files; + while (<>) { + print OUT $_; + } + close (OUT); + open (IN, $temp); + open (OUT, ">$files[0]"); + binmode(IN); binmode(OUT); + local($/) = undef; + print OUT <IN>; + close(OUT); + close(IN); +} + +sub get_tmp_dir { + if (!($TMP)) { + local (@l) = ("TMPDIR", "TEMP", "TMP", "c${dd}tmp"); + local ($var, $dir); + foreach $var (@l) { + $dir = $ENV{$var}; + if (-d $dir) { + $TMP = $dir; + last; + } + } + } + $TMP =~ s/\\/$dd/g; + + if ($TMP =~ /$dd$/) { + } else { $TMP .= $dd } +} diff --git a/Build/source/mswin32/build.bat b/Build/source/mswin32/build.bat new file mode 100644 index 00000000000..2d15b2d89ef --- /dev/null +++ b/Build/source/mswin32/build.bat @@ -0,0 +1,44 @@ +taskkill /im:ispell.exe /f
+rem p4 sync -f //depot/Master/texmf/...
+rem rmdir /q/s "c:\program files\texlive\texmf"
+rem mkdir "c:\program files\texlive\texmf"
+rem xcopy c:\source\texlive\Master\texmf "c:\program files\texlive\texmf" /r/i/e/k
+rem perl ./sync.pl c:/source/texlive/Master/texmf "c:/Program Files/texlive/texmf"
+rem perl ./sync.pl c:/source/texlive/Master/texmf-dist "c:/Program Files/texlive/texmf-dist"
+rem perl ./sync.pl c:/source/texlive/Master/texmf-doc "c:/Program Files/texlive/texmf-doc"
+perl ./build.pl --distclean=tex --development
+perl ./build.pl --distclean=xemtex --development
+perl ./sync.pl --sources
+perl ./sync.pl --restrict --texmf
+rem pushd .. & ( \source\fptex\gnu\diffutils-2.7\dynamic\diff.exe -ruN -X mswin32\diff.exclude -x "*/texk.development/*" c:/source/TeXLive/Build/source/TeX ./ > diffs\tl-source-29.diff ) & popd
+rem pushd .. & ( \source\fptex\gnu\diffutils-2.7\dynamic\diff.exe -ruN -X mswin32\diff.exclude c:/source/TeXLive/Build/source.development/TeX/texk ./texk.development > diffs\tl-dev-29.diff ) & popd
+rem pushd .. & ( \source\fptex\gnu\diffutils-2.7\dynamic\diff.exe -ruN -X mswin32\diff.exclude ./texk ./texk.development > diffs\dev-29.diff ) & popd
+perl ./build.pl --build=tex --log=build.log --development
+perl ./build.pl --build=xemtex --log=xemtex.log --development
+perl ./build.pl --install=tex --log=install.log --from_scratch --development
+mktexlsr
+updmap
+fmtutil --all --dolinks --force
+perl ./build.pl --install=tex --log=install.log --development
+perl ./build.pl --install=xemtex --log=xemtex-install.log --development
+perl ./build.pl --standalone --development --log=standalone.developement.log
+perl ./sync.pl c:/progra~1/texlive/bin/win32 c:/source/texlive/Master/bin/win32
+perl ./sync.pl c:/progra~1/texlive/bin/win32-static c:/source/texlive/Master/bin/win32-static
+perl ./sync.pl --restrict c:/progra~1/texlive/xemtex c:/source/texlive/Master/xemtex
+perl ./sync.pl --restrict c:/progra~1/texlive/texmf c:/source/texlive/Master/texmf
+perl ./p4update.pl --update --subdir=Master/bin/win32
+perl ./p4update.pl --update --subdir=Master/bin/win32-static
+perl ./p4update.pl --update --subdir=Master/texmf
+perl ./p4update.pl --update --subdir=Master/xemtex
+pushd \source\texlive\Master\Tools
+rem perl ./tpm-factory.pl --clean --patterns=from --arch=all --type=TLCore
+rem perl ./tpm-factory.pl --clean --patterns=auto --arch=all --type=Package
+rem perl ./tpm-factory.pl --clean --patterns=auto --arch=all --type=Documentation
+rem perl ./tpm-factory.pl --check=dep --arch=all > dependencies.log
+rem perl ./tpm-factory.pl --check=cov --arch=all --type=TLCore > tlcore-coverage.log
+rem perl ./tpm-factory.pl --check=cov --arch=all --type=Package > package-coverage.log
+rem perl ./tpm-factory.pl --check=cov --arch=all --type=Documentation > documentation-coverage.log
+rem perl ./tpm-factory.pl --tpm2zip --arch=win32 --all
+rem perl ./tpm-factory.pl --tpm2zip=full --arch=win32-static --standalone
+popd
+
diff --git a/Build/source/mswin32/build.pl b/Build/source/mswin32/build.pl new file mode 100644 index 00000000000..14606ad76f9 --- /dev/null +++ b/Build/source/mswin32/build.pl @@ -0,0 +1,452 @@ +# +# Build tool for Web2C & supp +# Author: F. Popineau +# Date : 04/11/98 +# Time-stamp: <04/03/19 00:52:22 popineau> +# +# Usage: +# build <option> +# [--static] builds/cleans up statically +# [--debug] builds/cleans up in debug mode +# [--depend] updates dependencies +# [--clean] cleans up +# [--distclean] removes everything that can be rebuild (needs to configure again) +# [--dir <dir>] only in <dir> (relative to top !) +# [--install] installs what has been built (incompaible with clean up targets) +# [--from-scratch] full build, removes everything from the destination tree. +# [--log <file>] logs everything onto <file> +# +# Hope these options are clear enough. This is a wrapper to nmake calls. +# + +BEGIN { +push @INC, 'c:/source/TeXLive/Master/Tools'; +} + +require "newgetopt.pl"; +use lib qw (. ./msvc); +use FileUtils qw(canon_dir cleandir make_link newpath + normalize substitute_var_val dirname + rec_rmdir sync_dir walk_dir start_redirection + stop_redirection sync_dir); +use Tpm; +use Cwd; +use Time::gmtime; + +# list if functions to be called before nmake is run +@prepare_func_list = ( ); + +$fpTeXVersion = "0.7"; +$FtpDir = "c:/InetPub/ftp/fptex/$fpTeXVersion"; + +$Gm = gmtime(); +$Date = sprintf("%02d-%02d-%02d", $Gm->year() + 1900, $Gm->mon(), $Gm->wday()); +# root directory +$topdir = &dirname(cwd()); +$win32_dir = "$topdir/mswin32"; +$msvc_dir = "$topdir/texk/msvc"; +$tpmdir = "$win32_dir/factory/texmf-dist/tpm"; +$zipsrc_name = "$FtpDir/sources/fptex-$fpTeXVersion-$Date.zip"; +$destdir="c:/Program Files/TeXLive"; +$logfile = ""; + +# the directories for which we build standalone packages +# (aka: no DLL) +@src_standalone = ( "libs/libgnuw32", "libs/libgsw32", "libs/geturl", + "libs/zlib", "libs/libpng", "libs/jpeg", "libs/xpdf", + "utils/bzip2", "utils/gzip", "utils/jpeg2ps", + "texk/kpathsea", "texk/contrib", + "texk/web2c", + "texk/windvi", "texk/dvipsk", + "texk/odvipsk", "texk/owindvi", + "texk/gsftopk", "texk/tex4htk", + "texk/dvipdfm", "texk/dvipdfmx", + "utils/lcdf-typetools" + ); + +# list of directories in $(prefix) that will be created by nmake +# and that will be removed before anything if asking to install `from_scratch' +@fptex_dirs = ( "bin", "include", "lib", "setupw32" ); + +# directories that should not end up in the zip archive +# of sources +@zipsrc_exclude_dirs = ( + "/(dynamic|dynamic-debug|static|static-debug|Release|Debug)\$", + "/win32/(diff|setupw32|factory|ttfinst|worked-on)\$", + "/win32/(deutsch|english|fptex.old|french|labels|slovak|tds)\$", + "/utils/rxp-1.2\$", + "/texk/(ltx2rtf-old|windvi-0.68|texdoctk-0.3.0|texdoctk-0.4.0)\$" + ); + +@zipsrc_exclude_patterns = ( + "\.(obj|dll|exe|opt)\$", + "~\$" +); + + +&main; + +1; + +sub help +{ + print "Usage: build [options]\n"; + print "\n"; + print " --dir <path> Apply to the subdir <path> (relative);\n"; + print " --log <file> Redirect stdin and stderr in <file>\n"; + print " --static Build statically linked versions;\n"; + print " --debug Build debug versions;\n"; + print " --sync Sync up with master;\n"; + print " --standalone Build standalone packages (ie: static, nodebug);\n"; + print " --zipsrc(=clean) Build a source archive, (possibly cleaning the tree before);\n"; + print "\n"; + print " Targets :\n"; + print " <none> Compiles;\n"; + print " --clean Clean up last build (only compilation);\n"; + print " --distclean Clean up last build (everything, must configure again);\n"; + print " --build Build everything;\n"; + print " --install Install everything build;\n"; + print " These targets are exclusive !\n"; + print "\n"; + print " --from_scratch Use with --install and --build only,\n"; + print " will remove everything from <prefix> directory,\n"; + print " --prefix Used with --install only,\n"; + print " will change temporarily the <prefix> directory,\n"; + print "\n"; + print " Support commands:\n"; + print " --help displays this help text and exits\n"; + print " --verbose some more messages\n"; +} + +sub read_config_var +{ + local($file, $varname) = @_; + local($val); + open VER, "<$file"; + while (<VER>) { + if ($_ =~ m/^$varname\s*=\s*(.*)$/) { + $val = $1; + } + } + close VER; + return $val; +} + +sub make_absolute +{ + local ($rel) = @_; + local ($current, $abs); + $current = cwd(); + chdir $rel; + $abs = cwd(); + print "current = $current, rel = $rel, abs = $abs\n"; + chdir $current; + return $abs; +} + +sub from_scratch +{ + local ($d, $prefix, $l, $highest, $srcdir, $dstdir); + + $prefix = &read_config_var("$msvc_dir/paths.mak", "prefix"); + $prefix = &canon_dir($prefix, '\\'); + print "Prefix directory is $prefix .\n" if $opt_verbose; + + # Removing every fpTeX thing from prefix directory + foreach $d ( @fptex_dirs ) { + if (-d "$prefix\\$d") { + &cleandir("$prefix\\$d"); + rmdir "$prefix\\$d"; + } + } + + # Add an option to sync up with the TeXLive texmf tree +} + +sub mask_env { + $ENV{"SystemDrive"} = "foo"; + $ENV{"TEXMFCNF"} = "foo"; + $ENV{"TEXMFMAIN"} = "foo"; +# $ENV{"TEXMF"} = "foo"; + $ENV{"LATEX2HTML"} = "foo"; + $ENV{"GROFF_TMAC_PATH"}="foo"; + $ENV{"GROFF_FONT_PATH"}="foo"; +} + +sub ziplist { + my ($dir, @l) = @_; + $dir =~ s@\\@/@g; + map { + if (! -d "$dir/$_") { + for $pattern (@zipsrc_exclude_patterns) { + if ("$dir/$_" =~ m@$pattern@i) { + goto suivant; + } + } + print STDERR "$dir/$_\n" if ($opt_verbose); + print ZIP "$dir/$_\n"; + } + suivant: + } @l; +} + +sub zipprune { + my ($dir) = @_; + $dir =~ s@\\@/@g; + map { + if ($dir =~ m@$_@) { + print STDERR "Pruning $dir...\n" if ($opt_verbose); + return 1; + } + } @zipsrc_exclude_dirs; + return 0; +} + +sub do_zipsrc { + unlink $zipsrc_name if (-f $zipsrc_name); + open ZIP, "| zip -9\@or " . $zipsrc_name . " > nul"; + &walk_dir($topdir, \&ziplist, \&zipprune); + close ZIP; +} + +sub do_standalone { + local($cmd, $cwd); + + # make the static binaries needed + print STDERR "Installing in $prefix\n"; + + &mask_env; + + &start_redirection($logfile); + + my $devel_flag = " DEVELOPMENT=1 " if ($opt_development); + for $d (@src_standalone) { + $d =~ s/texk/texk.development/ if ($opt_development); + my $cwd = &getcwd; + print "Changing directory to $topdir/${d}\n" if $opt_verbose; + chdir("$topdir/${d}"); + $cmd = "nmake -f win32.mak NODEBUG=1 STATIC=1 ${devel_flag} all"; + print "Running $cmd\n" if $opt_verbose; + system($cmd); + $cmd = "nmake -f win32.mak NODEBUG=1 STATIC=1 ${devel_flag} install"; + print "Running $cmd\n" if $opt_verbose; + system($cmd); + chdir($cwd) + } + + &stop_redirection($logfile); +} + +sub do_sync { + + $cmd = "p4 sync"; + system($cmd); + + &sync_dir("$masterdir/texmf-dist", "$destdir/texmf-dist"); + &sync_dir("$masterdir/texmf", "$destdir/texmf"); + &sync_dir("$masterdir/texmf/web2c", "$destdir/texmf-var/web2c"); + +} + +sub main { + + local ($changed_prefix); + + unless (&NGetOpt ("static", "debug", + "clean", "distclean:s" , + "depend","from_scratch", + "build:s", "install:s", + "zipsrc:s", + "standalone", "sync", + "development", + "dir=s", "log=s", "prefix=s", + "verbose", "help")) + { + print STDERR "Try `configure --help'"; + exit 1; + } + + if ($opt_help) { + &help; + exit 0; + } + + $prefix = &read_config_var("$msvc_dir/paths.mak", "prefix"); + + if ($opt_log) { + $logfile = "$win32_dir\\$opt_log"; + if (! $opt_log =~ /\.log$/) { + $opt_log .= ".log"; + } + } + +# $topdir .= "/source"; +# if ($opt_development) { +# $topdir .= ".development"; +# } + +# $win32_dir = eval($win32_dir); +# $tpmdir = eval($tpmdir); + + if ($opt_standalone) { + &do_standalone; + exit 0; + } + + if (defined($opt_zipsrc) && $opt_zipsrc ne "clean") { + &do_zipsrc; + exit 0; + } + if (defined($opt_zipsrc) && $opt_zipsrc eq "clean") { + $opt_distclean = 1; + } + + # build the command line + $prog = "nmake -f win32.mak "; + $prog .= "verbose=on " if ($opt_verbose); + if ($opt_debug eq '') { + $prog .= "NODEBUG=1 "; + } + if ($opt_static) { + $prog .= "STATIC=1 "; + } + + if ($opt_development) { + $prog .= "DEVELOPMENT=1 "; + } + + if ($opt_depend) { + $prog .= "MAINT=1 "; + $target = "depend "; + } + if (defined($opt_build)) { + if ($target ne '') { + print "Conflicting targets : $target and build\n"; + return 1; + } + $target = "all "; + if ($opt_from_scratch) { + push @prepare_func_list , ( \&from_scratch ); + } + $target = "XEMTEX=1 $target" if ($opt_build =~ m/xemtex/i); + $target = "NETPBM=1 $target" if ($opt_build =~ m/^netpbm$/i); + $target = "GNU=1 $target" if ($opt_build =~ m/^gnu$/i); + print "target = $target\n"; + } + if (defined($opt_install)) { + if ($target ne '') { + print "Conflicting targets : $target and install\n"; + return 1; + } + $target = "install "; + if ($opt_from_scratch) { + push @prepare_func_list , ( \&from_scratch ); + } + $target = "XEMTEX=1 $target" if ($opt_install =~ m/xemtex/i); + $target = "NETPBM=1 $target" if ($opt_install =~ m/^netpbm$/i); + $target = "GNU=1 $target" if ($opt_install =~ m/^gnu$/i); + print "target = $target\n"; + } + if ($opt_clean) { + if ($target ne '') { + print "Conflicting targets : $target and clean\n"; + return 1; + } + $target = "clean "; + } + if (defined($opt_distclean)) { + if ($target ne '') { + print "Conflicting targets : $target and distclean\n"; + return 1; + } + $prog .= "MAINT=1 "; + $target = "distclean "; + $target = "XEMTEX=1 $target" if ($opt_distclean =~ m/xemtex/i); + $target = "NETPBM=1 $target" if ($opt_distclean =~ m/^netpbm$/i); + $target = "GNU=1 $target" if ($opt_distclean =~ m/^gnu$/i); + print "target = $target\n"; + } + + if ($target eq '') { + print "No target specified.\nEnd.\n"; + exit 0; + } + + if ($opt_prefix) { + if ($target ne "install ") { + print STDERR "$0: --prefix option ignored, wrong target.\n"; + } + elsif (! -d $opt_prefix) { + print STDERR "$0: $opt_prefix is not a directory, aborting.\n"; + exit 1; + } + else { + $opt_prefix = &normalize($opt_prefix); + if ($prefix ne $opt_prefix) { + print STDERR "Replacing prefix $prefix with $opt_prefix.\n"; + @old_prefix = &substitute_var_val("$msvc_dir/paths.mak", + "prefix", "$opt_prefix"); + $changed_prefix = 1; + $old_prefix = $prefix; + $prefix = $opt_prefix; + } + } + } + + print STDERR "Installing in $prefix\n"; + + &mask_env; + + $prog .= $target; + + $buildir = $topdir; + + if ($opt_dir) { + $buildir .= "\\$opt_dir"; + } + + print STDERR "buildir = $buildir\n"; + + if (-d $buildir) { + chdir $buildir; + } + else { + print "Non-existent dir: $opt_dir\n"; + return 1; + } + + # start redirection if asked + &start_redirection($logfile); + + if ($opt_sync) { + &do_sync; + } + + # Prepare functions + for $f (@prepare_func_list) { + if ($f) { + &{$f}; + } + } + + # Call the program + #`$prog`; + print STDOUT "Executing $prog in " . &getcwd . "\n"; + system($prog); + + # stop redirection + stop_redirection($logfile); + + chdir $topdir; + + if ($#old_prefix > -1) { + &substitute_var_val("$msvc_dir/paths.mk", + "prefix", shift @old_prefix); + } + + if ($opt_distclean && $opt_zipsrc) { + &do_zipsrc; + } + + print "This is the end!\n"; +} diff --git a/Build/source/mswin32/conf-cauto.pl b/Build/source/mswin32/conf-cauto.pl new file mode 100644 index 00000000000..a4f0f72b2b7 --- /dev/null +++ b/Build/source/mswin32/conf-cauto.pl @@ -0,0 +1,54 @@ +# +# Generate .h file from .in file +# Define or undefine features for the WIN32 platform +# + +use cauto; + +&main; + +exit(0); + +sub main { + local ($src, $dst); + + if (-f "$ARGV[0]" && $ARGV[0] =~ /(.*)\.in$/) { + $src = $ARGV[0]; + $dst = $1; + if ($ARGV[1] =~ /(.*)\.h$/) { + $dst = $ARGV[1]; + } + &cauto::configure_cauto($src, $dst); + } + else { + if (-f "./cauto.h.in") { + $src = "./cauto.h.in"; + $dst = "./cauto.h"; + &cauto::configure_cauto($src, $dst); + } + elsif (-f "./c-auto.in") { + $src = "./c-auto.in"; + $dst = "./c-auto.h"; + &cauto::configure_cauto($src, $dst); + } + + if (-f "./config.h.in") { + $src = "./config.h.in"; + $dst = "./config.h"; + &cauto::configure_cauto($src, $dst); + } + elsif (-f "./config.hin") { + $src = "./config.hin"; + $dst = "./config.h"; + &cauto::configure_cauto($src, $dst); + } + elsif (-f "./config.in") { + $src = "./config.in"; + $dst = "./config.h"; + &cauto::configure_cauto($src, $dst); + } + else { + print STDERR "No file to configure found!\n"; + } + } +} diff --git a/Build/source/mswin32/configure.pl b/Build/source/mswin32/configure.pl new file mode 100644 index 00000000000..f72a302ac19 --- /dev/null +++ b/Build/source/mswin32/configure.pl @@ -0,0 +1,767 @@ +# +# Configure tool for Web2C & supp +# Author: F. Popineau +# Date : 22/12/97 +# Time-stamp: <04/02/15 14:47:24 popineau> +# +# Usage: +# configure --import : will import Makefiles into the Win32 repository +# configure --prefix <texpath> --tools_prefix <toolspath> +# --verbose +# configure --help : gives some help usage + +use lib 'c:/source/TeXLive/Master/texmf-dist/tpm'; + +require "newgetopt.pl"; +# use diagnostics; +use FileUtils qw(dirname basename normalize walk_dir sort_uniq + member push_uniq remove_list + build_tree print_tree walk_tree cleandir + is_dirsep is_absolute canon_dir build_path + basename look_for ); +use cauto qw(configure_cauto $kpsever $web2cver); +use Cwd; + +# Repository for Makefiles and maybe others too +$win32_config_dir = "./win32/config/"; + +# Repository for .mak files +$win32_mk_dir = "./make/"; +#Repository for .rc files +$win32_rc_dir = "./rc/"; + +# List of configuration variables, to be looked for and replaced. +@config_vars = ('kpsemaj', 'kpsemin', 'kpsebeta', + 'web2cmaj', 'web2cmin', 'web2cbeta', + 'buildmaj', 'buildmin', 'buildbeta', 'buildgamma'); + +# Path under which we will run +# BEWARE : path size is limited, even under NT +@path_list = ( + # ensure that binaries from the current directory are used + '"./\$(objdir)"', + # kpathsea.dll from the build tree + '"\$(top_srcdir)/kpathsea/\$(objdir)"', + # current zlib? pnglib, tifflib and joglib for pdftex + '"\$(ZLIBDIR)/\$(objdir)"', + '"\$(PNGLIBDIR)/\$(objdir)"', + '"\$(TIFFLIBDIR)/\$(objdir)"', + '"\$(JPGLIBDIR)/\$(objdir)"', + # current tex engines + '"\$(top_srcdir)/web2c/\$(objdir)"', + # current makeinfo, install-info + '"\$(root_srcdir)/supp/texinfo/makeinfo/\$(objdir)"', + '"\$(root_srcdir)/supp/texinfo/util/\$(objdir)"', + # we still need to run tex & co at some point during the installation +# '$new_paths{prefix} . "/bin/win32"', + '"\$(prefix)/bin/win32"', + # GNU tools +# '$new_paths{toolsprefix} . "/bin"', + '"\$(toolsprefix)/bin"', + # compiler, because the PATH in win32.mak will override the + # one in the environment + '$ENV{"MSDEVDIR"} . "/../../VC98/Bin"', + '$ENV{"MSDEVDIR"} . "/Bin"', + 'dirname($new_paths{prefix}) . "/perl/bin"', + # Windows by itself ! + '$ENV{"SYSTEMROOT"}. "/System32"', + '$ENV{"SYSTEMROOT"}', + # '$ENV{"NTRESKIT"}', + ); + +$vernumreg = "-(v)?[0-9]+(\.[0-9]+)*([a-z0-9]*)?"; + +# List of directories to exclude from installation +@config_exclude_paths = ( '"./gnu"', + # '"./InstallShield/etex-win32"', + # '"./pdftex-win32"', + # '"./xdvi-win32"', + '"./Native"', + '"./dialog"', + '"./InstallShield"', + '"./doc/tug99"', + '"./doc/gut99"', + '"./doc/mpost"', + '"./supp/Setup"', + '"./libs/libttfVERNUM/arch/amigaos"', + '"./libs/libttfVERNUM/arch/msdos"', + '"./libs/libttfVERNUM/arch/os2"', + '"./libs/libttfVERNUM/arch/unix"', + '"./libs/libwwwVERNUM/cvs2sql"', + '"./libs/libwwwVERNUM/examples"', + '"./libs/libwwwVERNUM/External"', + '"./libs/libwwwVERNUM/User"', + '"./libs/libwwwVERNUM/vms"', + '"./libs/libwwwVERNUM/windows"', + '"./libs/w3c-libwwwVERNUM"', + '"./supp/gzipVERNUM/amiga"', + '"./supp/gzipVERNUM/atari"', + '"./supp/gzipVERNUM/msdos"', + '"./supp/gzipVERNUM/nt"', + '"./supp/gzipVERNUM/os2"', + '"./supp/gzipVERNUM/vms"', + '"./supp/ttf2pk/data"', + '"./supp/ttf2pk/scripts"', + '"./supp/ttfdump/docs"', + '"./supp/ttfdump/include"', + '"./supp/french"', + '"./supp/installVERNUM"', + '"./supp/texconfig"', + '"./supp/xindyk"', + '"./supp/texinfo/info"', + '"./supp/texinfo/emacs"', + '"./supp/texinfo/po"', + '"./supp/texinfo/intl"', + '"./supp/tiffVERNUM"', + '"./supp/tiffVERNUM/contrib"', + '"./supp/tiffVERNUM/html"', + '"./supp/tiffVERNUM/ports"', + '"./supp/tiffVERNUM/man"', + '"./supp/tiffVERNUM/contrib/acorn"', + '"./supp/xdvikVERNUM"', + '"./supp/xdvik.new"', + '"./libs/gifreaderVERNUM"', + '"./libs/jpegVERNUM"', + '"./libs/zlibVERNUM/amiga"', + '"./libs/zlibVERNUM/contrib"', + '"./libs/zlibVERNUM/msdos"', + '"./libs/zlibVERNUM/nt"', + '"./libs/zlibVERNUM/os2"', + '"./libs/xpdfVERNUM/ltk"', + '"./todo"', + '"./upgrades"', + '"./share"', + '"./win32"', + '"./win32/config"', + '"./win32/winmake"', + '"./win32/def"', + '"./win32/rc"', + '"./win32/sed"', + '"./win32/perl"', + 'basename($web2cdir) . "/djgpp"', + 'basename($web2cdir) . "/contrib/glob"', + 'basename($web2cdir) . "/contrib/regex"', + 'basename($web2cdir) . "/dviljk/fonts"', + 'basename($web2cdir) . "/dvipdfm/latex-support"', + 'basename($web2cdir) . "/dvipsk/vms"', + 'basename($web2cdir) . "/dvipsk/vmcms"', + 'basename($web2cdir) . "/libwww"', + 'basename($web2cdir) . "/ps2pk16beta1a"', + 'basename($web2cdir) . "/oxdvik"', + 'basename($web2cdir) . "/share"', + 'basename($web2cdir) . "/tetex"', + 'basename($web2cdir) . "/texlive"', + 'basename($web2cdir) . "/web2c/tiedir"', + 'basename($web2cdir) . "/xdvik"', + '"dynamic"', '"dynamic-debug"', + '"static"', '"static-debug"'); + +# A-List of {variable, pathname} to be replaced. +%config_paths = ('root_srcdir' => 'version_make', + 'prefix' => 'paths_make', + 'toolsprefix' => 'version_make', + 'texmf' => 'paths_make', + 'BOUNDSCHECKER' => 'version_make', + 'PATH' => 'version_make', + 'SystemDrive' => 'version_make', + # 'MSDevDir' => 'version_make', + # 'TEXMFMAIN' => 'version_make', + # 'TEXMF' => 'version_make' + ); + +# List of tools to be checked. Each tool has a make variable with +# the same name capitalized (SED = c:\bin\sed.exe). +# If a name has an association, use it (builtin commands). +%tools = ('tr' => '', + 'sed' => '', + 'grep' => '', + 'diff -u' => '', + 'makedepend -Y' => '', + 'perl' => '', + 'echo' => 'echo', + 'cp' => 'copy', + 'touch' => '', + 'rm' => 'del /f/q', + 'mv' => 'copy', + ); + +&main; + +exit 0; + + +sub dir_match + { + local ($d1, $d2) = @_; + local ($e1, $e2, $ret); + $e1 = quotemeta(&canon_dir($d1)); + $e1 =~ s/VERNUM/$vernumreg/g; + # $e1 = &canon_dir($d1); + $e2 = &canon_dir($d2); + $ret = ($e2 =~ m/$e1/); + # if ($ret) { print "dir_match : $d1 & $d2\n-> $e1 & $e2 = $ret\n"; } + return $ret; + } + +# Rename source into destination, backuping the source. +sub rename + { + local ($src, $dest) = @_; + print STDERR "Renaming $src -> $dest\n" if $opt_verbose; + # under Win32, better to ensure that $dest does not exist anymore. + if (-f $dest) { + unlink ("$dest.backup"); + rename ($dest, "$dest.backup"); + } + rename ($src, $dest); + } + +# Move source to dest, dest may be a directory +sub move + { + local ($src, $dest) = @_; + print STDERR "Moving $src -> $dest\n" if $opt_verbose; + die "Copy : source file $src does not exist.\n" + unless (-f $src); + die "Copy : destination file $dest does not exist.\n" + unless (-f $src || -d $src); + if (-d $dest) { + $dest = &build_path($dest, &basename($src)); + } + if (-f $dest) { + &rename($dest, "$dest.backup"); + } + ©($src, $dest); + unlink($src); + } + +# Copy source to dest +sub copy + { + local ($src, $dest) = @_; + + print "Copying $src to $dest\n" if ($opt_verbose); + + die "Copy : source file $src does not exist.\n" + unless (-f $src); + # die "Copy : destination file $dest does not exist.\n" + # unless (-f $dest || -d $dest); + if (-d $dest) { + $dest = &build_path($dest, &basename($src)); + } + open IN, "<$src"; + open OUT, ">$dest"; + binmode(IN); + binmode(OUT); + print OUT <IN>; + close(IN); + close(OUT); + } + +# Copy a text file filtering lines as stated by the filter function +sub copy_filter + { + # these variables must have a lexical scope, so + # will be hopefully available in the filter function + local ($src, $dest, $filter) = @_; + local ($line, $num); + + print "Copying $src to $dest with filtering\n" if ($opt_verbose); + + die "Copy : source file $src does not exist.\n" + unless (-f $src); + if (-d $dest) { + $dest = &build_path($dest, &basename($src)); + } + open IN, "<$src"; + open OUT, ">$dest"; + $num = 0; + while (<IN>) { + $line = &{$filter}($_); + print OUT $line; + $num = $num + 1; + } + close(IN); + close(OUT); + + } + +# Test if f1 is newer than f2 +sub newer + { + local ($f1, $f2) = @_; + local ($d1, $d2, $res); + @d1 = stat($f1); $d1 = $d1[9]; + @d2 = stat($f2); $d2 = $d2[9]; + $res = 0; + if ($#d1 == 0) { + $res = 0; + } + if ($#d2 == 0 ) { + $res = 1; + } + $res = $d1 > $d2; + + if ($res) { + print "Warning: $f1 is newer than $f2.\n"; + } + return($res); + } + +# What this script does... +sub help + { + print "Usage: configure [options]\n"; + print "\n"; + print " --prefix <path> sets the root tree at <path>;\n"; + print " assumes TeX will be in \n"; + print " <path>\TeX\{bin,include,lib,share}\n"; + print " --tools_prefix <tools-path> sets the tools tree at <tools-path>\n"; + print " assumes the other tools will be in \n"; + print " <tools-path>\{bin,include,lib,share}\n"; + print " It is expected that flex, bison, sed, gawk, makedepend and groff will\n"; + print " be found in <tools-path>. If you do not have them, check the following\n"; + print " adress :\n"; + print " <CTAN>/systems/win32/fptex/gnutools-1.1-win32.zip\n"; + print " The whole package can only be build reliably under NT (because of\n"; + print " batch commands) and using Visual Studio .Net\n"; + print " This is the currrent release and I won't make any effort supporting\n"; + print " previous versions.\n"; + print " Be careful that some global optimizations of `cl' are removed by hand\n"; + print " in `convert.bat' and are specific to each version of `cl'\n"; + print " Last but not least, it is expected that a some texmf tree be found\n"; + print " in <path>/texmf.\n"; + print " \n"; + print " Using this normal mode will copy/update/check the configuration files\n"; + print " to make the distribution ready for compilation.\n"; + print " Kpathsea and Web2C version numbers are guessed from their\n"; + print " configure.in files, looked for in the highest web2c-xx.yyzz directory\n"; + print " found. There should be no problem if the distribution\n"; + print " is consistent.\n"; + print " After that, type :\n"; + print " perl ./build.pl --install --log=install.log\n"; + print " and wait...\n"; + print "\n"; + print " Support commands:\n"; + print " --help displays this help text and exits\n"; + # print " --makedist will assemble a new release\n"; + } + +# Read current config variables from the file +sub read_current + { + local($file) = @_; + open VER, "<$file"; + while (<VER>) { + $line = $_; + foreach $v (@config_vars) { + if ($line =~ m/^$v\s*=\s*(.*)$/) { + $current_vars{$v} = $1; + } + } + } + close VER; + } + +# Read current paths from their files (path.mak, w2cwin32.mak) +sub read_paths + { + local ($k,$p); + foreach $k (keys %config_paths) { + @p = ($k, eval "\$$config_paths{$k}"); + open IN, "<$p[1]"; + while (<IN>) { + if (/^$p[0]\s*=\s*(.*)$/) { + $current_paths{$p[0]} = $1; + } + } + close IN; + } + } + +# Display current configuration variables +sub print_current + { + foreach $v (@config_vars) { + print "$v = $current_vars{$v}\n"; + } + foreach $k (keys %config_paths) { + @p = ($k, eval "\$$config_paths{$k}"); + print "$k = $current_paths{$k}\n"; + } + } + +# Write current configuration variables (into w2cwin32.mak, argument) +sub write_current + { + local($file) = @_; + open VERIN, "<$file"; + open VEROUT, ">$file.tmp"; + + while (<VERIN>) { + $line = $_; + foreach $v (@config_vars) { + if ($line =~ s,^$v\s*=\s*(\S*)$,$v = $current_vars{$v},) { + print "$v was $1, is $current_vars{$v}\n" if ($opt_verbose); + } + } + print VEROUT $line; + if ($line !~ m/\n$/) { print VEROUT "\n"; } + } + + close VERIN; + close VEROUT; + &rename("$file.tmp", "$file"); + } + +# Write current paths into their files. +# Beware to the logic: each file must be open only once. +sub write_paths + { + local ($k,$p); + + @lv = &sort_uniq(values %config_paths); + # foreach file (values of the hash config_paths) + foreach $v (@lv) { + $filename = eval("\$$v"); + open IN, "<$filename"; + open OUT, ">$filename.tmp"; + @p = (); + # which keys $k have value $v ? + foreach $k (keys %config_paths) { + if ($config_paths{$k} eq $v) { + push @p, ($k); + } + } + # foreach line in the file + while (<IN>) { + $line = $_; + foreach $k (@p) { + if ($line =~ s,^$k\s*=\s*(.*)$,$k = $current_paths{$k},) { + print "$k was $1, is $current_paths{$k}\n" if ($opt_verbose); + } + } + print OUT $line; + } + close IN; + close OUT; + &rename ("$filename.tmp", "$filename"); + } + } + +# Rewrite the resources common include file, using a template +# (w2cversion.h built using w2cversion.in) +sub write_res + { + local($fout) = @_; + local($fin, $line); + $fin = $fout; + $fin =~ s/^(.*)\.h$/$1.in/; + # print "Res: $fin -> $fout\n"; + open IN, "<$fin"; + open OUT, ">$fout"; + while (<IN>) { + $line = $_; + foreach $v (@config_vars) { + $line =~ s/\@$v\@/$current_vars{$v}/g; + } + print OUT $line; + } + close IN; + close OUT; + } + +# Put win32 configuration files where expected +sub export_config + { + local ($dest) = @_; + $d = cwd(); + chdir $dest; + # FIXME: add a pointer to the block to execute + &walk_dir (".", \&export_files, \&prune_make); + chdir $d; + } + +# Test if $dir is matched by one of the list' element. +# Also, remove any directory with some version number (-xx.yy) +sub prune_make + { + local ($d) = @_; + local ($e, $ret); + foreach $e (@config_exclude_paths) { + if (&dir_match(eval($e), $d)) { + print "Pruning $d because of $e\n" if ($opt_verbose); + return 1; + } + } + return 0; + } + +sub export_files + { + local ($dir, @l) = @_; + local ($src, $f, $make_done, $cauto_done); + + # $make_done = 1; + $cauto_done = 0; + + foreach $f (@l) { + # There are also c-auto.h to export + if (! $cauto_done + && $dir !~ m@^\.(\\|/)win32$@ + && $f =~ /^(c-auto|config)(\.h)?\.in$/) { + $cauto_done = 1; + &configure_cauto("$dir/$f", "$dir/$1.h"); + } + } + } + +## +## Packages handling +## + +# Zip one package +sub makepkg + { + + } + +# builds the distribution +sub makedist + { + local($pkg) = @_; + if ($pkg eq "") { + # make all packages + foreach $pkg (<pkg/*.pkg>) { + &makepkg($pkg); + } + } + else { + &makepkg($pkg); + } + } + +# +# Guess web2cver and kpsever by looking at configure.in +# in web2c-xx.yyzz/kpathsea and web2c-xx.yyzz/web2c +# + +sub guess_web2c_version + { + local($ret); + $ret = 0; + $kpsever = &look_for('KPSEVERSION', "$rootdir/texk/kpathsea/configure.in"); + if ($kpsever =~ /^([0-9]+)\.([0-9])+(\.?)(.*)$/) { + $new_vars{'kpsemaj'} = $1; + $new_vars{'kpsemin'} = $2; + $new_vars{'kpsebeta'} = $4; + print "$0: Using kpathsea version $1.$2$3$4\n"; + $ret = 1; + } + else { + print "$0: can't guess what Kpathsea version you are using.\ +Please set the version numbers for Kpathsea in $win32_mk_dir/w2cwin32.mak\n"; + } + $web2cver = &look_for('WEB2CVERSION', "$rootdir/texk/web2c/configure.in"); + if ($web2cver =~ /^([0-9]+)\.([0-9])+(\.?)(.*)$/) { + $new_vars{'web2cmaj'} = $1; + $new_vars{'web2cmin'} = $2; + $new_vars{'web2cbeta'} = $4; + print "$0: Using Web2C version $1.$2$3$4.\n"; + $ret = 1; + } + else { + print "$0: can't guess what Web2C version you are using.\ +Please set the version numbers for Web2C in $win32_mk_dir/w2cwin32.mak\n"; + } + return $ret; + } + +## +## Main program +## +sub main + { + unless (&NGetOpt ("help", + # "import", + # "kpsever=s", "web2cver=s", + # "newbuild=s", + "makedist:s", "prefix=s", + "tools_prefix=s", "verbose")) + { + print STDERR "Try `configure --help'"; + exit 1; + } + # Give help, exit immediately. + if ($opt_help) + { + help; + exit 0; + } + + # We need it early + $rootdir = dirname(cwd()); + + # Actual configuration thing. + $version_make = "$win32_mk_dir/w2cwin32.mak"; + $paths_make = "$win32_mk_dir/paths.mak"; + $version_res = "$win32_rc_dir/w2cversion.h"; + + # Update the version numbers using arguments. + + # read the current version numbers + $current_vars = &read_current($version_make); + # flag for checking arguments have been modified. + $current_modified = 0; + + $current_modified = &guess_web2c_version; + + $new_vars{'buildmaj'} = $new_vars{'web2cmaj'}; + $new_vars{'buildmin'} = $new_vars{'web2cmin'}; + if ($new_vars{'web2cbeta'} =~ /^alpha([0-9]+)$/) { + $new_vars{'buildmin'} = $new_vars{'buildmin'} - 1; + $new_vars{'buildbeta'} = 9800 + $1; + } + elsif ($new_vars{'web2cbeta'} =~ /^beta([0-9]+)$/) { + $new_vars{'buildmin'} = $new_vars{'buildmin'} - 1; + $new_vars{'buildbeta'} = 9900 + $1; + } + else { + $new_vars{'buildbeta'} = $new_vars{'web2cbeta'}; + if ($new_vars{'buildbeta'} eq '') { + $new_vars{'buildbeta'} = 0; + } + } + if ($new_vars{'buildmaj'} ne $current_vars{'buildmaj'} + || $new_vars{'buildmin'} ne $current_vars{'buildmin'} + || $new_vars{'buildbeta'} ne $current_vars{'buildbeta'}) { + $new_vars{'buildgamma'} = 0; + } + + $new_vars{'buildgamma'} = $new_vars{'buildgamma'} + 1; + $current_modified = 1; + + if ($current_modified != 0) { + # replace current version numbers by the new ones + foreach $v (@config_vars) { + print "$v, $new_vars{$v}\n" if ($opt_verbose); + $current_vars{$v} = $new_vars{$v}; + } + } + + $web2cdir = &build_path($rootdir, "texk"); + if (! -d $web2cdir) { + print "$0: no $web2cdir web2c directory !\n"; + exit 1; + } + + # Build the distribution. + if ($opt_makedist) { + &makedist($opt_makedist); + exit 0; + } + + # write the new version numbers + &write_current($version_make); + # and into the res file too. This one is taken from a + # template file (.in) + &write_res($version_res); + # While we are at it, change version numbers in c-auto.h too. + # &write_res($c_auto_h); + + # Paths + $current_modified = 0; + # TeX destiantion directory prefix + if ($opt_prefix) { + die "Prefix $opt_prefix must be absolute.\n" + unless &is_absolute($opt_prefix); + $new_paths{'prefix'} = &canon_dir($opt_prefix); + $current_modified = 1; + } + # prefix of the destination dir for other tools + if ($opt_tools_prefix) { + die "Tools prefix $opt_tools_prefix must be absolute.\n" + unless &is_absolute($opt_tools_prefix); + $new_paths{'toolsprefix'} = &canon_dir($opt_tools_prefix); + $current_modified = 1; + } + $new_paths{'root_srcdir'} = &canon_dir($rootdir); + # read the current value for configuration paths + &read_paths; + # check the root source directory + if ($current_paths{'root_srcdir'} cmp $rootdir) { + $current_modified = 1; + } + # TEXMF and TEXMCNF for documentation and formats + $prefix = $new_paths{'prefix'}; + if (! $prefix) { + $prefix = $current_paths{'prefix'}; + } + # look for a plausible texmf + $current_modified = 1; + # This is TeX Live && fpTeX + if (-d "$prefix/texmf") { + $new_paths{'TEXMF'} = &canon_dir("$prefix/texmf", '/'); + $new_paths{'texmf'} = &canon_dir('$(datadir)/texmf', '\\'); + } + # In case of ... + elsif (-d "$prefix/share/texmf") { + $new_paths{'TEXMF'} = &canon_dir("$prefix/share/texmf", '/'); + $new_paths{'texmf'} = &canon_dir('$(datadir)/share/texmf', '\\'); + } + else { + die "Can't find a plausible TEXMF.\n"; + } + + $new_paths{'SystemDrive'} = $ENV{"SYSTEMDRIVE"}; + # BoundsChecker, default location. + $new_paths{'BOUNDSCHECKER'} = $ENV{"SYSTEMDRIVE"} . "\\Program Files\\Numega\\BoundsChecker"; + # PATH: We need to change it because there is a limitation on size, + # and simply adding everything would overflow + $new_paths{'PATH'} = join ( ";", map {&canon_dir(eval($_))} @path_list ); + print "PATH = $new_paths{'PATH'}\n"; + $current_modified = 1; + if (-d "$prefix/share/texmf") { + $new_paths{'TEXMFMAIN'} = "$prefix/share/texmf"; + $current_modified = 1; + } + elsif (-d "$prefix/texmf") { + $new_paths{'TEXMFMAIN'} = "$prefix/texmf"; + $current_modified = 1; + } + else { + $new_paths{'TEXMFMAIN'} = $current_paths{'TEXMFMAIN'}; + $current_modified = 1; + } + if ($current_modified) { + # replace current paths by the new ones + foreach $p (keys %config_paths) { + if ($new_paths{$p}) { + print "$p, $new_paths{$p}\n" if ($opt_verbose); + $current_paths{$p} = $new_paths{$p}; + } + } + # rewrite the paths + &write_paths; + } + + # Generate c-auto.h/config.h/whatever in each directory + &export_config($rootdir); + + # install any newer version of texinfo.tex + $new_texinfo = "$web2cdir/etc/texinfo.tex"; + $installed_texinfo = $new_paths{'TEXMFMAIN'} . "/tex/texinfo/texinfo.tex"; + if (!( -f $installed_texinfo) || &newer($new_texinfo, $installed_texinfo)) { + ©($new_texinfo, $installed_texinfo); + print "Copying $new_texinfo to $installed_texinfo.\n"; + } + + # We could also verify that all the tools needed may be found + # &check_tools($version_make) + + print "The distribution is ready for compiling.\n"; + print "You still have compilation options :\n"; + print "The prefered way is 'nmake NODEBUG=1 install'\n"; + print "but you may have a look at $version_make for other options.\n"; + +} diff --git a/Build/source/mswin32/diff.exclude b/Build/source/mswin32/diff.exclude new file mode 100644 index 00000000000..2bf156489d1 --- /dev/null +++ b/Build/source/mswin32/diff.exclude @@ -0,0 +1,78 @@ +*.dll +*.exe +*.obj +*.orig +*.pdb +*.rej +*/.cvsignore +*/CVS/* +*/diffs/* +*/dynamic-debug/* +*/dynamic/* +*/gnu/* +*/graphics/* +*/gstools/* +*/libs/T1/* +*/libs/expat/* +*/libs/freetype2/* +*/libs/geturl-new/* +*/libs/geturl/* +*/libs/gifreader/* +*/libs/libttf/* +*/libs/unzip/* +*/mswin32/* +*/perl/* +*/static-debug/* +*/static/* +*/texk/cweb/* +*/texk/cwebk/* +*/texk/dvipdfm/config.h +*/texk/dvipdfm/latex-support/* +*/texk/dvipsk/dvips.info* +*/texk/kpathsea-fp/* +*/texk/kpathsea/kpathsea.cps +*/texk/kpathsea/kpathsea.info* +*/texk/kpse*/* +*/texk/kpse-shared* +*/texk/kpse-shared/* +*/texk/kpsexx/* +*/texk/msvc/*.log +*/texk/msvc/factory +*/texk/msvc/setupw32/* +*/texk/tetex/latex.info* +*/texk/ttfdump/docs/ttfdump.dvi +*/texk/ttfdump/docs/ttfdump.html +*/texk/tth/* +*/texk/web2c/cwebdir/*-w32.ch +*/texk/web2c/doc/web2c.cps +*/texk/web2c/doc/web2c.info* +*/texk/web2c/enctex/* +*/texk/web2c/eomegadir-1.23/* +*/texk/web2c/eomegadir-1.15/* +*/texk/web2c/eomegadir-new/* +*/texk/web2c/eotrip/* +*/texk/windvi-0.68/* +*/texk/gsftopk-new/* +*/texk/windvi-new/* +*/texk.development/gsftopk-new/* +*/texk.development/kpsexx/* +*/texk.development/windvi-new/* +*/texk.development/tth/* +*/texk.development/web2c/eomegadir-1.23/* +*/texk.development/web2c/eomegadir-1.15/* +*/texk.development/web2c/eotrip/* +*/texk.development/ttfdump/docs/ttfdump.dvi +*/texk.development/ttfdump/docs/ttfdump.html +*/utils/mminstance-1.23/* +*/utils/lcdf-typetools-*/* +*/utils/l2h-orig-orig/* +*/utils/l2h-orig-orig/* +*/utils/l2h-orig/* +*/utils/latex2html/* +*/utils/noweb/* +*/utils/src2tex/* +*/utils/texinfo/info/* +*/windvi-0.68/* +*/xemacs/* +*/backup/* +*~ diff --git a/Build/source/mswin32/fix-depend.pl b/Build/source/mswin32/fix-depend.pl new file mode 100644 index 00000000000..a57a16e76f5 --- /dev/null +++ b/Build/source/mswin32/fix-depend.pl @@ -0,0 +1,66 @@ +# +# Split makedepend generated lines +# to get at most one dependency per line +# to facilitate diffs +# +my $line; +my $depline; +my $target; +my @dep; +my %dependencies; +my @preamble; +my @postamble; +my @unmatched; + +while (<>) { + chomp; + $line = $_; + if ($line =~ m/^#/) { + if (keys %dependencies) { + push @postamble, $line; + } + else { + push @preamble, $line; + } + break; + } + elsif ($line =~ m/^([^\s].*):\s+(.*)$/) { + # new dependency + $target = $1; + push @{$dependencies{$target}}, $2; + break; + } + elsif ($line =~ m/^\s+(.*)\s+\\$/) { + # continuation + push @{$dependencies{$target}}, $1; + break; + } + elsif ($line =~ m/^\s+(.*)$/) { + # final + push @{$dependencies{$target}}, $1; + break; + } + else { + if ($line =~ m/[^\s]/) { + push @unmatched, $line; + } + } + +} + +END { + map { print "$_\n"; } @preamble; + map { + print "$_: \\\n"; + $depline = join (" ", @{$dependencies{$_}}); + my @dep = split("[ \t]", $depline); + @dep = grep { $_ !~ m/^(\s*|\s*\\)$/ } @dep; + $depline = join " \\\n\t", @dep; + $depline = "\t" . $depline . "\n"; + print $depline; + # skip one line + print "\n"; + } (keys %dependencies); + map { print "$_\n"; } @postamble; + map { print STDERR "unmatched: $_\n"; } @unmatched; +} diff --git a/Build/source/mswin32/fix-eol.bat b/Build/source/mswin32/fix-eol.bat new file mode 100644 index 00000000000..51a893216b4 --- /dev/null +++ b/Build/source/mswin32/fix-eol.bat @@ -0,0 +1,8 @@ +@echo off
+pushd \source\texlive\Build\source.development\TeX\texk\web2c
+rem dir /s/b *.c *.cc *.h *.ch *.ch0 *.ch1 *.ch2 *.mak *.in *.am *.defines | perl \source\fptex\mswin32\global-replace.pl --backup-dir=backup-eol "{ $a=chr(13); $_=~s/$a//g; }"
+rem cd \source\texlive\Build\source.development\TeX
+dir /s/b *.c *.cc *.h *.ch *.ch0 *.ch1 *.ch2 *.mak *.in *.am *.defines | perl \source\fptex\mswin32\global-replace.pl --backup-dir=backup-eol "{ $a=chr(13); $_=~s/$a//g; }"
+rem cd \source\texlive\Master\texmf\tpm
+rem dir /s/b *.tpm | perl \source\fptex\mswin32\global-replace.pl --backup-dir=backup-eol "{ $a=chr(13); $_=~s/$a//g; }"
+popd
diff --git a/Build/source/mswin32/fix-rman.pl b/Build/source/mswin32/fix-rman.pl new file mode 100644 index 00000000000..29bb0179e32 --- /dev/null +++ b/Build/source/mswin32/fix-rman.pl @@ -0,0 +1,32 @@ +# +# Purpose: create cross references through pages translated +# by Polyglottman. +# Author: F. Popineau +# Date : 10/10/98 +# Time-stamp: <03/05/16 00:28:07 popineau> +# +# Usage: +# rman -f HTML -n file.man file.man | perl fix-rman.pl > file.html +# + +require "newgetopt.pl"; + +&main; + +exit 0; + +sub main { + + unless (&NGetOpt ("title=s")) { + print STDERR "Usage: $0 --title=name\n"; + exit 1; + } + + while (<>) { + # lines to match : <B><A HREF="rman.c.rman.c">mktexmf</B>(1)</A> + $_ =~ s/<TITLE>..man.c\(..man.c\) manual page<\/TITLE>/<TITLE>$opt_title manual page<\/TITLE>/ ; + $_ =~ s/(.*)<A HREF="rman.c.rman.c">([A-z_0-9-]+)<\/B>\(1\)<\/A>(.*)/$1<A HREF="$2.html">$2<\/B>\(1\)<\/A>$3/ ; + print $_; + # $_ =~ s/(.*)<A HREF="rman.c.rman.c">([A-z_0-9-]+)<\/B>\(1\)<\/A>(.*)/ ; + } +} diff --git a/Build/source/mswin32/fix-win32.bat b/Build/source/mswin32/fix-win32.bat new file mode 100644 index 00000000000..b798e6ea8fa --- /dev/null +++ b/Build/source/mswin32/fix-win32.bat @@ -0,0 +1,4 @@ +rem @echo off
+rem dir /s/b *.tpm | perl \source\fptex\mswin32\global-replace.pl --line-mode --backup-dir=backup-win32 "{ $a=chr(10); $_=~s@^man/man(.)/([^\.]*)\.(.)@texmf/doc/man/man\1/\2.\3${a}texmf/doc/man/man\1/\2.html@; }"
+dir /s/b *.tpm | perl \source\fptex\mswin32\global-replace.pl --line-mode --backup-dir=backup-win32 "{ $a=chr(10); $_=~s@^${a}@@; }"
+rem popd
diff --git a/Build/source/mswin32/global-replace.pl b/Build/source/mswin32/global-replace.pl new file mode 100644 index 00000000000..b0bc9450d0f --- /dev/null +++ b/Build/source/mswin32/global-replace.pl @@ -0,0 +1,150 @@ +: #-*- Perl -*- + +### global-modify --- modify the contents of a file by a Perl expression + +## Copyright (C) 1999 Martin Buchholz. +## Copyright (C) 2001 Ben Wing. + +## Authors: Martin Buchholz <martin@xemacs.org>, Ben Wing <ben@xemacs.org> +## Maintainer: Ben Wing <ben@xemacs.org> +## Current Version: 1.0, May 5, 2001 + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with XEmacs; see the file COPYING. If not, write to the Free +# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +eval 'exec perl -w -S $0 ${1+"$@"}' + if 0; + +use strict; +use FileHandle; +use Carp; +use Getopt::Long; +use File::Basename; + +(my $myName = $0) =~ s@.*/@@; my $usage=" +Usage: $myName [--help] [--backup-dir=DIR] [--line-mode] [--hunk-mode] + PERLEXPR FILE ... + +Globally modify a file, either line by line or in one big hunk. + +Typical usage is like this: + +[with GNU print, GNU xargs: guaranteed to handle spaces, quotes, etc. + in file names] + +find . -name '*.[ch]' -print0 | xargs -0 $0 's/\bCONST\b/const/g'\n + +[with non-GNU print, xargs] + +find . -name '*.[ch]' -print | xargs $0 's/\bCONST\b/const/g'\n + + +The file is read in, either line by line (with --line-mode specified) +or in one big hunk (with --hunk-mode specified; it's the default), and +the Perl expression is then evalled with \$_ set to the line or hunk of +text, including the terminating newline if there is one. It should +destructively modify the value there, storing the changed result in \$_. + +Files in which any modifications are made are backed up to the directory +specified using --backup-dir, or to `backup' by default. To disable this, +use --backup-dir= with no argument. + +Hunk mode is the default because it is MUCH MUCH faster than line-by-line. +Use line-by-line only when it matters, e.g. you want to do a replacement +only once per line (the default without the `g' argument). Conversely, +when using hunk mode, *ALWAYS* use `g'; otherwise, you will only make one +replacement in the entire file! +"; + +my %options = (); +$Getopt::Long::ignorecase = 0; +&GetOptions ( + \%options, + 'help', 'backup-dir=s', 'line-mode', 'hunk-mode', +); + +while (<STDIN>) { + chomp; + if (-f ) { + push @ARGV, $_; + } +} + +die $usage if $options{"help"} or @ARGV <= 1; +my $code = shift; + +die $usage if grep (-d || ! -w, @ARGV); + +sub SafeOpen { + open ((my $fh = new FileHandle), $_[0]); + binmode($fh); + confess "Can't open $_[0]: $!" if ! defined $fh; + return $fh; +} + +sub SafeClose { + close $_[0] or confess "Can't close $_[0]: $!"; +} + +sub FileContents { + my $fh = SafeOpen ("< $_[0]"); + my $olddollarslash = $/; + local $/ = undef; + my $contents = <$fh>; + $/ = $olddollarslash; + return $contents; +} + +sub WriteStringToFile { + my $fh = SafeOpen ("> $_[0]"); + binmode $fh; + print $fh $_[1] or confess "$_[0]: $!\n"; + SafeClose $fh; +} + +foreach my $file (@ARGV) { + my $changed_p = 0; + my $new_contents = ""; + if ($options{"line-mode"}) { + my $fh = SafeOpen $file; + while (<$fh>) { + my $save_line = $_; + eval $code; + $changed_p = 1 if $save_line ne $_; + $new_contents .= $_; + } + } else { + my $orig_contents = $_ = FileContents $file; + eval $code; + if ($_ ne $orig_contents) { + $changed_p = 1; + $new_contents = $_; + } + } + + if ($changed_p) { + my $backdir = $options{"backup-dir"}; + $backdir = "backup" if !defined ($backdir); + if ($backdir) { + my ($name, $path, $suffix) = fileparse ($file, ""); + my $backfulldir = $path . $backdir; + my $backfile = "$backfulldir/$name"; + mkdir $backfulldir, 0755 unless -d $backfulldir; + print "modifying $file (original saved in $backfile)\n"; + rename $file, $backfile; + } + WriteStringToFile ($file, $new_contents); + } +} 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); + +} diff --git a/Build/source/mswin32/modes-to-cfg.pl b/Build/source/mswin32/modes-to-cfg.pl new file mode 100644 index 00000000000..120ca5d3ddd --- /dev/null +++ b/Build/source/mswin32/modes-to-cfg.pl @@ -0,0 +1,44 @@ +# +# Perl script for processing modes.mf and build 2 char** +# initialized with modes and bpdi values. +# + +&main; + +1; + +sub main { + local($modes_file, $m, $dpi); + + $modes_file = `kpsewhich modes.mf`; + if ($modes_file eq "") { + print "Can't find modes.mf !\nAborting..."; + exit 1; + } + open IN, "<$modes_file"; + $m = ""; + while (<IN>) { + if ($_ =~ m/^mode_def\s+([^\s]+)\s+=\s+.*\\\[\s*(.*)\s*$/) { + $m = $1; + push @list_modes, $m; + push @list_desc, $2; + $count ++; + } + elsif ($_ =~ m/mode_param\s*\(\s*pixels_per_inch\s*,\s*([0-9\.]+)\s*\)/) { + $bdpi = $1; + push @list_bdpi, $bdpi; + } + } + close IN; + + # print lists + open OUT, ">mfmodes.h"; + print OUT "typedef struct _mfmode {\n\tchar *name;\n\tchar *bdpi;\n\tchar *desc;\n\t} mfmode;\n\n"; + print OUT "mfmode avail_modes[$count] = {\n"; + + for ($i = 0; $i < $count - 1; $i++) { + print OUT "\t{\"$list_modes[$i]\", \"$list_bdpi[$i]\", \"$list_desc[$i]\"},\n"; + } + print OUT "\t{\"$list_modes[$i]\", \"$list_bdpi[$i]\", \"$list_desc[$i]\"}\n\t};\n"; + +} diff --git a/Build/source/mswin32/newbuild.pl b/Build/source/mswin32/newbuild.pl new file mode 100644 index 00000000000..8b8549f3afa --- /dev/null +++ b/Build/source/mswin32/newbuild.pl @@ -0,0 +1,386 @@ +## newbuild.pl: prepare a TeXLive build -*- Perl -*- +## +## Copyright (C) 2002 Fabrice Popineau <Fabrice.Popineau@supelec.fr> +## derived from the MiKTeX newbuild.pl perl script +## +## This file is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published +## by the Free Software Foundation; either version 2, or (at your +## option) any later version. +## +## This file is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this file; if not, write to the Free Software +## Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, +## USA. + +use strict; +use Cwd; +use File::Path; +use File::Basename; +use Getopt::Long; +use File::DosGlob 'glob'; + +my $texlivesrcdir; +my $major_version_number; +my $minor_version_number; +my $version_string; +my $patch_number_str; +my $mscver; +my $opt_prefix; +my $opt_help; +my $opt_alpha; +my $opt_beta; +my $opt_offical; +my $opt_debug; +my $opt_tmdir; +my $opt_snapshot; +my $opt_official; +my $release_motto; +my $build_label; +my $build_special_str; +my $build_number; +my $state; +my $beta_number; +my $alpha_number; +my $build_date_str; +my $builder_name_str; +my $computer_name_str; +my $build_date; +my $patch_number; + +&main; +exit (0); + +############################################################################### +## help +############################################################################### + +sub help +{ + print <<EOF; +Usage: newbuild [OPTIONS] + --alpha initialize an alpha build + --beta initialize a beta build + --debug initialize a debug build + --help display this help text and exit + --official initialize an official build + --prefix=DIR install all files in DIR + --tmdir=DIR where Total Texlive is installed + --snapshot initialize a snapshot build +EOF +} + +############################################################################### +## make_version_h +############################################################################### + +sub make_version_h +{ + $version_string = $major_version_number; + + if ($minor_version_number > 0) + { + $version_string .= ".$minor_version_number"; + } + + $version_string .= $patch_number_str; + + if ($build_special_str) + { + $version_string .= " $build_special_str"; + } + + if ($state == 1) + { + $version_string .= " (snapshot build $build_number)"; + } + elsif ($state == 2) + { + $version_string .= " beta $beta_number"; + } + elsif ($state == 3) + { + $version_string .= " alpha $alpha_number"; + } + elsif ($state == 4) + { + $version_string .= " (debug build $build_number)"; + } + + my $version_h_filename = $texlivesrcdir . "./texlive-version.h"; + + open (VERSION_H, ">$version_h_filename"); + + print VERSION_H <<EOF; +/* Made by newbuild.pl; DO NOT EDIT !!! -*- C -*- */ +#ifndef VERSION__9C077E32_49F9_4a99_9A1F_3E4C4DB17C7D__INCLUDED_H_ +#define VERSION__9C077E32_49F9_4a99_9A1F_3E4C4DB17C7D__INCLUDED_H_ +#define TEXLIVE_PRODUCTNAME_STR "TeXLive" +#define TEXLIVE_COMPANYNAME_STR "TeX Users Group" +#define TEXLIVE_BUILD_COMMENT_STR "Build $build_number ($build_label); build date: $build_date_str; machine: $computer_name_str" +#define TEXLIVE_BUILD_DATE $build_date +#define TEXLIVE_BUILDERNAME_STR "$builder_name_str" +#define TEXLIVE_PRIVATEBUILD_STR "Built by $builder_name_str" +#define TEXLIVE_MAJOR_VERSION $major_version_number +#define TEXLIVE_MINOR_VERSION $minor_version_number +#define TEXLIVE_BETA_NUMBER $beta_number +#define TEXLIVE_BETA_NUMBER_STR "$beta_number" +#define TEXLIVE_ALPHA_NUMBER $alpha_number +#define TEXLIVE_ALPHA_NUMBER_STR "$alpha_number" +#define TEXLIVE_PATCH_NUMBER $patch_number +#define TEXLIVE_PATCH_NUMBER_STR "$patch_number_str" +#define TEXLIVE_BUILD_LABEL "$build_label" +#define TEXLIVE_BUILD_NUMBER $build_number +#define TEXLIVE_BUILD_SPECIAL_STR "$build_special_str" +#define TEXLIVE_MAJOR_VERSION_STR "$major_version_number" +#define TEXLIVE_MINOR_VERSION_STR "$minor_version_number" +#define TEXLIVE_BETA_VERSION_STR "$beta_number" +#define TEXLIVE_ALPHA_VERSION_STR "$alpha_number" +#define TEXLIVE_BUILD_NUMBER_STR "$build_number" +#define TEXLIVE_RELEASE_STATE $state +#define TEXLIVE_RELEASE_MOTTO_STR "$release_motto" +#define TEXLIVE_PRODUCTVERSION_STR "$version_string" +#define TEXLIVE_LIBRARYPREFIX_STR "tl$major_version_number$minor_version_number" +#ifndef TEXLIVE_LEGALCOPYRIGHT_STR +#define TEXLIVE_LEGALCOPYRIGHT_STR "Copyright (C) 1996-2003 Fabrice Popineau and the TeX Users Group" +#endif +#ifndef TEXLIVE_LEGALTRADEMARKS_STR +#define TEXLIVE_LEGALTRADEMARKS_STR "" +#endif +#endif +EOF + + close (VERSION_H); +} + +############################################################################### +## update_tpm_files +############################################################################### + +sub update_tpm_files +{ +# my $x; +# foreach $x (glob "tpm\\*.tpm") +# { +# open TPM, $x; +# open TPM_NEW, ">$x.new"; +# while (<TPM>) +# { +# s-<TPM:Version>.*</TPM:Version>-<TPM:Version>$version_string</TPM:Version>-; +# s-<TPM:Date>.*</TPM:Date>-<TPM:Date>$build_date_str</TPM:Date>-; +# print TPM_NEW $_; +# } +# close TPM_NEW; +# close TPM; +# unlink $x; +# rename "$x.new", $x; +# } +} + +############################################################################### +## mscver +############################################################################### + +sub mscver +{ + open MSCVER, ">mscver.c"; + print MSCVER <<EOF; +#include <stdio.h> +void main (void) { printf ("%d", _MSC_VER); } +EOF + close MSCVER; + system "cl /nologo mscver.c"; + $mscver = `mscver`; + unlink ("mscver.c"); + unlink ("mscver.obj"); + unlink ("mscver.exe"); +} + +############################################################################### +## write_paths_ini +############################################################################### + +# sub write_paths_ini +# { +# system "nmake -f texlive.mak configure" +# } + +############################################################################### +## main +############################################################################### + +sub main +{ + unless (GetOptions("alpha" => \$opt_alpha, + "beta" => \$opt_beta, + "help" => \$opt_help, + "official" => \$opt_official, + "prefix=s" => \$opt_prefix, + "tmdir=s" => \$opt_tmdir, + "debug" => \$opt_debug, + "snapshot" => \$opt_snapshot)) + { + print STDERR "Try `newbuild --help'"; + exit (1); + } + + if ($opt_help) + { + help (); + exit (0); + } + + my($ss,$mm,$hh,$mday,$mon,$year) = localtime(); + + $builder_name_str = $ENV{"USERNAME"}; + $computer_name_str = $ENV{"COMPUTERNAME"}; + + my $new_state = -1; + $new_state = 4 if ($opt_debug); + $new_state = 3 if ($opt_alpha); + $new_state = 2 if ($opt_beta); + $new_state = 1 if ($opt_snapshot); + $new_state = 0 if ($opt_official); + + $texlivesrcdir = &dirname(cwd()) . "/texk/msvc"; + + $texlivesrcdir =~ s:/:\\:g; + + my $texlive_inc_filename = $texlivesrcdir . "/texlive.inc"; + + die "$texlive_inc_filename does not exist" unless (-e $texlive_inc_filename); + open (TEXLIVE_INC, $texlive_inc_filename); + + open (TMPFILE, ">xxx"); + $state = -1; + my $last_state = -1; + + mscver (); + + my $timestamp = sprintf("%02d/%02d/%02d %02d:%02d:%02d %s", + $year, $mon+1, $mday, $hh, $mm, $ss, + $ENV{"USERNAME"}); + + while (<TEXLIVE_INC>) + { + if (/^state = ([01234])/) + { + $state = $1; + $state = $new_state if ($new_state >= 0); + print TMPFILE "state = $state\n"; + } + elsif (/^alpha_number = ([0-9]+)/) + { + $alpha_number = $1; + print TMPFILE "alpha_number = $alpha_number\n"; + } + elsif (/^beta_number = ([0-9]+)/) + { + $beta_number = $1; + print TMPFILE "beta_number = $beta_number\n"; + } + elsif (/^release_motto = (.*)/) + { + $release_motto = $1; + print TMPFILE $_; + } + elsif (/^build_label = ([A-Za-z0-9_-]+)/) + { + $build_label = $1; + print TMPFILE $_; + } + elsif (/^build_special_str = ([A-Za-z0-9 ]+)/) + { + $build_special_str = $1; + print TMPFILE $_; + } + elsif (/^(build_number = )([0-9]+)/) + { + $build_number = $2 + 1; + print TMPFILE $1, $build_number, "\n"; + } + elsif (/^build_date = /) + { + $build_date = time (); + print TMPFILE $&, $build_date, "\n"; + } + elsif (/^build_date_str = /) + { + $build_date_str = localtime (); + print TMPFILE $&, $build_date_str . "\n"; + } + elsif (/^texlivesrcdir = /) + { + print TMPFILE $&, $texlivesrcdir . "\n"; + } + elsif (/^prefix = /) + { + if (length($opt_prefix) > 0) + { + print TMPFILE $&, $opt_prefix . "\n"; + } + else + { + print TMPFILE $&, $ENV{"HOMEDRIVE"} . "\\texmf\n"; + } + } + elsif (/^tmdir = /) + { + if (length($opt_tmdir) > 0) + { + print TMPFILE $&, "$opt_tmdir\n"; + } + else + { + print TMPFILE $&, "\$(prefix)\n"; + } + } + elsif (/^mscver = /) + { + print TMPFILE $&, $mscver . "\n"; + } + else + { + if (/^major_version_number = ([0-9]+)/) + { + $major_version_number = $1; + } + elsif (/^minor_version_number = ([0-9]+)/) + { + $minor_version_number = $1; + } + elsif (/^patch_number = ([0-9]+)/) + { + $patch_number = $1; + } + elsif (/^patch_number_str = ([a-z])/) + { + $patch_number_str = $1 + } + else + { + s/Time-stamp:[ \t]+\"(.+)\"/Time-stamp: \"$timestamp\"/; + } + print TMPFILE; + } + } + + close (TEXLIVE_INC); + close (TMPFILE); + unlink ($texlive_inc_filename); + rename ("xxx", $texlive_inc_filename); + + make_version_h (); + + update_tpm_files (); + +# if ($opt_tmdir && $opt_prefix) +# { +# write_paths_ini (); +# } +} diff --git a/Build/source/mswin32/p4update.pl b/Build/source/mswin32/p4update.pl new file mode 100644 index 00000000000..8c0e222029d --- /dev/null +++ b/Build/source/mswin32/p4update.pl @@ -0,0 +1,140 @@ +# +# Perforce interface for TeXLive +# Author: F. Popineau +# Date : 04/11/98 +# Time-stamp: <03/03/16 12:22:48 popineau> +# +# Usage: +# p4update <option> +# +# + +use lib 'c:/source/TeXLive/Master/Tools'; + +require "newgetopt.pl"; + +use FileUtils qw(dirname basename normalize walk_dir cleandir sort_uniq + copy remove_list push_uniq newer sync_dir build_path); + +use Cwd; + +$ENV{P4PORT} = "xemtex.ese-metz.fr:1666"; +$ENV{P4CLIENT} = "ansible"; + +%root = ( + "xemtex" =>"c:/source/xemtex", + "texlive" => "c:/source/TeXLive" + ); +%p4port = ( + "xemtex" =>"xemtex.ese-metz.fr:1666", + "texlive" => "sun.dante.de:1666" + ); +%p4client = ( + "xemtex" => "ansible", + "texlive" => "ansible" + ); + +&main; +0; + +sub main { + + unless (&NGetOpt ( + "project=s", # Name of the project, changes the P4PORT and P4CLIENT variables + "subdir=s", # Subdir to restrict the sync/update operation + "dry", # Do nothing, just show what commands would be run + "sync", # Sync local depot with remote files + "update", # Push your local changes to the remote depot + "submit=s" # Run 'p4 submit' in addition to update + )) { + print STDERR "Try `$0 --help'"; + exit 1; + } + + if (! $opt_project) { + $opt_project = "texlive"; + } + + my $rootprj = $root{$opt_project}; + my $p4clientprj = $p4client{$opt_project}; + my $p4portprj = $p4port{$opt_project}; + my $p4rootprj = "//$p4clientprj"; + $ENV{"P4CLIENT"} = $p4clientprj; + $ENV{"P4PORT"} = $p4portprj; + my $subdir = ""; + my $dir = ""; + + + if ($opt_subdir ne "") { + $subdir = $opt_subdir; + } + + $dir = build_path($rootprj, $subdir); + + if (! -d $dir) { + print STDERR "$0: $dir is not a directory, exiting...\n"; + exit 1; + + } + + print "P4PORT = " . $ENV{"P4PORT"} . "\nP4CLIENT = " . $ENV{"P4CLIENT"} . "\n"; + + $cwd = &getcwd; + + if ($opt_sync) { + $dir = normalize($dir, "/"); + $dir =~ s/^$rootprj/$p4rootprj/; + $dir = $dir . "/..."; + if ($opt_dry) { + print STDERR "Executing \"p4 sync $dir\"\n"; + } + else { + system("p4 sync $dir"); + } + } + elsif ($opt_update) { + if ($opt_dry) { + print STDERR "Changing directory for $dir\n"; + print STDERR "Executing \"dir /s /b /a-d | p4 -x - add\"\n"; + print STDERR "Changing directory for $cwd\n"; + } + else { + chdir($dir); + system("dir /s /b /a-d | p4 -x - add"); + chdir ($cwd); + } + $dir = normalize($dir, "/"); + $dir =~ s/^$rootprj/$p4rootprj/; + $dir = $dir . "/..."; + + if ($opt_dry) { + print STDERR "Executing \"p4 diff -sd $dir | p4 -x - delete\"\n"; + print STDERR "Executing \"p4 diff -se $dir | p4 -x - edit\"\n"; + } + else { + system("p4 diff -sd $dir | p4 -x - delete"); + system("p4 diff -se $dir | p4 -x - edit"); + } + if ($opt_submit) { + $opt_submit = $dir if ($opt_submit !~ m/-c/); + if ($opt_dry) { + print STDERR "Executing \"p4 submit $opt_submit\"\n"; + } + else { + system("p4 submit $opt_submit"); + } + } + } + elsif ($opt_submit) { + $dir = normalize($dir, "/"); + $dir =~ s/^$rootprj/$p4rootprj/; + $dir = $dir . "/..."; + $opt_submit = $dir if ($opt_submit !~ m/-c/); + if ($opt_dry) { + print STDERR "Executing \"p4 submit $opt_submit\"\n"; + } + else { + system("p4 submit $opt_submit"); + } + } +} diff --git a/Build/source/mswin32/place.pl b/Build/source/mswin32/place.pl new file mode 100644 index 00000000000..63f1b2f90f7 --- /dev/null +++ b/Build/source/mswin32/place.pl @@ -0,0 +1,248 @@ +#! /usr/bin/perl + +# Sebastian Rahtz 2000/02/05 +# Process a tree in the texlive "cooked" directory and put +# in the main texmf tree, with an RDF catalogue entry + +use lib 'c:/source/TeXLive/Master/texmf/tpm'; + +use English; +use File::Basename; +use File::Find; +use Time::gmtime; +use Cwd; +use FileUtils qw(walk_dir rec_rmdir); + +require "newgetopt.pl"; + +$IsWin32 = $^O =~ /win32/i; + +$newpackage=0; +$Inidir = getcwd(); +$Master="d:/local/texlive"; +$package=$ARGV[0]; +$collection=$ARGV[1]; +$Runsize=0; +$Docsize=0; +$Sourcesize=0; +@Docfiles=(); +@Sourcefiles=(); +@Runfiles=(); +@zapped=(); + +# zap_empty_dirs +$zap_noaction = 1; +$zap_regexp = "^(\\.zipped|\\.cache|\\.cache\\+|00Contents|00Description)\$"; + +&main; + +exit 0; + +# checks whether only files matching regexp are contained in +# dir-name and removes the directory if this is the case. +# -debug prints out what it does +# -noaction suppresses the deletion + +sub zap_empty_dirs { + + my($dir_name, @all_files) = @_; + my (@files); + + @files = grep(! /$zap_regexp/,@all_files); + + if ($#files < 0) { + print "Empty directory: $dir_name\n"; + &rec_rmdir($dir_name) if (! $zap_noaction); + } +} + +sub main { + + + unless (&NGetOpt ("package=s", "master=s", + "verbose", "help")) { + print STDERR "Try `$0 --help'"; + exit 1; + } + + if ($opt_help) { + &help; + exit 0; + } + + $package = $opt_package if ($opt_package ne ""); + $Master = $opt_master if ($opt_master ne ""); + + if (!-d "$package") { + die "No package to install: $package\n"; + } + + # delete existing files + chdir("$Master") || die ("directory $Master does not exist"); + + if (-f "$Master/texmf/tpm/$package.tpm") { + open(LIST,"$Master/texmf/tpm/$package.tpm"); + while (<LIST>) { + chop; + if (/^[A-z]/) { $Old{$_}=1; } + } + close(LIST); + } + # remove empty directories from new package + # finddepth(\&dirs,"$Inidir/$package"); + + # build catalogue file + $_=$collection; + ($coll,$level) = /([A-z]*)([0-9]*)/; + chdir("$Master"); + if (-f "$Master/texmf/lists/$collection/$package") { + system "p4 edit $Master/texmf/lists/$collection/$package"; + system "p4 edit $Master/texmf/tpm/$package.tpm"; + } else { + $newpackage=1; + } + open(TPM,">$Master/texmf/tpm/$package.tpm"); + +# $Date=`date +%Y/%m/%d`; + $gm = gmtime(); + $Date = sprintf("%02d/%02d/%02d", $gm->year() + 1900, $gm->mon(), $gm->wday()); + if ($IsWin32) { + $Who = $ENV{"USERNAME"}; + if ($Who eq "") { + $Who = "TeXLive Team"; + } + } + else { + $Who=`whoami`; + chop($Who); + } + + &walk_dir("$Inidir/$package", \&zap_empty_dirs); + +# chdir("$Inidir/$package"); +# system("find . -depth -type d -exec /texlive/Build/cdbuild/zap-empty-dirs -debug {} ;"); + find(\&files,"."); + print TPM <<EOF; +<?xml version="1.0"?> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:TPM="http://texlive.dante.de/"> + <rdf:Description about="http://texlive.dante.de/$1"> + <TPM:Name>$package</TPM:Name> + <TPM:Collection>$coll</TPM:Collection> + <TPM:Level>$level</TPM:Level> + <TPM:Date>$Date</TPM:Date> + <TPM:Creator>$Who</TPM:Creator> + <TPM:DocFiles size="$Docsize"> +EOF + foreach $file (@Docfiles) {print TPM "$file\n";} + print TPM " </TPM:DocFiles>\n"; + print TPM " <TPM:SourceFiles size=\"$Sourcesize\">\n"; + foreach $file (@Sourcefiles) {print TPM "$file\n";} + print TPM " </TPM:SourceFiles> \n"; + print TPM " <TPM:RunFiles size=\"$Runsize\">\n"; + foreach $file (@Runfiles) {print TPM "$file\n";} + print TPM "texmf/tpm/$package.tpm\n"; + print TPM " </TPM:RunFiles>\n"; + if (-f "$Master/texmf/doc/html/catalogue/entries/$package.xml") { + system("xt $Master/texmf/doc/html/catalogue/entries/$package.xml /texlive/Build/cdbuild/cat2rdf.xsl $$.xml") ; + open(XX,"$$.xml"); + while (<XX>) { print TPM; } + close XX; + unlink "$$.xml"; + } + else + { + print TPM "<TPM:Title>\n\n</TPM:Title>\n<TPM:Description>\n\n</TPM:Description>\n"; + } + print TPM <<EOF; + </rdf:Description> +</rdf:RDF> +EOF + close(TPM); + system "xt $Master/texmf/tpm/$package.tpm /texlive/Build/cdbuild/tpm2list.xsl"; + $New{"texmf/tpm/$package.tpm"}=1; + $Old{"texmf/tpm/$package.tpm"}=1; + foreach $file (keys %Old) { + if ($New{$file}) { + system "p4 edit $Master/$file"; + } else { + system "p4 delete $Master/$file"; + } + } + # copy files + $Job="tar cf - . | (cd $Master ; tar xf - )"; + system($Job); + + foreach $file (keys %New) { + if ($Old{$file}) { } else { system "p4 add $Master/$file"; } + } + if ($newpackage) + {system "p4 add $Master/texmf/lists/$collection/$package"; + system "p4 add $Master/texmf/tpm/$package.tpm"; + } + chdir("$Inidir"); + system("mv $package $package.done"); +} + +#-------------------------------------- +sub dirs { + local @filenames; + if (-d) { + @filenames=&buildfilelist($File::Find::name,$_); + if (!@filenames) { + rmdir $File::Find::name; + } + } +} + +# sub cleanup { +# local ($msg) = @_; +# print STDERR $msg; +# exit 1; +# } + +sub buildfilelist { + local($me,$name) = @_; + my (@files); + opendir(DIR,$me) || &cleanup ("cannot open directory $me"); + @files =grep(!/^\.\.?/,readdir(DIR)); + closedir(DIR); + return @files; +} + +sub files { + if (-f) { + $This=$File::Find::name; + $This =~ s/^\.\///; + $New{$This}=1; + if ($This =~ /^texmf\/doc/) { + # $_=$This; + # if (/\.ps$/) { system("gzip $_"); $This="$_.gz" ; } + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($This); + $Docsize+=$size; push @Docfiles,$This; + } + elsif ($This =~ /^Books/) { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($This); + $Docsize+=$size; push @Docfiles,$This; } + elsif ($This =~ /^man/) { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($This); + $Docsize+=$size; push @Docfiles,$This; } + elsif ($This =~ /^texmf\/source/) { + $_=$This; + #if (/\.ps$/) { system("gzip $_"); $This="$_.gz" ; } + $Sourcesize+=$size; push @Sourcefiles,$This; } + else { + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) + = stat($This); + $Runsize+=$size; + push @Runfiles,$This; + } + } +} diff --git a/Build/source/mswin32/setvars.bat b/Build/source/mswin32/setvars.bat new file mode 100644 index 00000000000..8bfe11fbda4 --- /dev/null +++ b/Build/source/mswin32/setvars.bat @@ -0,0 +1,11 @@ +@echo off
+rem Because of a bug in nmake, these variables have to be set
+rem before running nmake, for their values to be overriden by
+rem those from the Makefile
+set TEXMFMAIN=foo
+set TEXMF=foo
+set TEXMFCNF=foo
+set MKTEXFMT=foo
+set GROFF_TMAC_PATH=foo
+set GROFF_FONT_PATH=foo
+set LATEX2HTML=foo
\ No newline at end of file diff --git a/Build/source/mswin32/sync.pl b/Build/source/mswin32/sync.pl new file mode 100644 index 00000000000..d4d0342cf7c --- /dev/null +++ b/Build/source/mswin32/sync.pl @@ -0,0 +1,181 @@ +require "newgetopt.pl"; +use lib ("c:/source/texlive/Master/Tools"); +use Cwd; +use FileUtils qw(dirname basename normalize walk_dir cleandir sort_uniq + copy remove_list push_uniq newer sync_dir canon_dir + is_absolute build_path); +use File::Copy qw(copy); + +my @ignore = ( + "libs/gifreader", + "libs/geturl", + "libs/geturl-new", + "libs/freetype2", + "libs/expat", + "libs/libttf", + "libs/T1", + "libs/unzip", + "texk/kpathsea-fp", + "texk/kpsexx", + "texk/tth", + "texk/windvi-0.68", + "utils/l2h-orig", + "utils/l2h-orig-orig", + "utils/latex2html", + "utils/noweb", + "utils/src2tex", + "utils/texinfo/info", + "texk.stable", + "texk/kpse-shared*", + "texk/cwebk", + "texk/msvc/factory", + "texk/kpse.*", + "texk/web2c/eomegadir/.*", + "texk/web2c/eomegadir-1.15/.*", + "texk/web2c/eomegadir-1.23/.*", + "CVS" + ); + +# $ignore_regexp = "(" . join ( '|', map { s/^/.\\/ ; s/\//\\/g; $_ } @ignore) . ")"; +my $ignore_regexp = "(" . join ( '|', @ignore) . ")"; + +&main; + +1; + +sub restrict_win { + my ($dir, $dst, @files) = @_; + # under the texk/msvc dir, we don't want to copy all the files + $dir =~ s/^\.//; + $dir = &getcwd . $dir; + $dir =~ s@\\@/@g; + if ($dir =~ m@/msvc$@) { + @files = grep { /(\.h|\.mak|\.sed|\.pl|\.pm|\.bat|\.inc|\.version)$/ } @files; + } + # only .mak and .rc files under most directories + elsif ($dir eq '.' || ($dir =~ m@/(texk|libs|utils)@ && $dir !~ m@$ignore_regexp@xo)) { +# map { if ($dir =~ m@[/\\]$_@) { @files = (); return @files; } } @ignore; + @files = grep { (-d "$dir/$_") || ($_ =~ m/(\.mak|\.rc)$/) } @files; + } + # don't bother with other directories + else { + @files = (); + } + return @files; +} + +sub restrict_unix { + my ($dir, $dst, @files) = @_; + $dir =~ s/^\.//; + $dir = &getcwd . $dir; + $dir =~ s@\\@/@g; + # Unix autoconf files + if ($dir eq '.' || $dir =~ m@[/\\](texk|libs|utils)@ && $dir !~ m@$ignore_regexp@xo) { + @files = grep { /(Makefile\.in|config|configure|configure\.in|config\.guess|config\.sub|c-auto\.in|\.mk)$/ || (-d "$dir/$_") } @files; + } + # don't bother with other directories + else { + @files = (); + } + return @files; +} + +sub restrict_mswin32 { + my ($dir, $dst, @files) = @_; + + @files = grep /(README|\.exclude|\*.pm|\.pl|\.bat|\.txt)$/, @files; + +} + +sub restrict_standard { + my ($dir, $dst, @files) = @_; + $dir =~ s/^\.//; + $dir = &getcwd . $dir; + $dir =~ s@\\@/@g; + + if ($dir =~ m@/CVS$@) { + @files = (); + } + else { + @files = grep { $_ !~ /^(\.nosearch|\.cvsignore)$/ } @files ; + } + + return @files; +} + +sub main { + + unless (&NGetOpt ("dry", "mirror", "sources", "texmf", "restrict")) { + print STDERR "Try `$0 --help'"; + exit 1; + } + + $opt_verbose = 1; + + if ($opt_sources) { + local ($f1, $f2); + $f1 = "c:/source/fptex/libs"; + $f2 = "c:/source/texlive/Build/source/TeX/libs"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + $f2 = "c:/source/texlive/Build/source.development/TeX/libs"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + + $f1 = "c:/source/fptex/utils"; + $f2 = "c:/source/texlive/Build/source/TeX/utils"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + $f2 = "c:/source/texlive/Build/source.development/TeX/utils"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + + $f1 = "c:/source/fptex/texk"; + $f2 = "c:/source/texlive/Build/source/TeX/texk"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + + $f1 = "c:/source/fptex/texk.development"; + $f2 = "c:/source/texlive/Build/source.development/TeX/texk"; + &sync_dir($f1, $f2, \&restrict_win, "", $opt_dry != 0, $opt_mirror != 0, 1); + &sync_dir($f2, $f1, \&restrict_unix, "", $opt_dry != 0, $opt_mirror != 0, 1); + + $f1 = "c:/source/fptex/mswin32"; + $f2 = "c:/source/texlive/Build/source/TeX/mswin32"; + &sync_dir($f1, $f2, \&restrict_mswin32, "", $opt_dry != 0, $opt_mirror != 0, 1); + + $f1 = "c:/source/fptex/mswin32"; + $f2 = "c:/source/texlive/Build/source.development/TeX/mswin32"; + &sync_dir($f1, $f2, \&restrict_mswin32, "", $opt_dry != 0, $opt_mirror != 0, 1); + + } + elsif ($opt_texmf) { + local ($f1, $f2) = ("c:/source/texlive/Master/texmf", + "c:/Program Files/TeXLive/texmf"); + my $restrict = ($opt_restrict ? \&restrict_standard : ""); + &sync_dir($f1, $f2, $restrict , "", $opt_dry != 0, $opt_mirror != 0, 0); + ($f1, $f2) = ("c:/source/texlive/Master/texmf-dist", + "c:/Program Files/TeXLive/texmf-dist"); + &sync_dir($f1, $f2, $restrict, "", $opt_dry != 0, $opt_mirror != 0, 0); + ($f1, $f2) = ("c:/source/texlive/Master/texmf-doc", + "c:/Program Files/TeXLive/texmf-doc"); + &sync_dir($f1, $f2, $restrict, "", $opt_dry != 0, $opt_mirror != 0, 0); + } + else { + local ($f1, $f2) = @ARGV; + + die "$f1 is not a directory!\n" if (! -d $f1); + die "$f2 is not a directory!\n" if (! -d $f2); + + $f1 = &canon_dir( &build_path(&getcwd, "$f1")) if (! &is_absolute($f1)); + $f2 = &canon_dir( &build_path(&getcwd, "$f2")) if (! &is_absolute($f2)); + + if ($opt_restrict) { + &sync_dir($f1, $f2, \&restrict_standard, "", $opt_dry != 0, $opt_mirror != 0, 0); + } + else { + &sync_dir($f1, $f2, "", "", $opt_dry != 0, $opt_mirror != 0, 0); + } + } +} + diff --git a/Build/source/mswin32/tar-links.pl b/Build/source/mswin32/tar-links.pl new file mode 100644 index 00000000000..e87ec0f6112 --- /dev/null +++ b/Build/source/mswin32/tar-links.pl @@ -0,0 +1,103 @@ +# +# Tool to correct links in tar files. +# Author: F. Popineau +# Date : 22/12/97 +# Time-stamp: <02/12/23 00:33:46 popineau> +# +# Usage: +# gzip -dc <file>.tar.gz | tar tvf - | perl tar-links.pl +# +require "newgetopt.pl"; +use Cwd; + +&main; + +exit 0; + +sub canon_dir +{ + local ($p, $rep) = @_; + if ($rep eq '' || $rep eq '\\') { + $p =~ s@/@\\@g; + $p =~ s@\\[\\]+@\\@g; + $p =~ s@\\.\\@\\@g; + $p =~ s@\\([^\\]+)\\..\\@\\@g; + } + elsif ($rep eq '/') { + $p =~ s@\\@/@g; + $p =~ s@/[/]+@/@g; + $p =~ s@/./@/@g; + $p =~ s@/([^/]+)/../@/@g; + } + else { + die ("canon_dir($p) : invalid separator $rep.\n"); + } + return $p; +} + +# Merges all elements in the list into a single path, adding +# directory separators as needed. +sub newpath +{ + local($p, $s); + # Concatenates the arguments, adding path separators as needed + $p = @_[0]; + for ($i = 1; $i <= $#_; $i++) { + $p = $p . "\\" . $_[$i]; + } + return &canon_dir($p); +} + +sub dirname { + local ($f) = @_; + $f =~ m@^(.*[/\\])[^/\\]*@; + return $1; +} + +# Copy source to dest +sub copy +{ + local ($src, $dest) = @_; + + print "Copying $src to $dest\n" if ($opt_verbose); + + die "Copy : source file $src does not exist.\n" + unless (-f $src); +# die "Copy : destination file $dest does not exist.\n" +# unless (-f $dest || -d $dest); + if (-d $dest) { + $dest = &newpath($dest, &basename($src)); + } + open IN, "<$src"; + open OUT, ">$dest"; + binmode(IN); + binmode(OUT); + print OUT <IN>; + close(IN); + close(OUT); +} + +sub make_link { + local ($to, $from) = @_; + $to = canon_dir($to); + $from = newpath(dirname($to), $from); + print "linking $from -> $to ..."; + if (-e $to) { + unlink($to); + } + if (-d $from) { + system("xcopy $from $to /f/r/i/e/d/k"); + } + else { + copy($from, $to); + } + print " done\n"; +} + +sub main { + while (<>) { + if ($_ =~ m/([^\s]+)\s*->\s*([^\s]+)/) { + make_link($1, $2); + } + } +} diff --git a/Build/source/mswin32/tldiff.bat b/Build/source/mswin32/tldiff.bat new file mode 100644 index 00000000000..72df1474a75 --- /dev/null +++ b/Build/source/mswin32/tldiff.bat @@ -0,0 +1,8 @@ +@echo off
+cd \source\fptex
+\source\gnu\diffutils-2.7\dynamic\diff.exe -ruN -X mswin32\diff.exclude -x "*/texk.development/*" . c:\source\TeXLive\Build\source\TeX > diffs\tl-source-%1.diff
+move texk texk.stable
+move texk.development texk
+\source\gnu\diffutils-2.7\dynamic\diff.exe -ruN -X mswin32\diff.exclude -x "*/texk.stable/*" . c:\source\TeXLive\Build\source.development\TeX > diffs\tl-dev-%1.diff
+move texk texk.development
+move texk.stable texk
\ No newline at end of file diff --git a/Build/source/mswin32/update.pl b/Build/source/mswin32/update.pl new file mode 100644 index 00000000000..1099327eeea --- /dev/null +++ b/Build/source/mswin32/update.pl @@ -0,0 +1,171 @@ +# +# Purpose: maintain the set of Xemtex files +# Author: F. Popineau +# See the xemtex-files.txt for more information. +# +require "newgetopt.pl"; + +use lib qw(c:/source/TeXLive/Master/Tools); +use FileUtils; + +my $sourcedir; +my $destdir = "c:/Program Files/TeXLive"; +my %files = ( ); +my $root; + +my $opt_verbose = 1; + +#my $pattern = "c:/source/xemtex/Master/xemacs-packages/info/cc-mode.*"; +# if (-f $pattern) { print "OK\n"; }; +&main; + +1; + +# +# FIXME: pb with ghostscript !!! +# + +sub prune_files { + my ($dir) = @_; + my $cut = ($dir =~ m/^CVS$/ || $dir =~ m/[\\\/]CVS$/ ? 1 : 0); + return $cut; +} + +sub check_files { + my ($dir, @files) = @_; + + $dir =~ s@\\@/@g; + my $node = $root; + map { + $node = $node->{$_}; + } (split ("/", $dir)); + if ($node) { + for my $f (@files) { + if (! $node->{$f}) { + my $name = "$dir/$f"; + $name =~ s@\\@/@g; + next if ($name !~ m@/xemtex/@); + # unlink $name; + if (-f $name) { + print "Unlinking $name\n"; + unlink($name); + } elsif (-d $name) { + print "Removing directory $name\n"; + &FileUtils::rec_rmdir($name); + } + } + } + } +# else { +# print "Warning !!! You should remove directory $dir\n"; +# } +} + +sub main { + + + unless (&NGetOpt ("dry", "verbose")) { + print STDERR "Try `$0 --help'"; + exit 1; + }; + + my $descfile = $ARGV[0]; + die "usage: $0 <xemtex-files.txt>\nThe list of files is required.\n" if (! $descfile); + die "$0: $descfile is not a file!\n" if (! -f $descfile); + + open FILE, "<$descfile"; + while (<FILE>) { + chomp; + my $line = $_; + $line =~ s@\\@/@g; + next if ($line =~ m/^\#/); + next if ($line =~ m/^\s*$/); + if ($line =~ m/^\s*(\$[^\s]*\s*=\s*\"[^\"]*\")\s*$/ixo) { + eval($1); + } elsif ($line =~ m/^\[\s*source\s*=\s*(\"[^\"]*\")\s*\]/ixo) { + $sourcedir = eval($1); + $sourcedir =~ s@\\@/@g; + } + elsif ($line =~ m@^([^\s]*)\s*=>\s*([^\s]*)$@) { + $files{"$sourcedir/$1"} = "$destdir/$2"; + } + else { + $files{"$sourcedir/$line"} = "$destdir/$line"; + } + } + close FILE; + + my @xemtexfiles = (); + + for my $src (keys %files) { + if (-f $src) { +# print "file src = $src\n"; + if (-d "$files{$src}") { + $files{$src} .= "/" . &FileUtils::basename($src); + } + my $dst = &FileUtils::dirname($files{$src}); + if (! -d $dst) { + print "Creating directory $dst\n" if ($opt_verbose || $opt_dry); + &FileUtils::rec_mkdir($dst) unless($opt_dry); + } + if (! -f "$files{$src}") { + print "Copying $src to $files{$src}\n" if ($opt_verbose || $opt_dry); + &FileUtils::copy($src, $files{$src}) unless ($opt_dry); + if ($files{$src} =~ m/\.gz$/) { + system ("gzip -qfd $files{$src}"); + $files{$src} =~ s/\.gz$//; + } + } + elsif ( + &FileUtils::newer($src, "$files{$src}") > 0 + ) { + &FileUtils::copy($src, $files{$src}) unless($opt_dry); + print "Copying $src to $files{$src}\n" if ($opt_verbose || $opt_dry); + if ($files{$src} =~ m/\.gz$/) { + system ("gzip -qfd $files{$src}"); + $files{$src} =~ s/\.gz$//; + } + } + push @xemtexfiles, $files{$src}; + } + else { + my $dst = $files{$src}; + if (! -d $files{$src}) { + $dst = &FileUtils::dirname($files{$src}); + } + if (! -d $dst) { + print "Creating directory $dst\n" if ($opt_verbose || $opt_dry); + &FileUtils::rec_mkdir($dst) unless($opt_dry); + } + my @srcfiles = &FileUtils::globexpand(1, $src); + $src = &FileUtils::dirname($src); +# print "multiple src = $src srcfiles = @srcfiles\n"; + map { + $_ =~ m@$src/(.*)$@; + my $dstfile = "$dst/$1"; + &FileUtils::rec_mkdir(&FileUtils::dirname("$dstfile")) if (! -d &FileUtils::dirname("$dstfile")); + if (! -f "$dstfile") { + &FileUtils::copy($_, "$dstfile") unless($opt_dry); + print "Copying $_ to $dstfile\n" if ($opt_verbose || $opt_dry); + if ($dstfile =~ m/\.gz$/) { + system ("gzip -qfd $dstfile"); + $dstfile =~ s/\.gz$//; + } + } + elsif ( + &FileUtils::newer($_, "$dstfile") > 0 + ) { + &FileUtils::copy($_, "$dstfile") unless($opt_dry); + print "Copying $_ to $dstfile\n" if ($opt_verbose || $opt_dry); + if ($dstfile =~ m/\.gz$/) { + system ("gzip -qfd $dstfile"); + $dstfile =~ s/\.gz$//; + } + } + push @xemtexfiles, "$dstfile"; + } @srcfiles; + } + } + $root = &FileUtils::build_tree(@xemtexfiles); + &FileUtils::walk_dir($destdir, \&check_files); +} diff --git a/Build/source/mswin32/xemtex-files.txt b/Build/source/mswin32/xemtex-files.txt new file mode 100644 index 00000000000..e4bc8299e72 --- /dev/null +++ b/Build/source/mswin32/xemtex-files.txt @@ -0,0 +1,1135 @@ +# +# Purpose: to maintain the list of XEmTeX files. +# This file list is used by the update.pl perl script. +# Variables can be used in "source" directives only. +# Change the follwing variables to adapt to your local +# depot. +# Date: +# +# Revision history: +# version 0.1: initial version. +# teTeX 2.0 packages +# TeX4ht packages +# XEmacs 21.5 +# XEmacs packages related to Mule, Programming modes and TeX +# +$TeXLiveDir = "c:/Program Files/TeXLive" +$XEmacsDir = "c:/Program Files/XEmacs" +$GsToolsDir = "c:/Local/GsTools" +$NetPBMDir = "c:/Local/NetPBM" +$PerlDir = "c:/Local/Perl" +$ImageMagick = "c:/Program Files/ImageMagick" + +[ source = "c:\Program Files\Microsoft Visual Studio .NET 2003\Visual Studio .NET Enterprise Architect 2003 - English" ] + +MSVCR71.DLL => bin/win32/MSVCR71.DLL + +[ source = "c:\Local\ActiveState\Perl" ] + +bin/perl56.dll => bin/win32/perl56.dll + +[source = +[ Source = "$TeXLiveDir/bin"] +# +# TeX Binaries +# +# bin/win32/MSVCR70.DLL +# bin/win32/bibtex8.exe +# bin/win32/context.exe +# bin/win32/dvipdfm.exe +# bin/win32/dvips.exe +# bin/win32/e2pall.exe +# bin/win32/ebb.exe +# bin/win32/epstopdf.exe +# bin/win32/fmtutil.exe +# bin/win32/gunzip.exe +# bin/win32/gzip.exe +# bin/win32/bzip2.exe +# bin/win32/htlatex.exe +# bin/win32/ispell.exe +# bin/win32/kpsecheck.exe +# bin/win32/kpsewhich.exe +# bin/win32/makeindex.exe +# bin/win32/makempx.exe +# bin/win32/makempy.exe +# bin/win32/metafun.exe +# bin/win32/mktexdir.exe +# bin/win32/mktexfmt.exe +# bin/win32/mktexlsr.exe +# bin/win32/mktexmf.exe +# bin/win32/mktexnam.exe +# bin/win32/mktexpk.exe +# bin/win32/mktextex.exe +# bin/win32/mktextfm.exe +# bin/win32/mktexupd.exe +# bin/win32/mpost.exe +# bin/win32/mpto.exe +# bin/win32/mptopdf.exe +# bin/win32/pdfclose.exe +# bin/win32/pdfdde.exe +# bin/win32/pdfetex.exe +# bin/win32/pdffonts.exe +# bin/win32/pdfimages.exe +# bin/win32/pdfinfo.exe +# bin/win32/pdfopen.exe +# bin/win32/pdftops.exe +# bin/win32/pdftosrc.exe +# bin/win32/pdftotext.exe +# bin/win32/perl56.dll +# bin/win32/pkfix.exe +# bin/win32/t4ht.exe +# bin/win32/tex4ht.exe +# bin/win32/texdoctk.exe +# bin/win32/texexec.exe +# bin/win32/texfind.exe +# bin/win32/texfont.exe +# bin/win32/texindex.exe +# bin/win32/texshow.exe +# bin/win32/texutil.exe +# bin/win32/thumbpdf.exe +# bin/win32/tl80bz2.dll +# bin/win32/tl80getu.dll +# bin/win32/tl80jpeg.dll +# bin/win32/tl80kpse.dll +# bin/win32/tl80mf.dll +# bin/win32/tl80mktx.dll +# bin/win32/tl80mp.dll +# bin/win32/tl80pdfe.dll +# bin/win32/tl80png.dll +# bin/win32/tl80regx.dll +# bin/win32/tl80unzp.dll +# bin/win32/tl80xpat.dll +# bin/win32/tl80zlib.dll +# bin/win32/updmap.exe +# +# [ Source = "$TeXLiveDir"] +# # +# # AMS TeX package +# # +# texmf/bibtex/bib/amslatex/* => texmf/bibtex/bib/amslatex/* +# texmf/bibtex/bst/amslatex/* => texmf/bibtex/bst/amslatex/* +# texmf/doc/amstex/* => texmf/doc/amstex/* +# texmf/doc/fonts/amsfonts/* => texmf/doc/fonts/amsfonts/* +# texmf/doc/latex/amscls/* => texmf/doc/latex/amscls/* +# texmf/doc/latex/amsfonts/* => texmf/doc/latex/amsfonts/* +# texmf/doc/latex/amsmath/* => texmf/doc/latex/amsmath/* +# texmf/fonts/tfm/ams/cmextra/* => texmf/fonts/tfm/ams/cmextra/* +# texmf/fonts/tfm/ams/cyrillic/* => texmf/fonts/tfm/ams/cyrillic/* +# texmf/fonts/tfm/ams/euler/* => texmf/fonts/tfm/ams/euler/* +# texmf/fonts/tfm/ams/symbols/* => texmf/fonts/tfm/ams/symbols/* +# texmf/pdftex/amstex/config/* => texmf/pdftex/amstex/config/* +# texmf/tex/amstex/base/* => texmf/tex/amstex/base/* +# texmf/tex/amstex/config/* => texmf/tex/amstex/config/* +# texmf/tex/latex/amscls/* => texmf/tex/latex/amscls/* +# texmf/tex/latex/amsfonts/* => texmf/tex/latex/amsfonts/* +# texmf/tex/latex/amsmath/* => texmf/tex/latex/amsmath/* +# texmf/tex/plain/amsfonts/* => texmf/tex/plain/amsfonts/* +# +# # +# # Bibtex support files +# # +# texmf/bibtex/bib/* => texmf/bibtex/bib/* +# texmf/bibtex/bib/base/* => texmf/bibtex/bib/base/* +# texmf/bibtex/bst/base/* => texmf/bibtex/bst/base/* +# texmf/doc/bibtex/base/* => texmf/doc/bibtex/base/* +# +# # +# # Context +# # +# texmf/doc/context/* => texmf/doc/context/* +# texmf/context/* => texmf/context/* +# texmf/fonts/tfm/hoekwater/context/* => texmf/fonts/tfm/hoekwater/context/* +# texmf/fonts/type1/hoekwater/context/* => texmf/fonts/type1/hoekwater/context/* +# texmf/metapost/context/* => texmf/metapost/context/* +# texmf/pdftex/config/context/* => texmf/pdftex/config/context/* +# texmf/tex/context/* => texmf/tex/context/* +# texmf/tex/generic/context/* => texmf/tex/generic/context/* +# texmf/tex/latex/context/* => texmf/tex/latex/context/* +# +# # +# # Metapost +# # +# texmf/doc/metapost/base/* => texmf/doc/metapost/base/* +# texmf/metapost/base/* => texmf/metapost/base/* +# texmf/metapost/config/* => texmf/metapost/config/* +# texmf/metapost/mfpic/* => texmf/metapost/mfpic/* +# texmf/metapost/misc/* => texmf/metapost/misc/* +# +# # +# # TeX4ht +# # +# texmf/tex/generic/tex4ht/* => texmf/tex/generic/tex4ht/* +# texmf/tex4ht/* => texmf/tex4ht/* +# +# # +# # Fonts +# # +# texmf/doc/fonts/ae/* => texmf/doc/fonts/ae/* +# texmf/doc/fonts/belleek/* => texmf/doc/fonts/belleek/* +# texmf/doc/fonts/bluesky/* => texmf/doc/fonts/bluesky/* +# texmf/doc/fonts/cbgreek/* => texmf/doc/fonts/cbgreek/* +# texmf/doc/fonts/cm/* => texmf/doc/fonts/cm/* +# texmf/doc/fonts/cmbright/* => texmf/doc/fonts/cmbright/* +# texmf/doc/fonts/dstroke/* => texmf/doc/fonts/dstroke/* +# texmf/doc/fonts/ec/* => texmf/doc/fonts/ec/* +# texmf/doc/fonts/ecc/* => texmf/doc/fonts/ecc/* +# texmf/doc/fonts/eurosym/* => texmf/doc/fonts/eurosym/* +# texmf/doc/fonts/fontname/* => texmf/doc/fonts/fontname/* +# texmf/doc/fonts/hoekwater/* => texmf/doc/fonts/hoekwater/* +# texmf/doc/fonts/lucidabr/* => texmf/doc/fonts/lucidabr/* +# texmf/doc/fonts/marvosym/* => texmf/doc/fonts/marvosym/* +# texmf/doc/fonts/mathpazo/* => texmf/doc/fonts/mathpazo/* +# texmf/doc/fonts/oldgerman/* => texmf/doc/fonts/oldgerman/* +# texmf/doc/fonts/pxfonts/* => texmf/doc/fonts/pxfonts/* +# texmf/doc/fonts/txfonts/* => texmf/doc/fonts/txfonts/* +# texmf/fonts/afm/adobe/avantgar/* => texmf/fonts/afm/adobe/avantgar/* +# texmf/fonts/afm/adobe/bookman/* => texmf/fonts/afm/adobe/bookman/* +# texmf/fonts/afm/adobe/courier/* => texmf/fonts/afm/adobe/courier/* +# texmf/fonts/afm/adobe/helvetic/* => texmf/fonts/afm/adobe/helvetic/* +# texmf/fonts/afm/adobe/ncntrsbk/* => texmf/fonts/afm/adobe/ncntrsbk/* +# texmf/fonts/afm/adobe/palatino/* => texmf/fonts/afm/adobe/palatino/* +# texmf/fonts/afm/adobe/symbol/* => texmf/fonts/afm/adobe/symbol/* +# texmf/fonts/afm/adobe/times/* => texmf/fonts/afm/adobe/times/* +# texmf/fonts/afm/adobe/zapfchan/* => texmf/fonts/afm/adobe/zapfchan/* +# texmf/fonts/afm/adobe/zapfding/* => texmf/fonts/afm/adobe/zapfding/* +# texmf/fonts/afm/bitstrea/charter/* => texmf/fonts/afm/bitstrea/charter/* +# texmf/fonts/afm/public/antp/* => texmf/fonts/afm/public/antp/* +# texmf/fonts/afm/public/antt/* => texmf/fonts/afm/public/antt/* +# texmf/fonts/afm/public/marvosym/* => texmf/fonts/afm/public/marvosym/* +# texmf/fonts/afm/public/mathpazo/* => texmf/fonts/afm/public/mathpazo/* +# texmf/fonts/afm/public/pl/* => texmf/fonts/afm/public/pl/* +# texmf/fonts/afm/public/qfonts/* => texmf/fonts/afm/public/qfonts/* +# texmf/fonts/afm/public/xypic/* => texmf/fonts/afm/public/xypic/* +# texmf/fonts/afm/urw/avantgar/* => texmf/fonts/afm/urw/avantgar/* +# texmf/fonts/afm/urw/bookman/* => texmf/fonts/afm/urw/bookman/* +# texmf/fonts/afm/urw/courier/* => texmf/fonts/afm/urw/courier/* +# texmf/fonts/afm/urw/helvetic/* => texmf/fonts/afm/urw/helvetic/* +# texmf/fonts/afm/urw/ncntrsbk/* => texmf/fonts/afm/urw/ncntrsbk/* +# texmf/fonts/afm/urw/palatino/* => texmf/fonts/afm/urw/palatino/* +# texmf/fonts/afm/urw/symbol/* => texmf/fonts/afm/urw/symbol/* +# texmf/fonts/afm/urw/times/* => texmf/fonts/afm/urw/times/* +# texmf/fonts/afm/urw/zapfchan/* => texmf/fonts/afm/urw/zapfchan/* +# texmf/fonts/afm/urw/zapfding/* => texmf/fonts/afm/urw/zapfding/* +# texmf/fonts/afm/yandy/lubright/* => texmf/fonts/afm/yandy/lubright/* +# texmf/fonts/afm/yandy/lucida/* => texmf/fonts/afm/yandy/lucida/* +# texmf/fonts/afm/yandy/lucidfax/* => texmf/fonts/afm/yandy/lucidfax/* +# texmf/fonts/afm/yandy/lucsans/* => texmf/fonts/afm/yandy/lucsans/* +# texmf/fonts/afm/yandy/lumath/* => texmf/fonts/afm/yandy/lumath/* +# texmf/fonts/afm/yandy/mathplus/* => texmf/fonts/afm/yandy/mathplus/* +# texmf/fonts/afm/yandy/mathtime/* => texmf/fonts/afm/yandy/mathtime/* +# texmf/fonts/tfm/adobe/avantgar/* => texmf/fonts/tfm/adobe/avantgar/* +# texmf/fonts/tfm/adobe/bookman/* => texmf/fonts/tfm/adobe/bookman/* +# texmf/fonts/tfm/adobe/courier/* => texmf/fonts/tfm/adobe/courier/* +# texmf/fonts/tfm/adobe/helvetic/* => texmf/fonts/tfm/adobe/helvetic/* +# texmf/fonts/tfm/adobe/mathppl/* => texmf/fonts/tfm/adobe/mathppl/* +# texmf/fonts/tfm/adobe/ncntrsbk/* => texmf/fonts/tfm/adobe/ncntrsbk/* +# texmf/fonts/tfm/adobe/palatino/* => texmf/fonts/tfm/adobe/palatino/* +# texmf/fonts/tfm/adobe/pslatex/* => texmf/fonts/tfm/adobe/pslatex/* +# texmf/fonts/tfm/adobe/symbol/* => texmf/fonts/tfm/adobe/symbol/* +# texmf/fonts/tfm/adobe/times/* => texmf/fonts/tfm/adobe/times/* +# texmf/fonts/tfm/adobe/zapfchan/* => texmf/fonts/tfm/adobe/zapfchan/* +# texmf/fonts/tfm/adobe/zapfding/* => texmf/fonts/tfm/adobe/zapfding/* +# texmf/fonts/tfm/bh/lubright/* => texmf/fonts/tfm/bh/lubright/* +# texmf/fonts/tfm/bh/lucida/* => texmf/fonts/tfm/bh/lucida/* +# texmf/fonts/tfm/bh/lucidfax/* => texmf/fonts/tfm/bh/lucidfax/* +# texmf/fonts/tfm/bh/lucsans/* => texmf/fonts/tfm/bh/lucsans/* +# texmf/fonts/tfm/bh/lumath/* => texmf/fonts/tfm/bh/lumath/* +# texmf/fonts/tfm/bitstrea/charter/* => texmf/fonts/tfm/bitstrea/charter/* +# texmf/fonts/tfm/cg/albertus/* => texmf/fonts/tfm/cg/albertus/* +# texmf/fonts/tfm/cg/atqolive/* => texmf/fonts/tfm/cg/atqolive/* +# texmf/fonts/tfm/cg/clarendo/* => texmf/fonts/tfm/cg/clarendo/* +# texmf/fonts/tfm/cg/coronet/* => texmf/fonts/tfm/cg/coronet/* +# texmf/fonts/tfm/cg/courier/* => texmf/fonts/tfm/cg/courier/* +# texmf/fonts/tfm/cg/garamond/* => texmf/fonts/tfm/cg/garamond/* +# texmf/fonts/tfm/cg/helvetic/* => texmf/fonts/tfm/cg/helvetic/* +# texmf/fonts/tfm/cg/lettrgth/* => texmf/fonts/tfm/cg/lettrgth/* +# texmf/fonts/tfm/cg/marigold/* => texmf/fonts/tfm/cg/marigold/* +# texmf/fonts/tfm/cg/optima/* => texmf/fonts/tfm/cg/optima/* +# texmf/fonts/tfm/cg/symbol/* => texmf/fonts/tfm/cg/symbol/* +# texmf/fonts/tfm/cg/times/* => texmf/fonts/tfm/cg/times/* +# texmf/fonts/tfm/cg/timesnew/* => texmf/fonts/tfm/cg/timesnew/* +# texmf/fonts/tfm/cg/univers/* => texmf/fonts/tfm/cg/univers/* +# texmf/fonts/tfm/cg/wingding/* => texmf/fonts/tfm/cg/wingding/* +# texmf/fonts/tfm/jknappen/ec/* => texmf/fonts/tfm/jknappen/ec/* +# texmf/fonts/tfm/jknappen/tc/* => texmf/fonts/tfm/jknappen/tc/* +# texmf/fonts/tfm/public/ae/* => texmf/fonts/tfm/public/ae/* +# texmf/fonts/tfm/public/antp/* => texmf/fonts/tfm/public/antp/* +# texmf/fonts/tfm/public/antt/* => texmf/fonts/tfm/public/antt/* +# texmf/fonts/tfm/public/bbm/* => texmf/fonts/tfm/public/bbm/* +# texmf/fonts/tfm/public/bbold/* => texmf/fonts/tfm/public/bbold/* +# texmf/fonts/tfm/public/cc-pl/* => texmf/fonts/tfm/public/cc-pl/* +# texmf/fonts/tfm/public/cm/* => texmf/fonts/tfm/public/cm/* +# texmf/fonts/tfm/public/cmbright/* => texmf/fonts/tfm/public/cmbright/* +# texmf/fonts/tfm/public/cmcyr/* => texmf/fonts/tfm/public/cmcyr/* +# texmf/fonts/tfm/public/cmextra/* => texmf/fonts/tfm/public/cmextra/* +# texmf/fonts/tfm/public/concmath/* => texmf/fonts/tfm/public/concmath/* +# texmf/fonts/tfm/public/concrete/* => texmf/fonts/tfm/public/concrete/* +# texmf/fonts/tfm/public/cs/* => texmf/fonts/tfm/public/cs/* +# texmf/fonts/tfm/public/ecc/* => texmf/fonts/tfm/public/ecc/* +# texmf/fonts/tfm/public/eurosym/* => texmf/fonts/tfm/public/eurosym/* +# texmf/fonts/tfm/public/euxm/* => texmf/fonts/tfm/public/euxm/* +# texmf/fonts/tfm/public/gothic/* => texmf/fonts/tfm/public/gothic/* +# texmf/fonts/tfm/public/latex/* => texmf/fonts/tfm/public/latex/* +# texmf/fonts/tfm/public/marvosym/* => texmf/fonts/tfm/public/marvosym/* +# texmf/fonts/tfm/public/mflogo/* => texmf/fonts/tfm/public/mflogo/* +# texmf/fonts/tfm/public/misc/* => texmf/fonts/tfm/public/misc/* +# texmf/fonts/tfm/public/pandora/* => texmf/fonts/tfm/public/pandora/* +# texmf/fonts/tfm/public/pazo/* => texmf/fonts/tfm/public/pazo/* +# texmf/fonts/tfm/public/pl/* => texmf/fonts/tfm/public/pl/* +# texmf/fonts/tfm/public/pxfonts/* => texmf/fonts/tfm/public/pxfonts/* +# texmf/fonts/tfm/public/qfonts/* => texmf/fonts/tfm/public/qfonts/* +# texmf/fonts/tfm/public/qpx/* => texmf/fonts/tfm/public/qpx/* +# texmf/fonts/tfm/public/qtx/* => texmf/fonts/tfm/public/qtx/* +# texmf/fonts/tfm/public/rsfs/* => texmf/fonts/tfm/public/rsfs/* +# texmf/fonts/tfm/public/stmaryrd/* => texmf/fonts/tfm/public/stmaryrd/* +# texmf/fonts/tfm/public/txfonts/* => texmf/fonts/tfm/public/txfonts/* +# texmf/fonts/tfm/public/vcm/* => texmf/fonts/tfm/public/vcm/* +# texmf/fonts/tfm/public/vnr/* => texmf/fonts/tfm/public/vnr/* +# texmf/fonts/tfm/public/wasy/* => texmf/fonts/tfm/public/wasy/* +# texmf/fonts/tfm/public/xypic/* => texmf/fonts/tfm/public/xypic/* +# texmf/fonts/tfm/yandy/courier/* => texmf/fonts/tfm/yandy/courier/* +# texmf/fonts/tfm/yandy/helvetic/* => texmf/fonts/tfm/yandy/helvetic/* +# texmf/fonts/tfm/yandy/lubright/* => texmf/fonts/tfm/yandy/lubright/* +# texmf/fonts/tfm/yandy/lucida/* => texmf/fonts/tfm/yandy/lucida/* +# texmf/fonts/tfm/yandy/lucidfax/* => texmf/fonts/tfm/yandy/lucidfax/* +# texmf/fonts/tfm/yandy/lucsans/* => texmf/fonts/tfm/yandy/lucsans/* +# texmf/fonts/tfm/yandy/lumath/* => texmf/fonts/tfm/yandy/lumath/* +# texmf/fonts/tfm/yandy/mathpi/* => texmf/fonts/tfm/yandy/mathpi/* +# texmf/fonts/tfm/yandy/mathplus/* => texmf/fonts/tfm/yandy/mathplus/* +# texmf/fonts/tfm/yandy/mathtime/* => texmf/fonts/tfm/yandy/mathtime/* +# texmf/fonts/tfm/yandy/symbol/* => texmf/fonts/tfm/yandy/symbol/* +# texmf/fonts/tfm/yandy/times/* => texmf/fonts/tfm/yandy/times/* +# texmf/fonts/tfm/yandy/zapfding/* => texmf/fonts/tfm/yandy/zapfding/* +# texmf/fonts/type1/bitstrea/charter/* => texmf/fonts/type1/bitstrea/charter/* +# texmf/fonts/type1/bluesky/cm/* => texmf/fonts/type1/bluesky/cm/* +# texmf/fonts/type1/bluesky/cmextra/* => texmf/fonts/type1/bluesky/cmextra/* +# texmf/fonts/type1/bluesky/cyrillic/* => texmf/fonts/type1/bluesky/cyrillic/* +# texmf/fonts/type1/bluesky/euler/* => texmf/fonts/type1/bluesky/euler/* +# texmf/fonts/type1/bluesky/latex/* => texmf/fonts/type1/bluesky/latex/* +# texmf/fonts/type1/bluesky/symbols/* => texmf/fonts/type1/bluesky/symbols/* +# texmf/fonts/type1/hoekwater/mflogo/* => texmf/fonts/type1/hoekwater/mflogo/* +# texmf/fonts/type1/hoekwater/rsfs/* => texmf/fonts/type1/hoekwater/rsfs/* +# texmf/fonts/type1/hoekwater/stmaryrd/* => texmf/fonts/type1/hoekwater/stmaryrd/* +# texmf/fonts/type1/hoekwater/wasy/* => texmf/fonts/type1/hoekwater/wasy/* +# texmf/fonts/type1/public/antp/* => texmf/fonts/type1/public/antp/* +# texmf/fonts/type1/public/antt/* => texmf/fonts/type1/public/antt/* +# texmf/fonts/type1/public/belleek/* => texmf/fonts/type1/public/belleek/* +# texmf/fonts/type1/public/cc-pl/* => texmf/fonts/type1/public/cc-pl/* +# texmf/fonts/type1/public/cmcyr/* => texmf/fonts/type1/public/cmcyr/* +# texmf/fonts/type1/public/cs/* => texmf/fonts/type1/public/cs/* +# texmf/fonts/type1/public/eurosym/* => texmf/fonts/type1/public/eurosym/* +# texmf/fonts/type1/public/marvosym/* => texmf/fonts/type1/public/marvosym/* +# texmf/fonts/type1/public/mathpazo/* => texmf/fonts/type1/public/mathpazo/* +# texmf/fonts/type1/public/pl/* => texmf/fonts/type1/public/pl/* +# texmf/fonts/type1/public/pxfonts/* => texmf/fonts/type1/public/pxfonts/* +# texmf/fonts/type1/public/qfonts/* => texmf/fonts/type1/public/qfonts/* +# texmf/fonts/type1/public/tt2001/* => texmf/fonts/type1/public/tt2001/* +# texmf/fonts/type1/public/txfonts/* => texmf/fonts/type1/public/txfonts/* +# texmf/fonts/type1/public/xypic/* => texmf/fonts/type1/public/xypic/* +# texmf/fonts/type1/urw/avantgar/* => texmf/fonts/type1/urw/avantgar/* +# texmf/fonts/type1/urw/bookman/* => texmf/fonts/type1/urw/bookman/* +# texmf/fonts/type1/urw/courier/* => texmf/fonts/type1/urw/courier/* +# texmf/fonts/type1/urw/helvetic/* => texmf/fonts/type1/urw/helvetic/* +# texmf/fonts/type1/urw/ncntrsbk/* => texmf/fonts/type1/urw/ncntrsbk/* +# texmf/fonts/type1/urw/palatino/* => texmf/fonts/type1/urw/palatino/* +# texmf/fonts/type1/urw/symbol/* => texmf/fonts/type1/urw/symbol/* +# texmf/fonts/type1/urw/times/* => texmf/fonts/type1/urw/times/* +# texmf/fonts/type1/urw/zapfchan/* => texmf/fonts/type1/urw/zapfchan/* +# texmf/fonts/type1/urw/zapfding/* => texmf/fonts/type1/urw/zapfding/* +# texmf/fonts/vf/adobe/avantgar/* => texmf/fonts/vf/adobe/avantgar/* +# texmf/fonts/vf/adobe/bookman/* => texmf/fonts/vf/adobe/bookman/* +# texmf/fonts/vf/adobe/courier/* => texmf/fonts/vf/adobe/courier/* +# texmf/fonts/vf/adobe/helvetic/* => texmf/fonts/vf/adobe/helvetic/* +# texmf/fonts/vf/adobe/mathppl/* => texmf/fonts/vf/adobe/mathppl/* +# texmf/fonts/vf/adobe/ncntrsbk/* => texmf/fonts/vf/adobe/ncntrsbk/* +# texmf/fonts/vf/adobe/palatino/* => texmf/fonts/vf/adobe/palatino/* +# texmf/fonts/vf/adobe/pslatex/* => texmf/fonts/vf/adobe/pslatex/* +# texmf/fonts/vf/adobe/times/* => texmf/fonts/vf/adobe/times/* +# texmf/fonts/vf/adobe/zapfchan/* => texmf/fonts/vf/adobe/zapfchan/* +# texmf/fonts/vf/bh/lubright/* => texmf/fonts/vf/bh/lubright/* +# texmf/fonts/vf/bh/lucida/* => texmf/fonts/vf/bh/lucida/* +# texmf/fonts/vf/bh/lucidfax/* => texmf/fonts/vf/bh/lucidfax/* +# texmf/fonts/vf/bh/lucsans/* => texmf/fonts/vf/bh/lucsans/* +# texmf/fonts/vf/bitstrea/charter/* => texmf/fonts/vf/bitstrea/charter/* +# texmf/fonts/vf/cg/albertus/* => texmf/fonts/vf/cg/albertus/* +# texmf/fonts/vf/cg/atqolive/* => texmf/fonts/vf/cg/atqolive/* +# texmf/fonts/vf/cg/clarendo/* => texmf/fonts/vf/cg/clarendo/* +# texmf/fonts/vf/cg/coronet/* => texmf/fonts/vf/cg/coronet/* +# texmf/fonts/vf/cg/courier/* => texmf/fonts/vf/cg/courier/* +# texmf/fonts/vf/cg/garamond/* => texmf/fonts/vf/cg/garamond/* +# texmf/fonts/vf/cg/helvetic/* => texmf/fonts/vf/cg/helvetic/* +# texmf/fonts/vf/cg/lettrgth/* => texmf/fonts/vf/cg/lettrgth/* +# texmf/fonts/vf/cg/marigold/* => texmf/fonts/vf/cg/marigold/* +# texmf/fonts/vf/cg/optima/* => texmf/fonts/vf/cg/optima/* +# texmf/fonts/vf/cg/times/* => texmf/fonts/vf/cg/times/* +# texmf/fonts/vf/cg/timesnew/* => texmf/fonts/vf/cg/timesnew/* +# texmf/fonts/vf/cg/univers/* => texmf/fonts/vf/cg/univers/* +# texmf/fonts/vf/public/ae/* => texmf/fonts/vf/public/ae/* +# texmf/fonts/vf/public/cmcyr/* => texmf/fonts/vf/public/cmcyr/* +# texmf/fonts/vf/public/pazo/* => texmf/fonts/vf/public/pazo/* +# texmf/fonts/vf/public/pxfonts/* => texmf/fonts/vf/public/pxfonts/* +# texmf/fonts/vf/public/qpx/* => texmf/fonts/vf/public/qpx/* +# texmf/fonts/vf/public/qtx/* => texmf/fonts/vf/public/qtx/* +# texmf/fonts/vf/public/txfonts/* => texmf/fonts/vf/public/txfonts/* +# texmf/fonts/vf/public/vcm/* => texmf/fonts/vf/public/vcm/* +# texmf/fonts/vf/yandy/mathplus/* => texmf/fonts/vf/yandy/mathplus/* +# texmf/fonts/vf/yandy/mathtime/* => texmf/fonts/vf/yandy/mathtime/* +# texmf/fonts/vf/yandy/times/* => texmf/fonts/vf/yandy/times/* +# +# +# texmf/aliases => texmf/aliases +# texmf/bibtex/bst/adrconv/* => texmf/bibtex/bst/adrconv/* +# texmf/bibtex/bst/germbib/* => texmf/bibtex/bst/germbib/* +# texmf/bibtex/bst/misc/* => texmf/bibtex/bst/misc/* +# texmf/bibtex/bst/natbib/* => texmf/bibtex/bst/natbib/* +# texmf/bibtex/bst/revtex4/* => texmf/bibtex/bst/revtex4/* +# texmf/doc/index.html => texmf/doc/index.html +# texmf/doc/eplain/* => texmf/doc/eplain/* +# texmf/doc/etex/base/* => texmf/doc/etex/base/* +# texmf/doc/fontinst/base/* => texmf/doc/fontinst/base/* +# texmf/doc/generic/babel/* => texmf/doc/generic/babel/* +# texmf/doc/generic/cmyk-hax/* => texmf/doc/generic/cmyk-hax/* +# texmf/doc/generic/localloc/* => texmf/doc/generic/localloc/* +# texmf/doc/generic/mfpic/* => texmf/doc/generic/mfpic/* +# texmf/doc/generic/multido/* => texmf/doc/generic/multido/* +# texmf/doc/generic/nohyph/* => texmf/doc/generic/nohyph/* +# texmf/doc/generic/poligraf/* => texmf/doc/generic/poligraf/* +# texmf/doc/generic/pstricks/* => texmf/doc/generic/pstricks/* +# texmf/doc/generic/ruhyphen/* => texmf/doc/generic/ruhyphen/* +# texmf/doc/generic/styles/* => texmf/doc/generic/styles/* +# texmf/doc/generic/tap/* => texmf/doc/generic/tap/* +# texmf/doc/generic/texdraw/* => texmf/doc/generic/texdraw/* +# texmf/doc/generic/thumbpdf/* => texmf/doc/generic/thumbpdf/* +# texmf/doc/generic/ukrhyph/* => texmf/doc/generic/ukrhyph/* +# texmf/doc/generic/xypic/* => texmf/doc/generic/xypic/* +# texmf/doc/help/* => texmf/doc/help/* +# texmf/doc/help/ctan/* => texmf/doc/help/ctan/* +# texmf/doc/help/faq/uktug-faq/* => texmf/doc/help/faq/uktug-faq/* +# texmf/doc/images/* => texmf/doc/images/* +# texmf/doc/knuth/* => texmf/doc/knuth/* +# texmf/doc/knuth/errata/* => texmf/doc/knuth/errata/* +# texmf/doc/latex/SIunits/* => texmf/doc/latex/SIunits/* +# texmf/doc/latex/acronym/* => texmf/doc/latex/acronym/* +# texmf/doc/latex/aeguill/* => texmf/doc/latex/aeguill/* +# texmf/doc/latex/anysize/* => texmf/doc/latex/anysize/* +# texmf/doc/latex/base/* => texmf/doc/latex/base/* +# texmf/doc/latex/booktabs/* => texmf/doc/latex/booktabs/* +# texmf/doc/latex/caption/* => texmf/doc/latex/caption/* +# texmf/doc/latex/carlisle/* => texmf/doc/latex/carlisle/* +# texmf/doc/latex/ccaption/* => texmf/doc/latex/ccaption/* +# texmf/doc/latex/ccfonts/* => texmf/doc/latex/ccfonts/* +# texmf/doc/latex/changebar/* => texmf/doc/latex/changebar/* +# texmf/doc/latex/currvita/* => texmf/doc/latex/currvita/* +# texmf/doc/latex/custom-bib/* => texmf/doc/latex/custom-bib/* +# texmf/doc/latex/cyrillic/* => texmf/doc/latex/cyrillic/* +# texmf/doc/latex/dinbrief/* => texmf/doc/latex/dinbrief/* +# texmf/doc/latex/draftcopy/* => texmf/doc/latex/draftcopy/* +# texmf/doc/latex/eepic/* => texmf/doc/latex/eepic/* +# texmf/doc/latex/eso-pic/* => texmf/doc/latex/eso-pic/* +# texmf/doc/latex/extsizes/* => texmf/doc/latex/extsizes/* +# texmf/doc/latex/fancyhdr/* => texmf/doc/latex/fancyhdr/* +# texmf/doc/latex/fancyvrb/* => texmf/doc/latex/fancyvrb/* +# texmf/doc/latex/floatflt/* => texmf/doc/latex/floatflt/* +# texmf/doc/latex/footmisc/* => texmf/doc/latex/footmisc/* +# texmf/doc/latex/g-brief/* => texmf/doc/latex/g-brief/* +# texmf/doc/latex/general/* => texmf/doc/latex/general/* +# texmf/doc/latex/geometry/* => texmf/doc/latex/geometry/* +# texmf/doc/latex/graphics/* => texmf/doc/latex/graphics/* +# texmf/doc/latex/hyperref/* => texmf/doc/latex/hyperref/* +# texmf/doc/latex/images/* => texmf/doc/latex/images/* +# texmf/doc/latex/jknappen/* => texmf/doc/latex/jknappen/* +# texmf/doc/latex/koma-script/* => texmf/doc/latex/koma-script/* +# texmf/doc/latex/latex2e-html/* => texmf/doc/latex/latex2e-html/* +# texmf/doc/latex/leftidx/* => texmf/doc/latex/leftidx/* +# texmf/doc/latex/lettrine/* => texmf/doc/latex/lettrine/* +# texmf/doc/latex/mathtime/* => texmf/doc/latex/mathtime/* +# texmf/doc/latex/mdwtools/* => texmf/doc/latex/mdwtools/* +# texmf/doc/latex/mfnfss/* => texmf/doc/latex/mfnfss/* +# texmf/doc/latex/minitoc/* => texmf/doc/latex/minitoc/* +# texmf/doc/latex/mltex/* => texmf/doc/latex/mltex/* +# texmf/doc/latex/ms/* => texmf/doc/latex/ms/* +# texmf/doc/latex/mwcls/* => texmf/doc/latex/mwcls/* +# texmf/doc/latex/natbib/* => texmf/doc/latex/natbib/* +# texmf/doc/latex/nomencl/* => texmf/doc/latex/nomencl/* +# texmf/doc/latex/ntgclass/* => texmf/doc/latex/ntgclass/* +# texmf/doc/latex/oberdiek/* => texmf/doc/latex/oberdiek/* +# texmf/doc/latex/overpic/* => texmf/doc/latex/overpic/* +# texmf/doc/latex/pb-diagram/* => texmf/doc/latex/pb-diagram/* +# texmf/doc/latex/pdfpages/* => texmf/doc/latex/pdfpages/* +# texmf/doc/latex/preprint/* => texmf/doc/latex/preprint/* +# texmf/doc/latex/program/* => texmf/doc/latex/program/* +# texmf/doc/latex/psfrag/* => texmf/doc/latex/psfrag/* +# texmf/doc/latex/psgo/* => texmf/doc/latex/psgo/* +# texmf/doc/latex/pslatex/* => texmf/doc/latex/pslatex/* +# texmf/doc/latex/psnfss/* => texmf/doc/latex/psnfss/* +# texmf/doc/latex/revtex4/* => texmf/doc/latex/revtex4/* +# texmf/doc/latex/rotating/* => texmf/doc/latex/rotating/* +# texmf/doc/latex/rotfloat/* => texmf/doc/latex/rotfloat/* +# texmf/doc/latex/scale/* => texmf/doc/latex/scale/* +# texmf/doc/latex/seminar/* => texmf/doc/latex/seminar/* +# texmf/doc/latex/showlabels/* => texmf/doc/latex/showlabels/* +# texmf/doc/latex/sidecap/* => texmf/doc/latex/sidecap/* +# texmf/doc/latex/styles/* => texmf/doc/latex/styles/* +# texmf/doc/latex/supertab/* => texmf/doc/latex/supertab/* +# texmf/doc/latex/textmerg/* => texmf/doc/latex/textmerg/* +# texmf/doc/latex/tocbibind/* => texmf/doc/latex/tocbibind/* +# texmf/doc/latex/tools/* => texmf/doc/latex/tools/* +# texmf/doc/latex/treesvr/* => texmf/doc/latex/treesvr/* +# texmf/doc/latex/units/* => texmf/doc/latex/units/* +# texmf/doc/latex/wasysym/* => texmf/doc/latex/wasysym/* +# texmf/doc/latex/xtab/* => texmf/doc/latex/xtab/* +# texmf/doc/latex/yfonts/* => texmf/doc/latex/yfonts/* +# texmf/doc/makeindex/* => texmf/doc/makeindex/* +# texmf/doc/pdftex/base/* => texmf/doc/pdftex/base/* +# texmf/doc/programs/* => texmf/doc/programs/* +# texmf/doc/tetex/* => texmf/doc/tetex/* +# texmf/doc/texdoctk/* => texmf/doc/texdoctk/* +# texmf/dvipdfm/* => texmf/dvipdfm/* +# texmf/dvips/antp/* => texmf/dvips/antp/* +# texmf/dvips/antt/* => texmf/dvips/antt/* +# texmf/dvips/base/* => texmf/dvips/base/* +# texmf/dvips/bluesky/* => texmf/dvips/bluesky/* +# texmf/dvips/cc-pl/* => texmf/dvips/cc-pl/* +# texmf/dvips/config/* => texmf/dvips/config/* +# texmf/dvips/misc/* => texmf/dvips/misc/* +# texmf/dvips/pl/* => texmf/dvips/pl/* +# texmf/dvips/psfrag/* => texmf/dvips/psfrag/* +# texmf/dvips/psnfss/* => texmf/dvips/psnfss/* +# texmf/dvips/pstricks/* => texmf/dvips/pstricks/* +# texmf/dvips/qfonts/* => texmf/dvips/qfonts/* +# texmf/dvips/tetex/* => texmf/dvips/tetex/* +# texmf/dvips/xypic/* => texmf/dvips/xypic/* +# texmf/etex/latex/config/* => texmf/etex/latex/config/* +# texmf/etex/latex/misc/* => texmf/etex/latex/misc/* +# texmf/etex/plain/base/* => texmf/etex/plain/base/* +# texmf/etex/plain/config/* => texmf/etex/plain/config/* +# texmf/fontname/* => texmf/fontname/* +# texmf/makeindex/* => texmf/makeindex/* +# texmf/mft/* => texmf/mft/* +# texmf/pdfetex/latex/config/* => texmf/pdfetex/latex/config/* +# texmf/pdfetex/tex/config/* => texmf/pdfetex/tex/config/* +# texmf/pdftex/config/* => texmf/pdftex/config/* +# texmf/pdftex/latex/config/* => texmf/pdftex/latex/config/* +# texmf/pdftex/plain/config/* => texmf/pdftex/plain/config/* +# texmf/pdftex/plain/misc/* => texmf/pdftex/plain/misc/* +# texmf/pdftex/platex/config/* => texmf/pdftex/platex/config/* +# texmf/tex/eplain/* => texmf/tex/eplain/* +# texmf/tex/fontinst/base/* => texmf/tex/fontinst/base/* +# texmf/tex/generic/babel/* => texmf/tex/generic/babel/* +# texmf/tex/generic/config/* => texmf/tex/generic/config/* +# texmf/tex/generic/eijkhout/* => texmf/tex/generic/eijkhout/* +# texmf/tex/generic/german/* => texmf/tex/generic/german/* +# texmf/tex/generic/hyphen/* => texmf/tex/generic/hyphen/* +# texmf/tex/generic/mfpic/* => texmf/tex/generic/mfpic/* +# texmf/tex/generic/misc/* => texmf/tex/generic/misc/* +# texmf/tex/generic/multido/* => texmf/tex/generic/multido/* +# texmf/tex/generic/pictex/* => texmf/tex/generic/pictex/* +# texmf/tex/generic/pstricks/* => texmf/tex/generic/pstricks/* +# texmf/tex/generic/qpx/* => texmf/tex/generic/qpx/* +# texmf/tex/generic/qtx/* => texmf/tex/generic/qtx/* +# texmf/tex/generic/ruhyphen/* => texmf/tex/generic/ruhyphen/* +# texmf/tex/generic/spanishb/* => texmf/tex/generic/spanishb/* +# texmf/tex/generic/texdraw/* => texmf/tex/generic/texdraw/* +# texmf/tex/generic/thumbpdf/* => texmf/tex/generic/thumbpdf/* +# texmf/tex/generic/ukrhyph/* => texmf/tex/generic/ukrhyph/* +# texmf/tex/generic/vietnam/* => texmf/tex/generic/vietnam/* +# texmf/tex/generic/xypic/* => texmf/tex/generic/xypic/* +# texmf/tex/latex/SIunits/* => texmf/tex/latex/SIunits/* +# texmf/tex/latex/adrconv/* => texmf/tex/latex/adrconv/* +# texmf/tex/latex/ae/* => texmf/tex/latex/ae/* +# texmf/tex/latex/antp/* => texmf/tex/latex/antp/* +# texmf/tex/latex/antt/* => texmf/tex/latex/antt/* +# texmf/tex/latex/base/* => texmf/tex/latex/base/* +# texmf/tex/latex/bbm/* => texmf/tex/latex/bbm/* +# texmf/tex/latex/bbold/* => texmf/tex/latex/bbold/* +# texmf/tex/latex/caption/* => texmf/tex/latex/caption/* +# texmf/tex/latex/carlisle/* => texmf/tex/latex/carlisle/* +# texmf/tex/latex/ccfonts/* => texmf/tex/latex/ccfonts/* +# texmf/tex/latex/cite/* => texmf/tex/latex/cite/* +# texmf/tex/latex/cmbright/* => texmf/tex/latex/cmbright/* +# texmf/tex/latex/concmath/* => texmf/tex/latex/concmath/* +# texmf/tex/latex/config/* => texmf/tex/latex/config/* +# texmf/tex/latex/cslatex/* => texmf/tex/latex/cslatex/* +# texmf/tex/latex/curves/* => texmf/tex/latex/curves/* +# texmf/tex/latex/custom-bib/* => texmf/tex/latex/custom-bib/* +# texmf/tex/latex/cyrillic/* => texmf/tex/latex/cyrillic/* +# texmf/tex/latex/dinbrief/* => texmf/tex/latex/dinbrief/* +# texmf/tex/latex/dstroke/* => texmf/tex/latex/dstroke/* +# texmf/tex/latex/dvilj/* => texmf/tex/latex/dvilj/* +# texmf/tex/latex/eepic/* => texmf/tex/latex/eepic/* +# texmf/tex/latex/endfloat/* => texmf/tex/latex/endfloat/* +# texmf/tex/latex/extsizes/* => texmf/tex/latex/extsizes/* +# texmf/tex/latex/fancyhdr/* => texmf/tex/latex/fancyhdr/* +# texmf/tex/latex/fancyheadings/* => texmf/tex/latex/fancyheadings/* +# texmf/tex/latex/fancyvrb/* => texmf/tex/latex/fancyvrb/* +# texmf/tex/latex/fp/* => texmf/tex/latex/fp/* +# texmf/tex/latex/g-brief/* => texmf/tex/latex/g-brief/* +# texmf/tex/latex/graphics/* => texmf/tex/latex/graphics/* +# texmf/tex/latex/hyperref/* => texmf/tex/latex/hyperref/* +# texmf/tex/latex/jknappen/* => texmf/tex/latex/jknappen/* +# texmf/tex/latex/koma-script/* => texmf/tex/latex/koma-script/* +# texmf/tex/latex/labels/* => texmf/tex/latex/labels/* +# texmf/tex/latex/lucidabr/* => texmf/tex/latex/lucidabr/* +# texmf/tex/latex/mathpple/* => texmf/tex/latex/mathpple/* +# texmf/tex/latex/mathtime/* => texmf/tex/latex/mathtime/* +# texmf/tex/latex/mdwtools/* => texmf/tex/latex/mdwtools/* +# texmf/tex/latex/mflogo/* => texmf/tex/latex/mflogo/* +# texmf/tex/latex/mfnfss/* => texmf/tex/latex/mfnfss/* +# texmf/tex/latex/minitoc/* => texmf/tex/latex/minitoc/* +# texmf/tex/latex/misc/* => texmf/tex/latex/misc/* +# texmf/tex/latex/mltex/* => texmf/tex/latex/mltex/* +# texmf/tex/latex/ms/* => texmf/tex/latex/ms/* +# texmf/tex/latex/multirow/* => texmf/tex/latex/multirow/* +# texmf/tex/latex/mwcls/* => texmf/tex/latex/mwcls/* +# texmf/tex/latex/natbib/* => texmf/tex/latex/natbib/* +# texmf/tex/latex/ntgclass/* => texmf/tex/latex/ntgclass/* +# texmf/tex/latex/oberdiek/* => texmf/tex/latex/oberdiek/* +# texmf/tex/latex/palatcm/* => texmf/tex/latex/palatcm/* +# texmf/tex/latex/pb-diagram/* => texmf/tex/latex/pb-diagram/* +# texmf/tex/latex/preprint/* => texmf/tex/latex/preprint/* +# texmf/tex/latex/psnfss/* => texmf/tex/latex/psnfss/* +# texmf/tex/latex/pstricks/* => texmf/tex/latex/pstricks/* +# texmf/tex/latex/pxfonts/* => texmf/tex/latex/pxfonts/* +# texmf/tex/latex/qfonts/* => texmf/tex/latex/qfonts/* +# texmf/tex/latex/revtex4/* => texmf/tex/latex/revtex4/* +# texmf/tex/latex/seminar/* => texmf/tex/latex/seminar/* +# texmf/tex/latex/t2/* => texmf/tex/latex/t2/* +# texmf/tex/latex/texmacs/* => texmf/tex/latex/texmacs/* +# texmf/tex/latex/textmerg/* => texmf/tex/latex/textmerg/* +# texmf/tex/latex/titlesec/* => texmf/tex/latex/titlesec/* +# texmf/tex/latex/tools/* => texmf/tex/latex/tools/* +# texmf/tex/latex/txfonts/* => texmf/tex/latex/txfonts/* +# texmf/tex/latex/umlaute/* => texmf/tex/latex/umlaute/* +# texmf/tex/latex/units/* => texmf/tex/latex/units/* +# texmf/tex/latex/vnps/* => texmf/tex/latex/vnps/* +# texmf/tex/latex/vnr/* => texmf/tex/latex/vnr/* +# texmf/tex/latex/wasysym/* => texmf/tex/latex/wasysym/* +# texmf/tex/plain/base/* => texmf/tex/plain/base/* +# texmf/tex/plain/config/* => texmf/tex/plain/config/* +# texmf/tex/plain/dvips/* => texmf/tex/plain/dvips/* +# texmf/tex/plain/graphics/* => texmf/tex/plain/graphics/* +# texmf/tex/plain/mathtime/* => texmf/tex/plain/mathtime/* +# texmf/tex/plain/misc/* => texmf/tex/plain/misc/* +# texmf/tex/plain/plnfss/* => texmf/tex/plain/plnfss/* +# texmf/tex/texinfo/* => texmf/tex/texinfo/* +# texmf/texconfig/* => texmf/texconfig/* +# texmf/texdoctk/* => texmf/texdoctk/* +# texmf/web2c/* => texmf/web2c/* +# texmf/xdvi/* => texmf/xdvi/* +# + +# +# XEmacs binaries +# +[source = "$XEmacsDir/xemacs-21.5/i586-pc-win32"] +## FIXME : we don't need to install from there ! +# config.values => bin/win32/config.values +# DOC => bin/win32/DOC +# etags.exe => bin/win32/etags.exe +# gnuclient.exe => bin/win32/gnuclient.exe +# gnuclientw.exe => bin/win32/gnuclientw.exe +# gnuserv.exe => bin/win32/gnuserv.exe +# hexl.exe => bin/win32/hexl.exe +# i.exe => bin/win32/i.exe +# make-docfile.exe => bin/win32/make-docfile.exe +# make-dump-id.exe => bin/win32/make-dump-id.exe +# minitar.exe => bin/win32/minitar.exe +# mmencode.exe => bin/win32/mmencode.exe +# movemail.exe => bin/win32/movemail.exe +# MSVCR70.DLL => BIN/WIN32/MSVCR70.DLL +# sorted-doc.exe => bin/win32/sorted-doc.exe +# tl80cface.dll => bin/win32/tl80cface.dll +# tl80jpeg.dll => bin/win32/tl80jpeg.dll +# tl80png.dll => bin/win32/tl80png.dll +# tl80tiff.dll => bin/win32/tl80tiff.dll +# tl80xpm.dll => bin/win32/tl80xpm.dll +# tl80zlib.dll => bin/win32/tl80zlib.dll +# wakeup.exe => bin/win32/wakeup.exe +# winclient.exe => bin/win32/winclient.exe +# windoit.exe => bin/win32/windoit.exe +# xemacs.exe => bin/win32/xemacs.exe + +[source = "$XEmacsDir/xemacs-21.5"] +# +# XEmacs base files +# +# etc/* => xemtex/etc/* +# info/* => xemtex/info/* +# lisp/* => xemtex/lisp/* + +[source = "$XEmacsDir"] +# +# XEmacs packages +# + +# xemacs-packages/etc/yow-lines => xemtex/xemacs-packages/etc/yow-lines +# xemacs-packages/etc/app-defaults/* => xemtex/xemacs-packages/etc/app-defaults/* +# xemacs-packages/etc/e/* => xemtex/xemacs-packages/etc/e/* +xemacs-packages/etc/start-files/* => xemtex/xemacs-packages/etc/start-files/* +xemacs-packages/info/dir => xemtex/xemacs-packages/info/dir +xemacs-packages/info/send-pr.info => xemtex/xemacs-packages/info/send-pr.info +xemacs-packages/lib-src/install-sid => xemtex/xemacs-packages/lib-src/install-sid +xemacs-packages/lib-src/pstogif => xemtex/xemacs-packages/lib-src/pstogif +xemacs-packages/lib-src/send-pr => xemtex/xemacs-packages/lib-src/send-pr + +# AUC-TeX +xemacs-packages/etc/auctex/* => xemtex/xemacs-packages/etc/auctex/* +xemacs-packages/info/auctex.* => xemtex/xemacs-packages/info/auctex.* +xemacs-packages/lisp/auctex/* => xemtex/xemacs-packages/lisp/auctex/* +xemacs-packages/man/auctex/* => xemtex/xemacs-packages/man/auctex/* +xemacs-packages/pkginfo/MANIFEST.auctex => xemtex/xemacs-packages/pkginfo/MANIFEST.auctex + +# Calc +# xemacs-packages/info/calc.* => xemtex/xemacs-packages/info/calc.* +# xemacs-packages/lisp/calc/* => xemtex/xemacs-packages/lisp/calc/* +# xemacs-packages/man/calc/* => xemtex/xemacs-packages/man/calc/* +# xemacs-packages/pkginfo/MANIFEST.calc => xemtex/xemacs-packages/pkginfo/MANIFEST.calc + +# +# Ada support +# +# xemacs-packages/pkginfo/MANIFEST.ada => xemtex/xemacs-packages/pkginfo/MANIFEST.ada +# xemacs-packages/lisp/ada/* => xemtex/xemacs-packages/lisp/ada/* + +# +# Build support +# +xemacs-packages/pkginfo/MANIFEST.build => xemtex/xemacs-packages/pkginfo/MANIFEST.build +xemacs-packages/man/build/* => xemtex/xemacs-packages/man/build/* +xemacs-packages/lisp/build/* => xemtex/xemacs-packages/lisp/build/* +xemacs-packages/info/build.info => xemtex/xemacs-packages/info/build.info + +# +# C support +# +xemacs-packages/pkginfo/MANIFEST.c-support => xemtex/xemacs-packages/pkginfo/MANIFEST.c-support +xemacs-packages/lisp/c-support/* => xemtex/xemacs-packages/lisp/c-support/* + +# +# Calendar mode +# +# xemacs-packages/pkginfo/MANIFEST.calendar => xemtex/xemacs-packages/pkginfo/MANIFEST.calendar +# xemacs-packages/lisp/calendar/* => xemtex/xemacs-packages/lisp/calendar/* + +# +# CC mode +# +xemacs-packages/pkginfo/MANIFEST.cc-mode => xemtex/xemacs-packages/pkginfo/MANIFEST.cc-mode +xemacs-packages/lisp/cc-mode/* => xemtex/xemacs-packages/lisp/cc-mode/* +xemacs-packages/man/cc-mode/* => xemtex/xemacs-packages/man/cc-mode/* +xemacs-packages/info/cc-mode.* => xemtex/xemacs-packages/info/cc-mode.* + +# +# Cookie's fortune +# +xemacs-packages/pkginfo/MANIFEST.cookie => xemtex/xemacs-packages/pkginfo/MANIFEST.cookie +xemacs-packages/lisp/cookie/* => xemtex/xemacs-packages/lisp/cookie/* + +# +# Remote dictionnary access +# +# xemacs-packages/pkginfo/MANIFEST.dictionary => xemtex/xemacs-packages/pkginfo/MANIFEST.dictionary +# xemacs-packages/lisp/dictionary/* => xemtex/xemacs-packages/lisp/dictionary/* + +# +# Directory editor +# +xemacs-packages/pkginfo/MANIFEST.dired => xemtex/xemacs-packages/pkginfo/MANIFEST.dired +xemacs-packages/lisp/dired/* => xemtex/xemacs-packages/lisp/dired/* + +# +# Docbook SGML support +# +xemacs-packages/pkginfo/MANIFEST.docbookide => xemtex/xemacs-packages/pkginfo/MANIFEST.docbookide +xemacs-packages/lisp/docbookide/* => xemtex/xemacs-packages/lisp/docbookide/* + +# +# Emacs lisp debugger +# +xemacs-packages/pkginfo/MANIFEST.edebug => xemtex/xemacs-packages/pkginfo/MANIFEST.edebug +xemacs-packages/lisp/edebug/* => xemtex/xemacs-packages/lisp/edebug/* + +# +# +# +# xemacs-packages/pkginfo/MANIFEST.edict => xemtex/xemacs-packages/pkginfo/MANIFEST.edict +# xemacs-packages/lisp/edict/* => xemtex/xemacs-packages/lisp/edict/* +# xemacs-packages/etc/edict/* => xemtex/xemacs-packages/etc/edict/* + +# +# Various editing utilities +# +xemacs-packages/pkginfo/MANIFEST.edit-utils => xemtex/xemacs-packages/pkginfo/MANIFEST.edit-utils +xemacs-packages/lisp/edit-utils/* => xemtex/xemacs-packages/lisp/edit-utils/* + +# +# EFS remote file access +# +xemacs-packages/pkginfo/MANIFEST.efs => xemtex/xemacs-packages/pkginfo/MANIFEST.efs +xemacs-packages/lisp/efs/* => xemtex/xemacs-packages/lisp/efs/* +xemacs-packages/man/efs/* => xemtex/xemacs-packages/man/efs/* +xemacs-packages/info/efs.* => xemtex/xemacs-packages/info/efs.* + +# +# Object Oriented System for emacs lisp +# +# xemacs-packages/pkginfo/MANIFEST.eieio => xemtex/xemacs-packages/pkginfo/MANIFEST.eieio +# xemacs-packages/lisp/eieio/* => xemtex/xemacs-packages/lisp/eieio/* +# xemacs-packages/man/eieio/* => xemtex/xemacs-packages/man/eieio/* + +# +# Forms +# +xemacs-packages/pkginfo/MANIFEST.forms => xemtex/xemacs-packages/pkginfo/MANIFEST.forms +xemacs-packages/lisp/forms/* => xemtex/xemacs-packages/lisp/forms/* +xemacs-packages/man/forms/* => xemtex/xemacs-packages/man/forms/* +xemacs-packages/info/forms.* => xemtex/xemacs-packages/info/forms.* + +# +# Fortran support +# +# xemacs-packages/pkginfo/MANIFEST.fortran-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.fortran-modes +# xemacs-packages/lisp/fortran-modes/* => xemtex/xemacs-packages/lisp/fortran-modes/* + +# +# Icons depending on buffer mode +# +# xemacs-packages/pkginfo/MANIFEST.frame-icon => xemtex/xemacs-packages/pkginfo/MANIFEST.frame-icon +# xemacs-packages/lisp/frame-icon/* => xemtex/xemacs-packages/lisp/frame-icon/* +# xemacs-packages/etc/frame-icon/* => xemtex/xemacs-packages/etc/frame-icon/* + +# +# FSF Emacs compatibility +# +xemacs-packages/pkginfo/MANIFEST.fsf-compat => xemtex/xemacs-packages/pkginfo/MANIFEST.fsf-compat +xemacs-packages/lisp/fsf-compat/* => xemtex/xemacs-packages/lisp/fsf-compat/* + +# +# Haskell support +# +# xemacs-packages/pkginfo/MANIFEST.haskell-mode => xemtex/xemacs-packages/pkginfo/MANIFEST.haskell-mode +# xemacs-packages/lisp/haskell-mode/* => xemtex/xemacs-packages/lisp/haskell-mode/* +# xemacs-packages/etc/haskell-mode/* => xemtex/xemacs-packages/etc/haskell-mode/* + +# +# HTML edition support +# +xemacs-packages/pkginfo/MANIFEST.hm--html-menus => xemtex/xemacs-packages/pkginfo/MANIFEST.hm--html-menus +xemacs-packages/lisp/hm--html-menus/* => xemtex/xemacs-packages/lisp/hm--html-menus/* +xemacs-packages/man/hm--html-menus/* => xemtex/xemacs-packages/man/hm--html-menus/* +xemacs-packages/info/hm--html-mode.* => xemtex/xemacs-packages/info/hm--html-mode.* +xemacs-packages/etc/hm--html-menus/* => xemtex/xemacs-packages/etc/hm--html-menus/* + +# +# Buffer mode +# +xemacs-packages/pkginfo/MANIFEST.ibuffer => xemtex/xemacs-packages/pkginfo/MANIFEST.ibuffer +xemacs-packages/lisp/ibuffer/* => xemtex/xemacs-packages/lisp/ibuffer/* + +# +# Grep support +# +xemacs-packages/pkginfo/MANIFEST.igrep => xemtex/xemacs-packages/pkginfo/MANIFEST.igrep +xemacs-packages/lisp/igrep/* => xemtex/xemacs-packages/lisp/igrep/* + +# +# Lisp support +# +# xemacs-packages/pkginfo/MANIFEST.ilisp => xemtex/xemacs-packages/pkginfo/MANIFEST.ilisp +# xemacs-packages/lisp/ilisp/* => xemtex/xemacs-packages/lisp/ilisp/* +# xemacs-packages/man/ilisp/* => xemtex/xemacs-packages/man/ilisp/* +# xemacs-packages/info/ilisp.* => xemtex/xemacs-packages/info/ilisp.* +# xemacs-packages/etc/ilisp/* => xemtex/xemacs-packages/etc/ilisp/* + +# +# ISpell support +# +xemacs-packages/pkginfo/MANIFEST.ispell => xemtex/xemacs-packages/pkginfo/MANIFEST.ispell +xemacs-packages/lisp/ispell/* => xemtex/xemacs-packages/lisp/ispell/* +xemacs-packages/man/ispell/* => xemtex/xemacs-packages/man/ispell/* +xemacs-packages/info/ispell.* => xemtex/xemacs-packages/info/ispell.* + +# +# Java development environment +# +xemacs-packages/pkginfo/MANIFEST.jde => xemtex/xemacs-packages/pkginfo/MANIFEST.jde +xemacs-packages/lisp/jde/* => xemtex/xemacs-packages/lisp/jde/* +xemacs-packages/etc/jde/* => xemtex/xemacs-packages/etc/jde/* + +# +# Unify latin encoding variants +# +xemacs-packages/pkginfo/MANIFEST.latin-unity => xemtex/xemacs-packages/pkginfo/MANIFEST.latin-unity +xemacs-packages/lisp/latin-unity/* => xemtex/xemacs-packages/lisp/latin-unity/* +xemacs-packages/man/latin-unity/* => xemtex/xemacs-packages/man/latin-unity/* +xemacs-packages/info/latin-unity.* => xemtex/xemacs-packages/info/latin-unity.* +xemacs-packages/etc/latin-unity/* => xemtex/xemacs-packages/etc/latin-unity/* + +xemacs-packages/pkginfo/MANIFEST.locale => xemtex/xemacs-packages/pkginfo/MANIFEST.locale +xemacs-packages/lisp/locale/* => xemtex/xemacs-packages/lisp/locale/* + +# +# +# +xemacs-packages/pkginfo/MANIFEST.net-utils => xemtex/xemacs-packages/pkginfo/MANIFEST.net-utils +xemacs-packages/lisp/net-utils/* => xemtex/xemacs-packages/lisp/net-utils/* + +# +# OCaml support +# +# xemacs-packages/pkginfo/MANIFEST.ocaml => xemtex/xemacs-packages/pkginfo/MANIFEST.ocaml +# xemacs-packages/lisp/ocaml/* => xemtex/xemacs-packages/lisp/ocaml/* + +# +# OS support +# +xemacs-packages/pkginfo/MANIFEST.os-utils => xemtex/xemacs-packages/pkginfo/MANIFEST.os-utils +xemacs-packages/lisp/os-utils/* => xemtex/xemacs-packages/lisp/os-utils/* + +# +# PC support +# +xemacs-packages/pkginfo/MANIFEST.pc => xemtex/xemacs-packages/pkginfo/MANIFEST.pc +xemacs-packages/lisp/pc/* => xemtex/xemacs-packages/lisp/pc/* + +# +# Perl support +# +xemacs-packages/pkginfo/MANIFEST.perl-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.perl-modes +xemacs-packages/lisp/perl-modes/* => xemtex/xemacs-packages/lisp/perl-modes/* + +# +# Emacs preview support +# +xemacs-packages/pkginfo/MANIFEST.preview => xemtex/xemacs-packages/pkginfo/MANIFEST.preview +xemacs-packages/lisp/preview/* => xemtex/xemacs-packages/lisp/preview/* +xemacs-packages/info/preview-latex.* => xemtex/xemacs-packages/info/preview-latex.* +xemacs-packages/etc/preview/* => xemtex/xemacs-packages/etc/preview/* + +# +# Various programming modes +# +# xemacs-packages/pkginfo/MANIFEST.prog-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.prog-modes +# xemacs-packages/lisp/prog-modes/* => xemtex/xemacs-packages/lisp/prog-modes/* + +# +# +# Print buffer +xemacs-packages/pkginfo/MANIFEST.ps-print => xemtex/xemacs-packages/pkginfo/MANIFEST.ps-print +xemacs-packages/lisp/ps-print-nomule/* => xemtex/xemacs-packages/lisp/ps-print-nomule/* + +xemacs-packages/pkginfo/MANIFEST.ps-print-nomule => xemtex/xemacs-packages/pkginfo/MANIFEST.ps-print-nomule +xemacs-packages/lisp/ps-print/* => xemtex/xemacs-packages/lisp/ps-print/* +xemacs-packages/etc/ps-print/* => xemtex/xemacs-packages/etc/ps-print/* + +# +# SGML support +# +xemacs-packages/pkginfo/MANIFEST.psgml => xemtex/xemacs-packages/pkginfo/MANIFEST.psgml +xemacs-packages/lisp/psgml/* => xemtex/xemacs-packages/lisp/psgml/* +xemacs-packages/man/psgml/* => xemtex/xemacs-packages/man/psgml/* +xemacs-packages/info/psgml-api.* => xemtex/xemacs-packages/info/psgml-api.* +xemacs-packages/info/psgml.* => xemtex/xemacs-packages/info/psgml.* +xemacs-packages/etc/psgml/* => xemtex/xemacs-packages/etc/psgml/* + +xemacs-packages/pkginfo/MANIFEST.psgml-dtds => xemtex/xemacs-packages/pkginfo/MANIFEST.psgml-dtds +xemacs-packages/lisp/psgml-dtds/* => xemtex/xemacs-packages/lisp/psgml-dtds/* +xemacs-packages/etc/psgml-dtds/* => xemtex/xemacs-packages/etc/psgml-dtds/* + +# +# Python support +# +# xemacs-packages/pkginfo/MANIFEST.python-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.python-modes +# xemacs-packages/lisp/python-modes/* => xemtex/xemacs-packages/lisp/python-modes/* + +# +# TeX references +# +xemacs-packages/pkginfo/MANIFEST.reftex => xemtex/xemacs-packages/pkginfo/MANIFEST.reftex +xemacs-packages/lisp/reftex/* => xemtex/xemacs-packages/lisp/reftex/* +xemacs-packages/man/reftex/* => xemtex/xemacs-packages/man/reftex/* +xemacs-packages/info/reftex.* => xemtex/xemacs-packages/info/reftex.* +xemacs-packages/etc/reftex/* => xemtex/xemacs-packages/etc/reftex/* + +# +# Ruby support +# +xemacs-packages/pkginfo/MANIFEST.ruby-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.ruby-modes +xemacs-packages/lisp/ruby-modes/* => xemtex/xemacs-packages/lisp/ruby-modes/* + +# +# Scheme support +# +# xemacs-packages/pkginfo/MANIFEST.scheme => xemtex/xemacs-packages/pkginfo/MANIFEST.scheme +# xemacs-packages/lisp/scheme/* => xemtex/xemacs-packages/lisp/scheme/* + +# +# +# +xemacs-packages/pkginfo/MANIFEST.sgml => xemtex/xemacs-packages/pkginfo/MANIFEST.sgml +xemacs-packages/lisp/sgml/* => xemtex/xemacs-packages/lisp/sgml/* + +xemacs-packages/pkginfo/MANIFEST.sh-script => xemtex/xemacs-packages/pkginfo/MANIFEST.sh-script +xemacs-packages/lisp/sh-script/* => xemtex/xemacs-packages/lisp/sh-script/* + +xemacs-packages/pkginfo/MANIFEST.slider => xemtex/xemacs-packages/pkginfo/MANIFEST.slider +xemacs-packages/lisp/slider/* => xemtex/xemacs-packages/lisp/slider/* +xemacs-packages/etc/slider/* => xemtex/xemacs-packages/etc/slider/* + +# +# SML support +# +xemacs-packages/pkginfo/MANIFEST.sml-mode => xemtex/xemacs-packages/pkginfo/MANIFEST.sml-mode +xemacs-packages/lisp/sml-mode/* => xemtex/xemacs-packages/lisp/sml-mode/* +xemacs-packages/man/sml-mode/* => xemtex/xemacs-packages/man/sml-mode/* +xemacs-packages/info/sml-mode.* => xemtex/xemacs-packages/info/sml-mode.* + +# +# Sounds +# +xemacs-packages/pkginfo/MANIFEST.sounds-au => xemtex/xemacs-packages/pkginfo/MANIFEST.sounds-au +xemacs-packages/lisp/sounds-au/* => xemtex/xemacs-packages/lisp/sounds-au/* +xemacs-packages/pkginfo/MANIFEST.sounds-wav => xemtex/xemacs-packages/pkginfo/MANIFEST.sounds-wav +xemacs-packages/lisp/sounds-wav/* => xemtex/xemacs-packages/lisp/sounds-wav/* +xemacs-packages/etc/sounds/* => xemtex/xemacs-packages/etc/sounds/* + +xemacs-packages/pkginfo/MANIFEST.speedbar => xemtex/xemacs-packages/pkginfo/MANIFEST.speedbar +xemacs-packages/lisp/speedbar/* => xemtex/xemacs-packages/lisp/speedbar/* +xemacs-packages/man/speedbar/* => xemtex/xemacs-packages/man/speedbar/* +xemacs-packages/info/speedbar.* => xemtex/xemacs-packages/info/speedbar.* + +xemacs-packages/pkginfo/MANIFEST.texinfo => xemtex/xemacs-packages/pkginfo/MANIFEST.texinfo +xemacs-packages/lisp/texinfo/* => xemtex/xemacs-packages/lisp/texinfo/* + +xemacs-packages/pkginfo/MANIFEST.text-modes => xemtex/xemacs-packages/pkginfo/MANIFEST.text-modes +xemacs-packages/lisp/text-modes/* => xemtex/xemacs-packages/lisp/text-modes/* + +xemacs-packages/pkginfo/MANIFEST.textools => xemtex/xemacs-packages/pkginfo/MANIFEST.textools +xemacs-packages/lisp/textools/* => xemtex/xemacs-packages/lisp/textools/* + +xemacs-packages/pkginfo/MANIFEST.time => xemtex/xemacs-packages/pkginfo/MANIFEST.time +xemacs-packages/lisp/time/* => xemtex/xemacs-packages/lisp/time/* +xemacs-packages/etc/time/* => xemtex/xemacs-packages/etc/time/* + +xemacs-packages/pkginfo/MANIFEST.tramp => xemtex/xemacs-packages/pkginfo/MANIFEST.tramp +xemacs-packages/lisp/tramp/* => xemtex/xemacs-packages/lisp/tramp/* +xemacs-packages/man/tramp/* => xemtex/xemacs-packages/man/tramp/* +xemacs-packages/info/tramp.* => xemtex/xemacs-packages/info/tramp.* + +# +# VHDL support +# +# xemacs-packages/pkginfo/MANIFEST.vhdl => xemtex/xemacs-packages/pkginfo/MANIFEST.vhdl +# xemacs-packages/lisp/vhdl/* => xemtex/xemacs-packages/lisp/vhdl/* +# xemacs-packages/man/vhdl/* => xemtex/xemacs-packages/man/vhdl/* +# xemacs-packages/info/vhdl-mode.* => xemtex/xemacs-packages/info/vhdl-mode.* + +# +# +# +xemacs-packages/pkginfo/MANIFEST.view-process => xemtex/xemacs-packages/pkginfo/MANIFEST.view-process +xemacs-packages/lisp/view-process/* => xemtex/xemacs-packages/lisp/view-process/* + +# +# XEmacs base package +# +xemacs-packages/pkginfo/MANIFEST.xemacs-base => xemtex/xemacs-packages/pkginfo/MANIFEST.xemacs-base +xemacs-packages/lisp/xemacs-base/* => xemtex/xemacs-packages/lisp/xemacs-base/* + +# +# XEmacs development package +# + +xemacs-packages/pkginfo/MANIFEST.xemacs-devel => xemtex/xemacs-packages/pkginfo/MANIFEST.xemacs-devel +xemacs-packages/lisp/xemacs-devel/* => xemtex/xemacs-packages/lisp/xemacs-devel/* +xemacs-packages/man/xemacs-devel/* => xemtex/xemacs-packages/man/xemacs-devel/* + +# +# XSLT support +# +xemacs-packages/pkginfo/MANIFEST.xslide => xemtex/xemacs-packages/pkginfo/MANIFEST.xslide +xemacs-packages/lisp/xslide/* => xemtex/xemacs-packages/lisp/xslide/* + +xemacs-packages/pkginfo/MANIFEST.xslt-process => xemtex/xemacs-packages/pkginfo/MANIFEST.xslt-process +xemacs-packages/lisp/xslt-process/* => xemtex/xemacs-packages/lisp/xslt-process/* +xemacs-packages/man/xslt-process/* => xemtex/xemacs-packages/man/xslt-process/* +xemacs-packages/info/xslt-process.* => xemtex/xemacs-packages/info/xslt-process.* +xemacs-packages/etc/xslt-process/* => xemtex/xemacs-packages/etc/xslt-process/* + +# +# XEmTeX +# +xemacs-packages/pkginfo/MANIFEST.xemtex => xemtex/xemacs-packages/pkginfo/MANIFEST.xemtex +xemacs-packages/lisp/xemtex/* => xemtex/xemacs-packages/lisp/xemtex/* +xemacs-packages/man/xemtex/* => xemtex/xemacs-packages/man/xemtex/* +xemacs-packages/info/xemtex.* => xemtex/xemacs-packages/info/xemtex.* +xemacs-packages/etc/xemtex/* => xemtex/xemacs-packages/etc/xemtex/* + +## +## GHOSTSCRIPT +## + +[source = "$GsToolsDir/gs7.05"] + +bin/* => bin/win32/* +doc/* => xemtex/doc/ghostscript/* +examples/* => xemtex/doc/ghostscript/examples/* +lib/* => xemtex/gslib/* + +[source = "$GsToolsDir"] + +fonts/* => xemtex/gsfonts/* + +## +## NETPBM +## +#[source = "$NetPBMDir"] +bin/*.dll => bin/win32 +bin/pnmcrop.exe => bin/win32 +bin/ppmtogif => bin/win32 +bin/ppmquant.exe => bin/win32 +bin/pnmflip.exe => bin/win32 +bin/pnmcat.exe => bin/win32 +bin/pnmfile.exe => bin/win32 +bin/pbmmake.exe => bin/win32 +bin/pnmtopng.exe => bin/win32 + +#FIXME: add converters ? + +## +## ImageMagick +## +[source = "$ImageMagick"] + +convert.exe => bin/win32/convert.exe +X11.dll => bin/win32/X11.dll +Xext.dll => bin/win32/Xext.dll +CORE_RL_bzlib_.dll => bin/win32/CORE_RL_bzlib_.dll +CORE_RL_fpx_.dll => bin/win32/CORE_RL_fpx_.dll +CORE_RL_jbig_.dll => bin/win32/CORE_RL_jbig_.dll +CORE_RL_jpeg_.dll => bin/win32/CORE_RL_jpeg_.dll +CORE_RL_lcms_.dll => bin/win32/CORE_RL_lcms_.dll +CORE_RL_libxml_.dll => bin/win32/CORE_RL_libxml_.dll +CORE_RL_Magick++_.dll => bin/win32/CORE_RL_Magick++_.dll +CORE_RL_magick_.dll => bin/win32/CORE_RL_magick_.dll +CORE_RL_png_.dll => bin/win32/CORE_RL_png_.dll +CORE_RL_tiff_.dll => bin/win32/CORE_RL_tiff_.dll +CORE_RL_ttf_.dll => bin/win32/CORE_RL_ttf_.dll +CORE_RL_xlib_.dll => bin/win32/CORE_RL_xlib_.dll +CORE_RL_zlib_.dll => bin/win32/CORE_RL_zlib_.dll +modules/* => xemtex/imagemagick/modules/* +*.txt => xemtex/doc/imagemagick/* +*.html => xemtex/doc/imagemagick/* +licenses/* => xemtex/doc/imagemagick/licences/* +www/* => xemtex/doc/imagemagick/www/* + +## +## Perl +## +# [source = "$PerlDir"] +# +# bin/perl.exe => bin/win32/perl.exe +# bin/tl80perl56.dll => bin/win32/tl80perl56.dll +# lib/* => xemtex/perl/lib/* +# site/* => xemtex/perl/site/* +# html/* => xemtex/doc/perl/* |