blob: 08f4369da00a93d02b9079e4854576d6da363842 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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_;
}
|