diff options
Diffstat (limited to 'Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client')
-rwxr-xr-x | Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client b/Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client new file mode 100755 index 00000000000..0de75a465fa --- /dev/null +++ b/Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client @@ -0,0 +1,177 @@ +#!/usr/bin/env perl +# $Id$ +# copy this file and install-w32client.bat to the same directory +# as texmf, texmf-dist etc. + +# sample mini-installer to give Windows systems access to an +# existing TeXLive installation + +# it assumes a standard directory layout, which avoids hard-coded paths. +# if this is not the case, adjustments may be necessary. + +$^W = 1; + +use TeXLive::TLUtils qw(mkdirhier); +use TeXLive::TLWinGoo qw(non_admin add_texbindir_to_path setenv_reg + init_unshortbat add_desktop_shortcut add_menu_shortcut + register_extension register_file_type + update_assocs broadcast_env + create_uninstaller); +use strict; + +# the code below assumes that this script is in $texdir, +# the directory above texmf, texmf-dist etc. + +my $texdir=$0; +$texdir=~s!\\!/!g; +$texdir=~s!(.*)/.*$!$1!; + +# private runtime-generated files +$::texlive_release = '2008'; +my $texdirw = $ENV{'USERPROFILE'}.'/.texlive'.$::texlive_release; +$texdirw=~s!\\!/!g; +my $private_var = $texdirw.'/texmf-var'; +my $private_var_bsl = $private_var; +$private_var_bsl =~ s!/!\\!g; + +# make only per-user modifications +non_admin(); + +# general + +add_texbindir_to_path($texdir.'/bin/win32'); +broadcast_env(); + +my $mainmenu = "TeX Live 2008"; +my $texbindir_bsl = $texdir.'/bin/win32'; +$texbindir_bsl =~ s!/!\\!g; + +mkdirhier("$texdirw/tlpkg/installer"); +create_uninstaller($texdir, $texdirw, $private_var, $texdirw.'/texmf-config'); +init_unshortbat($texdirw); + +# if the path can't be fixed globally add command prompt +# with texbindir prepended to path + +if (uc(TeXLive::TLWinGoo::win_which_dir('tex.exe')) ne + uc($texdir.'/bin/win32') or + uc(TeXLive::TLWinGoo::win_which_dir('pdftex.exe')) ne + uc($texdir.'/bin/win32') or + uc(TeXLive::TLWinGoo::win_which_dir('luatex.exe')) ne + uc($texdir.'/bin/win32')) { + add_menu_shortcut( + $mainmenu, + 'TeX Live Prompt', + '', + $ENV{'COMSPEC'}, + "/k \"path $texbindir_bsl;%path%\"", + '', + ); +} + +# texlive manual + +add_menu_shortcut( + $mainmenu, + 'TeX Live Manual (en)', + '', # default pdf icon + $texdir.'/texmf-doc/doc/english/texlive-en/texlive-en.pdf', + '', + '', +); + +# texdoctk documentation browser + +if (-e $texdir.'/bin/win32/texdoctk.bat') { + add_menu_shortcut( + $mainmenu, + 'TeXdoc GUI', + '', # icon + $texdir.'/bin/win32/texdoctk.bat', + '', # arguments + 'batgui', # any non-null value to hide command-prompt + ) +} + +# psview + +add_desktop_shortcut( + $texdirw, + 'PS_View', + $texdir.'/tlpkg/tlpsv/psv.exe', # icon, not prog! + $texdir.'/bin/win32/psv.bat', + '', # no args + 'batgui', # any non-null value to hide command-prompt +); +add_menu_shortcut( + $mainmenu, + 'PS_View', + $texdir.'/tlpkg/tlpsv/psv.exe', # icon, not prog! + $texdir.'/bin/win32/psv.bat', + '', # no args + 'batgui', # any non-null value to hide command-prompt +); +# comment out if you prefer gsview +register_extension(".ps", "PostScript"); +register_extension(".eps", "PostScript"); +register_file_type("PostScript", + '"'.$texdir.'/tlpkg/tlpsv/gswxlua.exe" -g '. + '"'.$texdir.'/tlpkg/tlgs/bin/gsdll32.dll" -l '. + '"'.$texdir.'/tlpkg/tlpsv/psv.wx.lua" -p '. + '"'.$texdir.'/tlpkg/tlpsv/psv_view.ps" -sINPUT="%1"'); +update_assocs(); + +# dviout + +add_menu_shortcut( + $mainmenu, + 'DVIOUT', + $texdir.'/tlpkg/dviout/dviout.exe', + 'wscript', + $texdir."/bin/win32/dviout.vbs", + '', +); + +# xetex + +if (-e $texdir.'/bin/win32/xetex.exe') { + my $xetexmfcnf = $private_var.'/web2c'; + my $texmfcnf = $xetexmfcnf.';'.$texdir.'/texmf/web2c'; + setenv_reg('TEXMFCNF', $texmfcnf); + broadcast_env(); + mkdirhier($private_var."/fonts"); + system("xcopy", "/e", "/i", "/q", "/y", "\"$texbindir_bsl\\conf\"", + "\"$private_var_bsl\\fonts\\conf\""); + system("xcopy", "/e", "/i", "/q", "/y", "\"$texbindir_bsl\\cache\"", + "\"$private_var_bsl\\fonts\\cache\""); + if (open(FONTSCONF, "<$texdir/bin/win32/conf/fonts.conf")) { + my @lines = <FONTSCONF>; + close(FONTSCONF); + if (open(FONTSCONF, ">$private_var/fonts/conf/fonts.conf")) { + my $winfontdir; + $winfontdir = $ENV{'SystemRoot'}.'/fonts'; + $winfontdir =~ s!\\!/!g; + foreach (@lines) { + $_ =~ s!c:/Program Files/texlive/2008!$texdir!; + $_ =~ s!c:/windows/fonts!$winfontdir!; + print FONTSCONF; + } + close(FONTSCONF); + } else { + warn("Cannot open $private_var/fonts/conf/fonts.conf for writing\n"); + } + } else { + warn ("Cannot open $texdir/bin/win32/conf/fonts.conf\n"); + } + mkdirhier($xetexmfcnf); + if (open(TMF, ">$xetexmfcnf/texmf.cnf")) { + print TMF "FONTCONFIG_PATH=\$TEXMFVAR/fonts/conf\n"; + print TMF "FC_CACHEDIR=\$TEXMFVAR/fonts/cache\n"; + close TMF; + } else { + warn("Cannot open $xetexmfcnf/texmf.cnf for writing\n"); + } + $ENV{'TEXMFCNF'} = $texmfcnf; + $ENV{'PATH'} = $texbindir_bsl.';'.$ENV{'PATH'}; + system("\"$texbindir_bsl\\fc-cache.exe\"", "-v", "-r"); +} |