1*b1cdbd2cSJim Jagielski#!/usr/bin/perl -w 2*b1cdbd2cSJim Jagielski# ************************************************************* 3*b1cdbd2cSJim Jagielski# 4*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 5*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 6*b1cdbd2cSJim Jagielski# distributed with this work for additional information 7*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 8*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 9*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 10*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 11*b1cdbd2cSJim Jagielski# 12*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 13*b1cdbd2cSJim Jagielski# 14*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 15*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 16*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 18*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 19*b1cdbd2cSJim Jagielski# under the License. 20*b1cdbd2cSJim Jagielski# 21*b1cdbd2cSJim Jagielski# ************************************************************* 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski# *********************************************************************** 24*b1cdbd2cSJim Jagielski# Description: 25*b1cdbd2cSJim Jagielski# Filename: osarch.pm 26*b1cdbd2cSJim Jagielski# Autor: EG 27*b1cdbd2cSJim Jagielski# Date: 28.10.96 28*b1cdbd2cSJim Jagielski# $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/solenv/bin/modules/osarch.pm,v 1.3 2008-08-18 13:11:04 vg Exp $ 29*b1cdbd2cSJim Jagielski# Copyright: STAR DIVISION 30*b1cdbd2cSJim Jagielski# **********************************************************************/ 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielskipackage osarch; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski$m_str = `uname -m`; 35*b1cdbd2cSJim Jagielski$s_str = `uname -s`; 36*b1cdbd2cSJim Jagielskichop( $m_str, $s_str ); 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski%osTable = ("SunOS", "solaris", 39*b1cdbd2cSJim Jagielski "HP-UX", "hpux", 40*b1cdbd2cSJim Jagielski "AIX", "aix", 41*b1cdbd2cSJim Jagielski "OS/390", "s390", 42*b1cdbd2cSJim Jagielski "Linux", "linux", 43*b1cdbd2cSJim Jagielski "FreeBSD", "freebsd", 44*b1cdbd2cSJim Jagielski "NetBSD", "netbsd", 45*b1cdbd2cSJim Jagielski "OSF1", "decunix", 46*b1cdbd2cSJim Jagielski "SCO_SV", "scoosr5", 47*b1cdbd2cSJim Jagielski# "SCO_SV", "scouw21", 48*b1cdbd2cSJim Jagielski "Darwin", "macosxp", 49*b1cdbd2cSJim Jagielski "Mac OS", "macosxp", 50*b1cdbd2cSJim Jagielski "SINIX-N", "sinix" 51*b1cdbd2cSJim Jagielski ); 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski%osDefTable = ("SunOS", "-DSYSV -DSOLARIS", 54*b1cdbd2cSJim Jagielski "HP-UX", "-DSYSV -DHPUX", 55*b1cdbd2cSJim Jagielski "AIX", "-DSYSV -DAIX", 56*b1cdbd2cSJim Jagielski "Linux", "-DLINUX", 57*b1cdbd2cSJim Jagielski "FreeBSD", "-DFREEBSD", 58*b1cdbd2cSJim Jagielski "NetBSD", "-DNETBSD", 59*b1cdbd2cSJim Jagielski "OSF1", "-DSYSV -DDECUNIX", 60*b1cdbd2cSJim Jagielski "SCO_SV", "-DSYSV -DSCO -DSCO_OSR5", 61*b1cdbd2cSJim Jagielski# "SCO_SV", "-DSYSV -DSCO -DSCO_UW21", 62*b1cdbd2cSJim Jagielski "Darwin", "-DBSD -DMACOSX", 63*b1cdbd2cSJim Jagielski "Mac OS", "-DBSD -DMACOSX", 64*b1cdbd2cSJim Jagielski "SINIX-N", "-DSYSV -DSINIX" 65*b1cdbd2cSJim Jagielski ); 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski%osDosTable = ("SunOS", "sol", 68*b1cdbd2cSJim Jagielski "HP-UX", "hpx", 69*b1cdbd2cSJim Jagielski "AIX", "aix", 70*b1cdbd2cSJim Jagielski "OS/390", "mvs", 71*b1cdbd2cSJim Jagielski "Linux", "lng", 72*b1cdbd2cSJim Jagielski "FreeBSD", "fbsd", 73*b1cdbd2cSJim Jagielski "NetBSD", "bsd", 74*b1cdbd2cSJim Jagielski "SCO_SV", "sco", 75*b1cdbd2cSJim Jagielski "Darwin", "macx", 76*b1cdbd2cSJim Jagielski "Mac OS", "macx", 77*b1cdbd2cSJim Jagielski "SINIX-N", "sni" 78*b1cdbd2cSJim Jagielski ); 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski%archTable = ("sun4c", "sparc", 81*b1cdbd2cSJim Jagielski "sun4m", "sparc", 82*b1cdbd2cSJim Jagielski "sun4u", "sparc", 83*b1cdbd2cSJim Jagielski "9000/712", "hp9000", 84*b1cdbd2cSJim Jagielski "9000/715", "hp9000", 85*b1cdbd2cSJim Jagielski "9000/778", "hp9000", 86*b1cdbd2cSJim Jagielski "000029484600", "rs6000", # salsa 87*b1cdbd2cSJim Jagielski "000328144600", "rs6000", # lambada 88*b1cdbd2cSJim Jagielski "00245D29E000", "rs6000", # segv 89*b1cdbd2cSJim Jagielski "00245C46E000", "rs6000", # bus 90*b1cdbd2cSJim Jagielski "002012974600", "rs6000", # tango 91*b1cdbd2cSJim Jagielski "0006404C4C00", "rs6000", # jive 92*b1cdbd2cSJim Jagielski "2003", "g3", # ezopen4 93*b1cdbd2cSJim Jagielski "i86pc", "x86", # blauwal 94*b1cdbd2cSJim Jagielski "i386", "x86", # SCO_SV, NetBSD, FreeBSD 95*b1cdbd2cSJim Jagielski "i486", "x86", # tiger 96*b1cdbd2cSJim Jagielski "i586", "x86", # blauwal 97*b1cdbd2cSJim Jagielski "i686", "x86", 98*b1cdbd2cSJim Jagielski "prep", "ppc", # hooge 99*b1cdbd2cSJim Jagielski "ppc", "ppc", # ppc-linux 100*b1cdbd2cSJim Jagielski "alpha", "alpha", 101*b1cdbd2cSJim Jagielski "RM400", "rm400", # garbo 102*b1cdbd2cSJim Jagielski "IP22", "mips", # voyager 103*b1cdbd2cSJim Jagielski "IP32", "mips", # giotto 104*b1cdbd2cSJim Jagielski "Power Macintosh", "ppc", # NetBSD/arm32 105*b1cdbd2cSJim Jagielski "arm32", "arm32" # NetBSD/arm32 106*b1cdbd2cSJim Jagielski ); 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski%archDefTable=("sun4c", "-DSPARC -DSUN -DSUN4", # hawai 109*b1cdbd2cSJim Jagielski "sun4m", "-DSPARC -DSUN -DSUN4", # broccoli 110*b1cdbd2cSJim Jagielski "sun4u", "-DSPARC -DSUN -DSUN4", # broccoli 111*b1cdbd2cSJim Jagielski "9000/712", "-DHP9000", # tuborg 112*b1cdbd2cSJim Jagielski "9000/715", "-DHP9000", # koepi 113*b1cdbd2cSJim Jagielski "9000/778", "-DHP9000", # jever, flens 114*b1cdbd2cSJim Jagielski "000029484600", "-DRS6000", # salsa 115*b1cdbd2cSJim Jagielski "000328144600", "-DRS6000", # lambada 116*b1cdbd2cSJim Jagielski "00245D29E000", "-DRS6000", # segv 117*b1cdbd2cSJim Jagielski "00245C46E000", "-DRS6000", # segv 118*b1cdbd2cSJim Jagielski "002012974600", "-DRS6000", # tango 119*b1cdbd2cSJim Jagielski "0006404C4C00", "-DRS6000", # jive 120*b1cdbd2cSJim Jagielski "2003", "-DG3", # ezopen4 121*b1cdbd2cSJim Jagielski "i86pc", "-DX86 -DINTEL",# gepard 122*b1cdbd2cSJim Jagielski "i386", "-DX86", # SCO_SV, NetBSD, FreeBSD 123*b1cdbd2cSJim Jagielski "i486", "-DX86", # tiger 124*b1cdbd2cSJim Jagielski "i586", "-DX86", # blauwal 125*b1cdbd2cSJim Jagielski "i686", "-DX86", # 126*b1cdbd2cSJim Jagielski "prep", "-DPPC", # hooge 127*b1cdbd2cSJim Jagielski "ppc", "-DPPC", # ppc-linux 128*b1cdbd2cSJim Jagielski "alpha", "-DALPHA", # mars 129*b1cdbd2cSJim Jagielski "RM400", "-DMIPS -DRM400", # ekberg, garbo 130*b1cdbd2cSJim Jagielski "IP22", "-DMIPS", # voyager 131*b1cdbd2cSJim Jagielski "IP32", "-DMIPS", # giotto 132*b1cdbd2cSJim Jagielski "Power Macintosh", "-DPPC", # NetBSD/arm32 133*b1cdbd2cSJim Jagielski "arm32", "-DARM32" # NetBSD/arm32 134*b1cdbd2cSJim Jagielski ); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski%archDosTable=("sun4c", "s", # hawai 137*b1cdbd2cSJim Jagielski "sun4m", "s", # broccoli 138*b1cdbd2cSJim Jagielski "sun4u", "s", # broccoli 139*b1cdbd2cSJim Jagielski "9000/712", "r", # tuborg 140*b1cdbd2cSJim Jagielski "9000/715", "r", # koepi 141*b1cdbd2cSJim Jagielski "9000/778", "r", # jever, flens 142*b1cdbd2cSJim Jagielski "000029484600", "p", # salsa 143*b1cdbd2cSJim Jagielski "000328144600", "p", # lambada 144*b1cdbd2cSJim Jagielski "00245D29E000", "p", # segv 145*b1cdbd2cSJim Jagielski "00245C46E000", "p", # segv 146*b1cdbd2cSJim Jagielski "002012974600", "p", # tango 147*b1cdbd2cSJim Jagielski "0006404C4C00", "p", # jive 148*b1cdbd2cSJim Jagielski "2003", "g", # ezopen4 149*b1cdbd2cSJim Jagielski "i86pc", "i", # gepard 150*b1cdbd2cSJim Jagielski "i386", "i", # SCO_SV, NetBSD, FreeBSD 151*b1cdbd2cSJim Jagielski "i486", "i", # tiger 152*b1cdbd2cSJim Jagielski "i586", "i", # blauwal 153*b1cdbd2cSJim Jagielski "i686", "i", 154*b1cdbd2cSJim Jagielski "prep", "p", # hooge 155*b1cdbd2cSJim Jagielski "ppc", "p", # ppc-linux 156*b1cdbd2cSJim Jagielski "alpha", "a", # mars 157*b1cdbd2cSJim Jagielski "RM400", "m", # ekberg, garbo 158*b1cdbd2cSJim Jagielski "IP22", "m", # voyager 159*b1cdbd2cSJim Jagielski "IP32", "m", # giotto 160*b1cdbd2cSJim Jagielski "Power Macintosh", "p", # NetBSD/arm32 161*b1cdbd2cSJim Jagielski "arm32", "a" # NetBSD/arm32 162*b1cdbd2cSJim Jagielski ); 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski$main::solarDef = $osDefTable{ $s_str }.' '.$archDefTable{ $m_str }; 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski$main::solarOS = $osTable{ $s_str }; 167*b1cdbd2cSJim Jagielski$main::solarMT = $archTable{ $m_str }; 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski$main::solarArch = $main::solarOS.$main::solarMT; 170*b1cdbd2cSJim Jagielski$main::solarOldArch = $main::solarArch; # for compatibility 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski$main::solarDOS = 'unx'.$osDosTable{ $s_str }. $archDosTable{ $m_str }; 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielskisub main::osarch 175*b1cdbd2cSJim Jagielski{ 176*b1cdbd2cSJim Jagielski local ( $flag ) = @_; 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski $perlFlag = $flag eq 'perl'; 179*b1cdbd2cSJim Jagielski $defFlag = $flag eq 'def'; 180*b1cdbd2cSJim Jagielski $oldFlag = $flag eq 'old'; 181*b1cdbd2cSJim Jagielski $dirFlag = $flag eq 'dir'; 182*b1cdbd2cSJim Jagielski $dosFlag = $flag eq 'dos'; 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski local( $result ) = ( '' ); 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski if ( $perlFlag ) 187*b1cdbd2cSJim Jagielski { 188*b1cdbd2cSJim Jagielski $result .= '$solarDef = '."'$main::solarDef';\n"; 189*b1cdbd2cSJim Jagielski $result .= '$solarArch = '."'$main::solarArch';\n"; 190*b1cdbd2cSJim Jagielski $result .= '$solarOldArch = '."'$main::solarOldArch';\n"; 191*b1cdbd2cSJim Jagielski $result .= '$solarOS = '."'$main::solarOS';\n"; 192*b1cdbd2cSJim Jagielski $result .= '$solarMT = '."'$main::solarMT';\n"; 193*b1cdbd2cSJim Jagielski $result .= '$solarDOS = '."'$main::solarDOS';"; 194*b1cdbd2cSJim Jagielski } 195*b1cdbd2cSJim Jagielski elsif ( $defFlag ) 196*b1cdbd2cSJim Jagielski { 197*b1cdbd2cSJim Jagielski $result = $main::solarDef; 198*b1cdbd2cSJim Jagielski } 199*b1cdbd2cSJim Jagielski elsif ( $dirFlag ) 200*b1cdbd2cSJim Jagielski { 201*b1cdbd2cSJim Jagielski $result = "$main::solarOS-$main::solarMT"; 202*b1cdbd2cSJim Jagielski } 203*b1cdbd2cSJim Jagielski elsif ( $dosFlag ) 204*b1cdbd2cSJim Jagielski { 205*b1cdbd2cSJim Jagielski $result = $main::solarDOS; 206*b1cdbd2cSJim Jagielski } 207*b1cdbd2cSJim Jagielski else 208*b1cdbd2cSJim Jagielski { 209*b1cdbd2cSJim Jagielski $result = $oldFlag ? $main::solarOldArch : $main::solarArch; 210*b1cdbd2cSJim Jagielski } 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski return $result; 213*b1cdbd2cSJim Jagielski} 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski1; 216