office-gobmx/solenv/bin/modules/osarch.pm
2003-03-27 10:48:49 +00:00

198 lines
7.7 KiB
Perl
Executable file

#!/usr/solar/bin/perl -w
# ***********************************************************************
# Description:
# Filename: osarch.pm
# Autor: EG
# Date: 28.10.96
# $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/solenv/bin/modules/osarch.pm,v 1.2 2003-03-27 11:47:56 hr Exp $
# Copyright: STAR DIVISION
# **********************************************************************/
package osarch;
$m_str = `uname -m`;
$s_str = `uname -s`;
chop( $m_str, $s_str );
%osTable = ("SunOS", "solaris",
"HP-UX", "hpux",
"AIX", "aix",
"OS/390", "s390",
"Linux", "linux",
"FreeBSD", "freebsd",
"NetBSD", "netbsd",
"OSF1", "decunix",
"SCO_SV", "scoosr5",
# "SCO_SV", "scouw21",
"Darwin", "macosxp",
"Mac OS", "macosxp",
"SINIX-N", "sinix",
"IRIX", "irix"
);
%osDefTable = ("SunOS", "-DSYSV -DSOLARIS",
"HP-UX", "-DSYSV -DHPUX",
"AIX", "-DSYSV -DAIX",
"Linux", "-DLINUX",
"FreeBSD", "-DFREEBSD",
"NetBSD", "-DNETBSD",
"OSF1", "-DSYSV -DDECUNIX",
"SCO_SV", "-DSYSV -DSCO -DSCO_OSR5",
# "SCO_SV", "-DSYSV -DSCO -DSCO_UW21",
"Darwin", "-DBSD -DMACOSX",
"Mac OS", "-DBSD -DMACOSX",
"SINIX-N", "-DSYSV -DSINIX",
"IRIX", "-DSYSV -DIRIX"
);
%osDosTable = ("SunOS", "sol",
"HP-UX", "hpx",
"AIX", "aix",
"OS/390", "mvs",
"Linux", "lng",
"FreeBSD", "fbsd",
"NetBSD", "bsd",
"SCO_SV", "sco",
"Darwin", "macx",
"Mac OS", "macx",
"SINIX-N", "sni",
"IRIX", "irx"
);
%archTable = ("sun4c", "sparc",
"sun4m", "sparc",
"sun4u", "sparc",
"9000/712", "hp9000",
"9000/715", "hp9000",
"9000/778", "hp9000",
"000029484600", "rs6000", # salsa
"000328144600", "rs6000", # lambada
"00245D29E000", "rs6000", # segv
"00245C46E000", "rs6000", # bus
"002012974600", "rs6000", # tango
"0006404C4C00", "rs6000", # jive
"2003", "g3", # ezopen4
"i86pc", "x86", # blauwal
"i386", "x86", # SCO_SV, NetBSD, FreeBSD
"i486", "x86", # tiger
"i586", "x86", # blauwal
"i686", "x86",
"prep", "ppc", # hooge
"ppc", "ppc", # ppc-linux
"alpha", "alpha",
"RM400", "rm400", # garbo
"IP22", "mips", # voyager
"IP32", "mips", # giotto
"Power Macintosh", "ppc", # NetBSD/arm32
"arm32", "arm32" # NetBSD/arm32
);
%archDefTable=("sun4c", "-DSPARC -DSUN -DSUN4", # hawai
"sun4m", "-DSPARC -DSUN -DSUN4", # broccoli
"sun4u", "-DSPARC -DSUN -DSUN4", # broccoli
"9000/712", "-DHP9000", # tuborg
"9000/715", "-DHP9000", # koepi
"9000/778", "-DHP9000", # jever, flens
"000029484600", "-DRS6000", # salsa
"000328144600", "-DRS6000", # lambada
"00245D29E000", "-DRS6000", # segv
"00245C46E000", "-DRS6000", # segv
"002012974600", "-DRS6000", # tango
"0006404C4C00", "-DRS6000", # jive
"2003", "-DG3", # ezopen4
"i86pc", "-DX86 -DINTEL",# gepard
"i386", "-DX86", # SCO_SV, NetBSD, FreeBSD
"i486", "-DX86", # tiger
"i586", "-DX86", # blauwal
"i686", "-DX86", #
"prep", "-DPPC", # hooge
"ppc", "-DPPC", # ppc-linux
"alpha", "-DALPHA", # mars
"RM400", "-DMIPS -DRM400", # ekberg, garbo
"IP22", "-DMIPS", # voyager
"IP32", "-DMIPS", # giotto
"Power Macintosh", "-DPPC", # NetBSD/arm32
"arm32", "-DARM32" # NetBSD/arm32
);
%archDosTable=("sun4c", "s", # hawai
"sun4m", "s", # broccoli
"sun4u", "s", # broccoli
"9000/712", "r", # tuborg
"9000/715", "r", # koepi
"9000/778", "r", # jever, flens
"000029484600", "p", # salsa
"000328144600", "p", # lambada
"00245D29E000", "p", # segv
"00245C46E000", "p", # segv
"002012974600", "p", # tango
"0006404C4C00", "p", # jive
"2003", "g", # ezopen4
"i86pc", "i", # gepard
"i386", "i", # SCO_SV, NetBSD, FreeBSD
"i486", "i", # tiger
"i586", "i", # blauwal
"i686", "i",
"prep", "p", # hooge
"ppc", "p", # ppc-linux
"alpha", "a", # mars
"RM400", "m", # ekberg, garbo
"IP22", "m", # voyager
"IP32", "m", # giotto
"Power Macintosh", "p", # NetBSD/arm32
"arm32", "a" # NetBSD/arm32
);
$main::solarDef = $osDefTable{ $s_str }.' '.$archDefTable{ $m_str };
$main::solarOS = $osTable{ $s_str };
$main::solarMT = $archTable{ $m_str };
$main::solarArch = $main::solarOS.$main::solarMT;
$main::solarOldArch = $main::solarArch; # for compatibility
$main::solarDOS = 'unx'.$osDosTable{ $s_str }. $archDosTable{ $m_str };
sub main::osarch
{
local ( $flag ) = @_;
$perlFlag = $flag eq 'perl';
$defFlag = $flag eq 'def';
$oldFlag = $flag eq 'old';
$dirFlag = $flag eq 'dir';
$dosFlag = $flag eq 'dos';
local( $result ) = ( '' );
if ( $perlFlag )
{
$result .= '$solarDef = '."'$main::solarDef';\n";
$result .= '$solarArch = '."'$main::solarArch';\n";
$result .= '$solarOldArch = '."'$main::solarOldArch';\n";
$result .= '$solarOS = '."'$main::solarOS';\n";
$result .= '$solarMT = '."'$main::solarMT';\n";
$result .= '$solarDOS = '."'$main::solarDOS';";
}
elsif ( $defFlag )
{
$result = $main::solarDef;
}
elsif ( $dirFlag )
{
$result = "$main::solarOS-$main::solarMT";
}
elsif ( $dosFlag )
{
$result = $main::solarDOS;
}
else
{
$result = $oldFlag ? $main::solarOldArch : $main::solarArch;
}
return $result;
}
1;