summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/doc/texlive/source/texlive-common/w32client/install-w32client')
-rwxr-xr-xMaster/texmf/doc/texlive/source/texlive-common/w32client/install-w32client177
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");
+}