summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-06-11 19:55:26 +0000
committerNorbert Preining <preining@logic.at>2009-06-11 19:55:26 +0000
commita1b7fde47b1bb5e8bb795bfa0774e7f8889dfcf4 (patch)
tree86ca271d17f763dcd1bc9ce3f351ae9d4a4f20c9
parent6926aa31b7f53caf8b5e9b1e1c4ad5ccde9b8b02 (diff)
support -custom-bin cmd line in install-tl
git-svn-id: svn://tug.org/texlive/trunk@13712 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/install-tl39
1 files changed, 37 insertions, 2 deletions
diff --git a/Master/install-tl b/Master/install-tl
index 5b85d828902..1c8d7ea8da6 100755
--- a/Master/install-tl
+++ b/Master/install-tl
@@ -157,6 +157,7 @@ my $opt_print_arch = 0;
my $opt_profileseed = "";
my $opt_profile = "";
my $opt_scheme = "";
+my $opt_custom_bin;
my $opt_version = 0;
# default language for GUI installer
@@ -182,6 +183,7 @@ if (-r "installation.profile") {
process_logging_options();
# now the others
GetOptions(
+ "custom-bin=s" => \$opt_custom_bin,
"fancyselector" => \$::alternative_selector,
"from_dvd" => \$opt_from_dvd,
"gui:s" => \$opt_gui,
@@ -316,7 +318,7 @@ if (($opt_gui ne "text") && !$opt_no_gui && ($opt_profile eq "")) {
platform();
# we do not support cygwin < 1.7, so check for that
-if (platform() eq "i386-cygwin") {
+if (!$opt_custom_bin && (platform() eq "i386-cygwin")) {
chomp( my $un = `uname -r`);
if ($un =~ m/^(\d+)\.(\d+)\./) {
if ($1 < 2 && $2 < 7) {
@@ -368,6 +370,14 @@ if ($location =~ m!^(ctan$|(http|ftp)://)!i) {
info("Installing from: $location\n");
info("Platform: ", platform, " => \'", platform_desc(platform), "\'\n");
+if ($opt_custom_bin) {
+ if (-d $opt_custom_bin) {
+ info("Platform overridden, binaries taken from $opt_custom_bin\nand put into bin/custom!\n");
+ } else {
+ tlwarn("Argument for -custom-bin needs to be directory with TeX Live binaries!\n");
+ exit(1);
+ }
+}
if ($media eq "DVD") {
info("Distribution: live (uncompressed)\n");
} elsif ($media eq "CD") {
@@ -540,6 +550,14 @@ sub do_installation {
calc_depends();
save_options_into_tlpdb();
do_install_packages();
+ if ($opt_custom_bin) {
+ $vars{'this_platform'} = "custom";
+ my $TEXDIR="$vars{'TEXDIR'}";
+ mkdirhier("$TEXDIR/bin/custom");
+ for my $f (<$opt_custom_bin/*>) {
+ copy($f, "$TEXDIR/bin/custom");
+ }
+ }
}
# now we save every scheme that is fully covered by the stuff we have
# installed to the $localtlpdb
@@ -1166,6 +1184,9 @@ sub initialize_collections {
sub set_install_platform {
my $detected_platform=platform;
+ if ($opt_custom_bin) {
+ $detected_platform = "custom";
+ }
my $warn_nobin;
my $warn_nobin_x86_64_linux;
my $nowarn="";
@@ -1185,7 +1206,11 @@ sub set_install_platform {
$vars{'inst_platform'}='i386-linux';
$ret = $warn_nobin_x86_64_linux;
} else {
- $ret = $warn_nobin;
+ if ($opt_custom_bin) {
+ $ret = "$wp Using custom binaries from $opt_custom_bin.\n";
+ } else {
+ $ret = $warn_nobin;
+ }
}
foreach my $key (keys %vars) {
if ($key=~/^binary.*/) {
@@ -1795,6 +1820,16 @@ optionally have a prefix C<scheme->. The list of supported scheme names
depends on what your installation location provides; see the interactive
menu list.
+=item B<-custom-bin> I<path>
+
+In case your architecture is not supported by TeX Live out of the box
+and you have built your own binaries for your system, this option allows
+to give the I<path> to a directory where ready made binaries for your
+system are present. The installation will continue as normally, but at
+the end all files from I<path> are copied over to C<bin/custom> in your
+installation folder and this directory will be added to the path for
+the postinstall actions.
+
=item B<-q>
Omit normal informational messages.