diff options
author | Norbert Preining <preining@logic.at> | 2009-04-30 12:01:59 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2009-04-30 12:01:59 +0000 |
commit | ae61844afd6d2a23bc4af64c344c820f4814f7f9 (patch) | |
tree | cda72304a4d0b4afe69cae48639d616466eeb954 /Master/tlpkg | |
parent | 7c1101a854a753a2b32e6b264e91b49c0749c0b4 (diff) |
add the platform.pl perl script that does nothing else then using config.guess
as first arg to print out the detected platform
git-svn-id: svn://tug.org/texlive/trunk@12892 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg')
-rw-r--r-- | Master/tlpkg/installer/platform.pl | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Master/tlpkg/installer/platform.pl b/Master/tlpkg/installer/platform.pl new file mode 100644 index 00000000000..08f4369da00 --- /dev/null +++ b/Master/tlpkg/installer/platform.pl @@ -0,0 +1,49 @@ + + +print platform($ARGV[0]), "\n"; + +sub platform { + my $config_guess = shift; + unless (defined $::_platform_) { + if ($^O=~/^MSWin(32|64)$/i) { + $::_platform_="win32"; + } else { + if (!defined($config_guess)) { + printf STDERR "first argument must be path to config.guess\n"; + exit 1; + } + my @OSs = qw(aix cygwin darwin freebsd hpux irix linux netbsd + openbsd solaris); + + # We cannot rely on #! in config.guess but have to call /bin/sh + # explicitly because sometimes the 'noexec' flag is set in + # /etc/fstab for ISO9660 file systems. + chomp (my $guessed_platform = `/bin/sh $config_guess`); + + # For example, if the disc or reader has hardware problems. + die "$0: could not run $config_guess, cannot proceed, sorry" + if ! $guessed_platform; + + $guessed_platform =~ s/^x86_64-(.*)-freebsd/amd64-$1-freebsd/; + my $CPU; # CPU type as reported by config.guess. + my $OS; # O/S type as reported by config.guess. + ($CPU = $guessed_platform) =~ s/(.*?)-.*/$1/; + $CPU =~ s/^alpha(.*)/alpha/; # alphaev56 or whatever + $CPU =~ s/powerpc64/powerpc/; # we don't distinguish on ppc64 + for my $os (@OSs) { + $OS = $os if $guessed_platform =~ /$os/; + } + if ($OS eq "darwin") { + $CPU = "universal"; # TL provides universal binaries + } elsif ($CPU =~ /^i.86$/) { + $CPU =~ s/i.86/i386/; + } + unless (defined $OS) { + ($OS = $guessed_platform) =~ s/.*-(.*)/$1/; + } + $::_platform_ = "$CPU-$OS"; + } + } + return $::_platform_; +} + |