#!/bin/sh # # distinst #___INFO__MARK_BEGIN__ ########################################################################## # # The Contents of this file are made available subject to the terms of # the Sun Industry Standards Source License Version 1.2 # # Sun Microsystems Inc., March, 2001 # # # Sun Industry Standards Source License Version 1.2 # ================================================= # The contents of this file are subject to the Sun Industry Standards # Source License Version 1.2 (the "License"); You may not use this file # except in compliance with the License. You may obtain a copy of the # License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html # # Software provided under this License is provided on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. # See the License for the specific provisions governing your rights and # obligations concerning the Software. # # The Initial Developer of the Original Code is: Sun Microsystems, Inc. # # Copyright: 2001 by Sun Microsystems, Inc. # # All Rights Reserved. # ########################################################################## #___INFO__MARK_END__ umask 022 TOPFILES="3rd_party bin catman ckpt doc examples include inst_sge \ install_execd install_qmaster lib man mpi pvm hadoop qmon util utilbin" HASARCHDIR="bin lib examples/jobsbin utilbin" DEFAULTPROG="sge_qmaster sge_execd sge_shadowd \ sge_shepherd sge_coshepherd qstat qsub qalter qconf qdel \ qacct qmod qsh utilbin jobs qmon qhost qmake qtcsh qping \ qloadsensor.exe sgepasswd qquota qrsub qrstat qrdel" UTILITYBINARIES="uidgid gethostname gethostbyname gethostbyaddr \ getservbyname filestat checkprog loadcheck now checkuser \ adminrun qrsh_starter testsuidroot authuser read_raw echo_raw \ sge_share_mon infotext spooldefaults spooledit spoolinit \ fstype SGE_Helper_Service.exe SGE_Starter.exe valid_jvmlib" BDBUTILITYBINARIES="berkeley_db_svc db_archive db_checkpoint db_deadlock db_dump db_load db_printlog db_recover db_stat db_upgrade db_verify" SSLUTILITYBINARIES="openssl" REMOTEBINARIES="rsh rshd rlogin" JOBBINARIES="work showq" SHARED_LIBRARIES="libcom libcull libgdi librmon libsched libsge libuti \ libspool libspoolb libspoold libspoolc libspoolf \ libsgeobj libsgeobjd \ libevc libevm libmir \ libjuti libjgdi" QMON_SHARED_LIBRARIES="libXbae libXicon libXmt libXspin libXtab" QMON_NEED_SHARED_LIBRARIES="libXltree" OPENSSL_SHARED_LIBRARIES="libcrypto libssl" BERKELEYDB_SHARED_LIBRARIES="libdb-4.4" DRMAA_SHARED_LIBRARIES="libdrmaa" # The last number listed here will be the verson linked from libdrmaa.so DRMAA_SHARED_LIB_VERSIONS="1.0" DRMAA_HEADER_FILES="libs/japi/drmaa.h" DRMAAJ_FILES="CLASSES/jdrmaa/drmaa" JNI_SHARED_LIBRARIES="libdrmaa libjuti libjgdi" JUTIJ_FILES="CLASSES/juti/juti" JGDIJ_FILES="libs/jgdi/build/jgdi" JJSV_FILES="CLASSES/jjsv/JSV" JAVA_LIBRARIES="${DRMAAJ_FILES} ${JUTIJ_FILES} ${JGDIJ_FILES} ${JJSV_FILES}" PVMSOURCES="start_pvm.c stop_pvm.c slave.c master.c spmd.c Makefile" PVMSRCSCRIPTS="install.sh aimk" PVMSCRIPTS="startpvm.sh stoppvm.sh pvm.sh pvm_nogs.sh README pvm.template" MPI_FILES="README README.atm mpi.template mpich.template" MPI_SCRIPTS="hostname mpi.sh mpi_cpi.sh rsh startmpi.sh stopmpi.sh" HADOOP_FILES="logging.properties" HADOOP_SCRIPTS="env.sh jsv.sh load_sensor.sh make_conf.sh pestart.sh pestop.sh setup.pl ssh wait.sh" DTRACE_FILES="README-dtrace.txt monitor.d" DTRACE_SCRIPTS="monitor.sh" MYRINET_FILES="README README.x mpi.template mpich.template \ mpich_multi.template" MYRINET_SCRIPTS="gmps sge_mpirun sge_mpirun.x startmpi.sh startmpi.sh.x \ stopmpi.sh" SUNHPCTIGHT_FILES="README pe_sunmpi_ci.template" SUNHPCTIGHT_SCRIPTS="resume_sunmpi_ci.sh suspend_sunmpi_ci.sh" SECFILES="security/gss/get_cred.c security/gss/put_cred.c \ security/gss/delete_cred.c security/gss/sge_gsslib.c \ security/gss/sge_gsslib.h security/gss/renew_cred.ksh \ security/gss/starter_cred.ksh security/gss/msg_gss.h \ security/gss/aimk security/gss/Makefile.security \ security/gss/doc/gss_customer.html \ common/basis_types.h security/gss/put_cred.sh \ security/gss/get_cred.sh \ security/gss/k5dcelogin.c security/gss/k5dce.h" SECURITYBINARIES="get_cred put_cred delete_cred renew_cred \ starter_cred get_cred.sh put_cred.sh k5dcelogin" GE_SOURCEDIR=`pwd` #------------------------------------------------------------------------- # help output, exits after printing help # ErrUsage() { echo "Usage: distinst [-opts] [other archs] [-- other progs]" echo " -all = all binaries + common" echo " -allall = all binaries + common + doc + arco + sgeinspect" echo " -basedir = define base directory for distribution" echo " -bin = all binaries and libraries" echo " -help_arch = show architectures table" echo " -libs = all libraries" echo " -local = install in \$SGE_ROOT" echo " -shlibpath = cause LD_LIBRARY_PATH be always set even if RUNPATH supported (Solaris/Linux)" echo " -mansrc = take man pages from MANSBUILD_" echo " -nobdb = do not install the Berkeley DB binaries and libs" echo " -noexit = do not exit on installation errors" echo " -noinst = no install, show target arch" echo " -noopenssl = do not install the OpenSSL binaries and libs" echo " -nosource = do not source \"distinst.private\"" echo " -onlybin = all binaries, no libraries" echo " -classic-targets = qmaster+spool* from _classic" echo " -resetarch = set PROG="" (useful to override distinst.privat)" echo " -resetprog = set ARCH="" (useful to override distinst.privat)" echo " -tcc = create file .COMMON_CHANGED if common changed" echo " -v = more verbose" echo " -y = automatically accept all prompts" echo " -vdir = define version directory for distribution" echo ":" echo " \"arco\" = ARCo files (dbwriter, reporting)" echo " \"ckpt\" = checkpointing support files" echo " \"common\" = arch. independent, no man/ and no doc/" echo " \"distcommon\" = arch. independent stuff + man + doc/" echo " \"doc\" = doc/ directory tree" echo " \"dtrace\" = Dtrace scripts" echo " \"examples\" = examples/ directory tree without binaries" echo " \"iscript\" = install script" echo " \"jobs\" = examples/jobsbin/ example binaries" echo " \"man\" = manual pages" echo " \"mpi\" = MPI scripts" echo " \"pvm\" = PVM source files and scripts" echo " \"hadoop\" = Hadoop scripts and libraries" echo " \"qmontree\" = PIXMAPS, resource-, help-, copyright files" echo " \"sec\" = DCE/Kerberos security modules" echo " \"secbin\" = DCE/Kerberos security binaries" echo " \"sgeinspect\" = SGE Inspect binaries" echo " \"txtdoc\" = doc/ directory tree without PS and PDF files" echo " \"utilbin\" = utilbin/\$ARCH/*" echo " \"utiltree\" = util/ directory tree" exit 0 } #------------------------------------------------------------------------- # SetArchBin() { BUILDARCH=`$GE_SOURCEDIR/scripts/compilearch -b $1` if [ $? -ne 0 ]; then echo "No ARCHBIN name for \"$1\"" if [ $exit_on_error = true ]; then exit 1 else ARCHBIN="undefined" fi else ARCHBIN=`$GE_SOURCEDIR/scripts/compilearch -c $1` if [ "$ARCHBIN" = "" ]; then ARCHBIN=$BUILDARCH fi fi } #------------------------------------------------------------------------- # ArchTable() { echo "Arch Name Platform" echo "-------------------------------------------" echo "aix AIX" echo "aix43 AIX 4.3" echo "hp10 HP-UX 10.x" echo "hp11 HP-UX 11.x" echo "hp11-64 HP-UX 11.x 64bit" echo "irix65 Irix 6.5" echo "linux-alpha Alpha Linux" echo "linux-arm ARM Linux" echo "linux-arm64 ARM Linux 64-bit" echo "linux-ia64 IA64 Linux" echo "linux-mips MIPS Linux" echo "linux-mips64 MIPS Linux 64-bit" echo "linux-ppc PPC Linux" echo "linux-ppc64 PPC Linux 64-bit" echo "linux-sparc SPARC Linux" echo "linux-sparc64 SPARC Linux 64-bit" echo "linux-s390 S/390 Linux 31-bit" echo "linux-s390x S/390 Linux 64-bit" echo "linux-x86 x86 Linux" echo "linux-x64 x64 (AMD64/Intel64) Linux" echo "osf4 OSF 4.x" echo "tru64 TRU64 UNIX" echo "sol-x86 Solaris x86" echo "sol-amd64 Solaris 10 AMD64" echo "sol-sparc Solaris SPARC" echo "sol-sparc64 Solaris SPARC 64bit" echo "usol-x86 Solaris 8, x86" echo "usol-sparc Solaris 7, SPARC" echo "usol-sparc64 Solaris 7, SPARC 64bit" echo "cray UNICOS" echo "crayts UNICOS TS" echo "craytsieee UNICOS TS IEEE" echo "necsx4 NECSX 4.x" echo "necsx5 NECSX 5.x" echo "sx NECSX 5.x" echo "necsx6 NECSX 6.x" echo "darwin-ppc MacOS 10.x PowerPC" echo "darwin-x86 MacOS 10.x x86" echo "darwin-x64 MacOS 10.x x86-64" echo "fbsd-alpha Alpha FreeBSD" echo "fbsd-amd64 AMD64 FreeBSD" echo "fbsd-i386 x86 FreeBSD" echo "fbsd-ia64 IA64 FreeBSD" echo "fbsd-ppc PowerPC FreeBSD" echo "fbsd-sparc64 SPARC FreeBSD 64bit" exit 0 } #------------------------------------------------------------------------- # MakeArchDirs() { echo Checking and creating binary directories for d in $HASARCHDIR; do if [ ! -d $DEST_SGE_ROOT/$d ]; then Execute mkdir -p $DEST_SGE_ROOT/$d fi for a in $*; do if [ ! -d $DEST_SGE_ROOT/$d/$a ]; then Execute mkdir -p $DEST_SGE_ROOT/$d/$a fi done done } #------------------------------------------------------------------------- # Call arguments, be verbose if $verbose is set and exit on error if # $exit_on_error is set # Execute() { if [ $verbose = true ]; then echo $* fi $* if [ $? -gt 0 ]; then echo echo This command failed: $* echo if [ "$exit_on_error" = true ]; then echo "Installation failed. Exiting." echo exit 1 fi fi } #------------------------------------------------------------------------- # Create directory if it doesn't exist # and exit if $exit_on_error is set # MakeDir() { if [ ! -d $DEST_SGE_ROOT/$1 ]; then Execute mkdir $DEST_SGE_ROOT/$1 fi Execute chmod 755 $DEST_SGE_ROOT/$1 } #------------------------------------------------------------------------- # Delete CVS directories and backup files etc. # Cleanup() { for i in $*; do find $DEST_SGE_ROOT/$i -name CVS -type d -exec rm -rf {} \; 2>/dev/null find $DEST_SGE_ROOT/$i \( -name "*~" -o -name "*.bak" -o \ -name ".#*" -o -name "*.swp" \) \ -type f -exec rm -f {} \; if [ $IAMROOT = true ]; then Execute chown -R 0:0 $DEST_SGE_ROOT/$i fi done } #------------------------------------------------------------------------- # Install user.group permissions source destination Install() { Execute cp $3 $4 if [ $IAMROOT = true ]; then target_uid=`echo $1 | cut -d. -f1` target_gid=`echo $1 | cut -d. -f2` Execute chown $target_uid $4 Execute chgrp $target_gid $4 fi if [ -d $4 ]; then Execute chmod $2 $4/`basename $3` else Execute chmod $2 $4 fi } #------------------------------------------------------------------------- # InstallProg() { echo Installing $1 Install 0.0 755 $1 $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/`basename $1` } #------------------------------------------------------------------------- # InstallProgAs() { echo Installing $1 as $2 Install 0.0 755 $1 $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/$2 } #------------------------------------------------------------------------- # InstallProgSUID() { echo Installing $1 Install 0.0 4755 $1 $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/`basename $1` } #------------------------------------------------------------------------- # Only file permissions are different from InstallProg InstallLib() { echo Installing $1 Install 0.0 644 $1 $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/$1 } #------------------------------------------------------------------------- # MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN # How else I can find out that I'm user root? # The code below worked everywhere # idout="`id`" five=`expr "$idout" : "uid=0"` if [ $five = 5 ]; then IAMROOT=true else IAMROOT=false fi # Main targets and target directories # # BASEDIR -> base dir for distribution # VERSIONDIR -> directory below $BASEDIR where distribution is installed # MANSRCDIR -> directory from which proprocessed man pages are taken # ARCH -> list of binary architectures # PROG -> list of programs and special install targets # localinst -> Use $SGE_ROOT for target directory BASEDIR=undefined VERSIONDIR=undefined localinst=false MANSRCDIR=ge ARCH="" PROG="" # General variables which influence script behavior # # verbose -> echo commands called via Execute() function # exit_on_error -> exit if command called via Execute() exits != 0 # touchcommonchanged -> create file .COMMON_CHANGED in target dir if # "common" install target has changed verbose=false exit_on_error=true touchcommonchanged=false # Install targets # instjobs=false instsharedlibs=false instckpt=false instdrmaa=false instiscript=false instutiltree=false instexamples=false instman=false instdoc=false instdtrace=false insttxtdoc=false instjava=false instjavadoc=false instpvm=false instmpi=false insthadoop=false instqmon=false instcommon=false instutilbin=false instsec=false instsecbin=false inst3rdparty=false instclassictargets=false instopenssl=true instbdb=true instarco=false instguiinst=true instsgeinspect=false accept_prompts=false enforce_shlibpath=false cmdname=`basename $0` if [ $cmdname = myinst ]; then echo "\"myinst\" is no longer supported. Use \"% scripts/distinst -local\"" echo "instead. See \"scripts/distinst -help\" for further command line options." exit 1 elif [ $cmdname = sgeinst -o $cmdname = sgeeeinst ]; then echo \"sge[ee]inst\" is no longer supported. Use \"% scripts/distinst -mansrc sge\" echo instead. exit 1 fi #------------------------------------------------------------------------- # source sitewide and private files after setting defaults # this allows a convenient override of all default settings # if [ -f scripts/distinst.site ]; then . ./scripts/distinst.site fi if [ -f scripts/distinst.private ]; then echo Sourcing of \"scripts/distinst.private\" is no longer supported. echo Copy this script to \"./distinst.private\" instead. exit 1 fi if [ "$1" != -nosource ]; then if [ -f distinst.private ]; then . ./distinst.private fi else shift fi #------------------------------------------------------------------------- # command line parsing # if [ $# -eq 0 ]; then ErrUsage fi while [ $# -ge 1 ]; do case "$1" in -allall) PROG="$DEFAULTPROG distcommon arco sgeinspect" instsharedlibs=true ;; -all) PROG="$DEFAULTPROG common" instsharedlibs=true ;; -basedir) shift if [ "$1" != "" ]; then BASEDIR=$1 else echo echo need argument for \"-basedir\". Installation failed. echo exit 1 fi ;; -bin) PROG="$DEFAULTPROG $PROG" instsharedlibs=true ;; -onlybin) PROG="$DEFAULTPROG $PROG" ;; -h|-help) ErrUsage ;; -help_arch) ArchTable ;; -resetprog) PROG="" ;; -resetarch) ARCH="" ;; -classic-targets) instclassictargets=true ;; -tcc) touchcommonchanged=true ;; -libs) instsharedlibs=true ;; -local) if [ "$SGE_ROOT" = "" ]; then echo Please set variable SGE_ROOT. Installation failed. exit 1 fi if [ ! -d $SGE_ROOT ]; then echo Please create directory \"$SGE_ROOT\" first. Installation failed. exit 1 fi DEST_SGE_ROOT=$SGE_ROOT localinst=true ;; -mansrc) shift if [ "$1" != "" ]; then MANSRCDIR=$1 else echo echo need argument for \"-mansrc\". Installation failed. echo exit 1 fi ;; -nobdb) instbdb=false ;; -noexit) exit_on_error=false ;; -noinst) PROG="$DEFAULTPROG" INSTOPT="noinst" ;; -noopenssl) instopenssl=false ;; -shlibpath) enforce_shlibpath=true ;; -v) verbose=true ;; -y) accept_prompts=true ;; -vdir) shift if [ "$1" != "" ]; then VERSIONDIR=$1 else echo echo need argument for \"-vdir\". Installation failed. echo exit 1 fi ;; --) break ;; -*) echo option \"$1\" is not supported. Installation failed. exit 1 ;; *) break ;; esac shift done if [ $instbdb = true ]; then UTILITYBINARIES="$UTILITYBINARIES $BDBUTILITYBINARIES" fi if [ $instopenssl = true ]; then UTILITYBINARIES="$UTILITYBINARIES $SSLUTILITYBINARIES" fi if [ $localinst = false ]; then if [ $BASEDIR = undefined ]; then echo "Set \$BASEDIR with -basedir switch." exit 1 fi if [ $VERSIONDIR = undefined ]; then echo "Set \$VERSIONDIR with -vdir switch." exit 1 fi if [ ! -d $BASEDIR ]; then echo "Directory \"$BASEDIR\" does not exist. Please create it first." exit 1 fi DEST_SGE_ROOT=$BASEDIR/$VERSIONDIR if [ ! -d $DEST_SGE_ROOT ]; then Execute mkdir $DEST_SGE_ROOT fi Execute chmod 755 $DEST_SGE_ROOT if [ -f $DEST_SGE_ROOT/LOCKED ]; then echo "File \"$DEST_SGE_ROOT/LOCKED\" exits" exit 1 fi else if [ "$BASEDIR" != undefined -o "$VERSIONDIR" != undefined ]; then echo echo Switch \""-local\" cannot be combined with \"-vdir\" and/or \"-basedir\" switch." echo echo "Check \"scripts/distinst.site\" and/or \"./distinst.private\" if these" echo "scripts set the variables \"BASEDIR\" or \"VERSIONDIR\"". echo exit 1 fi fi whoseargs="archs" while [ "$1" != "" ]; do case "$1" in --) whoseargs="progs" ;; *) if [ "$whoseargs" = "archs" ]; then ARCH="$ARCH $1" else PROG="$PROG $1" fi ;; esac shift done if [ "$INSTOPT" = "noinst" ]; then if [ ! -z "$ARCH" ]; then echo echo Target directory for distribution: $DEST_SGE_ROOT SetArchBin $ARCH echo Binary subdirectory for $ARCH: $ARCHBIN echo exit 0 else ARCH=`dist/util/arch` echo echo no architecture specified. Assuming architecture is $ARCH echo fi fi if [ -z "$ARCH" ]; then ARCH=`dist/util/arch` echo echo No architecture specified. Assuming architecture is $ARCH echo fi echo echo " Installing:" $PROG echo " Architectures:" $ARCH echo "Base directory:" $DEST_SGE_ROOT if [ $accept_prompts = false ]; then printf " OK [Y/N][Y]: " read ans if [ "$ans" = y -o "$ans" = Y -o "$ans" = "" ]; then : else echo echo Ciao echo exit 1 fi fi echo for prog in $PROG; do case $prog in arco) instarco=true ;; sgeinspect) instsgeinspect=true ;; common|distcommon) instdrmaa=true instcommon=true inst3rdparty=true instckpt=true instdtrace=true instexamples=true instiscript=true instjava=true instmpi=true instpvm=true insthadoop=true instqmon=true instutiltree=true case $prog in distcommon) instman=true instdoc=true insttxtdoc=true instjavadoc=true ;; esac ;; ckpt) instckpt=true instcommon=true ;; doc) instdoc=true insttxtdoc=true instcommon=true instjavadoc=true ;; dtrace) instdtrace=true instcommon=true ;; examples) instexamples=true instcommon=true ;; iscript) instiscript=true instcommon=true ;; java) instjava=true ;; jobs) instjobs=true ;; man) instman=true instcommon=true ;; pvm) instpvm=true instcommon=true ;; mpi) instmpi=true instcommon=true ;; hadoop) insthadoop=true ;; qmontree) instqmon=true instcommon=true ;; sec) instsec=true instcommon=true ;; secbin) instsecbin=true ;; txtdoc) insttxtdoc=true instcommon=true ;; utilbin) instutilbin=true ;; utiltree) instutiltree=true instcommon=true ;; esac done # ------------------ Install common files ------------------ # if [ $instcommon = true ]; then if [ $inst3rdparty = true ]; then echo Installing \"3rd_party/\" directory tree Execute rm -rf $DEST_SGE_ROOT/3rd_party MakeDir 3rd_party Execute cp -r dist/3rd_party $DEST_SGE_ROOT Cleanup 3rd_party fi if [ $instiscript = true ]; then rm -f $DEST_SGE_ROOT/inst_sge $DEST_SGE_ROOT/install_qmaster $DEST_SGE_ROOT/install_execd echo "Installing \"inst_sge\", \"install_qmaster\" and \"install_execd\"" Execute cp dist/inst_sge dist/install_qmaster dist/install_execd $DEST_SGE_ROOT Execute chmod 755 $DEST_SGE_ROOT/inst_sge $DEST_SGE_ROOT/install_execd $DEST_SGE_ROOT/install_qmaster Cleanup inst_sge install_execd install_qmaster fi if [ $instutiltree = true ]; then echo Installing \"util/\" directory tree Execute rm -rf $DEST_SGE_ROOT/util MakeDir util Execute cp -r dist/util $DEST_SGE_ROOT Execute cp libs/jgdi/util/java.policy.template $DEST_SGE_ROOT/util Execute cp libs/jgdi/util/rmiconsole.policy $DEST_SGE_ROOT/util Execute cp libs/jgdi/util/jmxremote.access $DEST_SGE_ROOT/util Execute cp libs/jgdi/util/jmxremote.password.template $DEST_SGE_ROOT/util/jmxremote.password Execute cp libs/jgdi/util/management.properties.template $DEST_SGE_ROOT/util Execute cp libs/jgdi/util/jaas.config.template $DEST_SGE_ROOT/util Execute cp libs/jgdi/util/logging.properties.template $DEST_SGE_ROOT/util if [ $enforce_shlibpath = true ]; then Execute grep -v "#ENFORCE_SHLIBPATH#" dist/util/create_settings.sh > $DEST_SGE_ROOT/util/create_settings.sh Execute grep -v "#ENFORCE_SHLIBPATH#" dist/util/rctemplates/sgemaster_template > $DEST_SGE_ROOT/util/rctemplates/sgemaster_template Execute grep -v "#ENFORCE_SHLIBPATH#" dist/util/rctemplates/sgeexecd_template > $DEST_SGE_ROOT/util/rctemplates/sgeexecd_template Execute grep -v "#ENFORCE_SHLIBPATH#" dist/util/rctemplates/sgebdb_template > $DEST_SGE_ROOT/util/rctemplates/sgebdb_template Execute grep -v "#ENFORCE_SHLIBPATH#" dist/util/install_modules/inst_common.sh > $DEST_SGE_ROOT/util/install_modules/inst_common.sh else Execute sed -e "s/#ENFORCE_SHLIBPATH#//" dist/util/create_settings.sh > $DEST_SGE_ROOT/util/create_settings.sh Execute sed -e "s/#ENFORCE_SHLIBPATH#//" dist/util/rctemplates/sgemaster_template > $DEST_SGE_ROOT/util/rctemplates/sgemaster_template Execute sed -e "s/#ENFORCE_SHLIBPATH#//" dist/util/rctemplates/sgeexecd_template > $DEST_SGE_ROOT/util/rctemplates/sgeexecd_template Execute sed -e "s/#ENFORCE_SHLIBPATH#//" dist/util/rctemplates/sgebdb_template > $DEST_SGE_ROOT/util/rctemplates/sgebdb_template Execute sed -e "s/#ENFORCE_SHLIBPATH#//" dist/util/install_modules/inst_common.sh > $DEST_SGE_ROOT/util/install_modules/inst_common.sh fi # DetectJvmLibrary if [ -f dist/DetectJvmLibrary/build/jar/DetectJvmLibrary.jar ]; then Execute cp dist/DetectJvmLibrary/build/jar/DetectJvmLibrary.jar $DEST_SGE_ROOT/util fi # JSV Java language binding if [ -f libs/jjsv/java/com/sun/grid/jsv/examples/SimpleJsv.java ]; then Execute cp libs/jjsv/java/com/sun/grid/jsv/examples/SimpleJsv.java $DEST_SGE_ROOT/util/resources/jsv elif [ $exit_on_error = true ]; then echo "\"libs/jjsv/java/com/sun/grid/jsv/examples/SimpleJsv.java\" not found. Installation failed." exit 1 fi Cleanup util # Not available in Beta Execute rm -rf $DEST_SGE_ROOT/util/update_commands Execute rm -f $DEST_SGE_ROOT/util/sge_update.sh Execute chmod 755 $DEST_SGE_ROOT/util/install_modules \ $DEST_SGE_ROOT/util/upgrade_modules \ $DEST_SGE_ROOT/util/rctemplates \ $DEST_SGE_ROOT/util/resources \ $DEST_SGE_ROOT/util/sgeCA \ $DEST_SGE_ROOT/util/resources/calendars \ $DEST_SGE_ROOT/util/resources/centry \ $DEST_SGE_ROOT/util/resources/loadsensors \ $DEST_SGE_ROOT/util/resources/pe \ $DEST_SGE_ROOT/util/resources/schemas \ $DEST_SGE_ROOT/util/resources/schemas/qhost \ $DEST_SGE_ROOT/util/resources/schemas/qquota \ $DEST_SGE_ROOT/util/resources/schemas/qrstat \ $DEST_SGE_ROOT/util/resources/schemas/qstat \ $DEST_SGE_ROOT/util/resources/starter_methods \ $DEST_SGE_ROOT/util/resources/usersets Execute chmod 755 $DEST_SGE_ROOT/util/arch \ $DEST_SGE_ROOT/util/*.sh \ $DEST_SGE_ROOT/util/sgeremoterun \ $DEST_SGE_ROOT/util/sgeCA/sge_ca \ $DEST_SGE_ROOT/util/sgeST/sge_st \ $DEST_SGE_ROOT/util/sgeSMF/sge_smf.sh \ $DEST_SGE_ROOT/util/resources/loadsensors/* \ $DEST_SGE_ROOT/util/resources/starter_methods/* Execute chmod 644 $DEST_SGE_ROOT/util/install_modules/* \ $DEST_SGE_ROOT/util/rctemplates/* \ $DEST_SGE_ROOT/util/sgeCA/*.cnf \ $DEST_SGE_ROOT/util/sgeSMF/*.xml \ $DEST_SGE_ROOT/util/sgeSMF/sge_smf_support.sh \ $DEST_SGE_ROOT/util/DetectJvmLibrary.jar \ $DEST_SGE_ROOT/util/resources/calendars/* \ $DEST_SGE_ROOT/util/resources/centry/* \ $DEST_SGE_ROOT/util/resources/pe/* \ $DEST_SGE_ROOT/util/resources/schemas/*/* \ $DEST_SGE_ROOT/util/resources/usersets/* Execute chmod 755 $DEST_SGE_ROOT/util/resources/jsv/jsv.sh \ $DEST_SGE_ROOT/util/resources/jsv/jjsv.sh \ $DEST_SGE_ROOT/util/resources/jsv/jsv.pl \ $DEST_SGE_ROOT/util/resources/jsv/jsv.tcl fi if [ $instexamples = true ]; then echo Installing \"examples/jobs\" Execute rm -rf $DEST_SGE_ROOT/examples/jobs MakeDir examples MakeDir examples/jobs Execute cp dist/examples/jobs/*.sh $DEST_SGE_ROOT/examples/jobs Execute chmod 755 $DEST_SGE_ROOT/examples/jobs/*.sh MakeDir examples/drmaa Execute cp libs/japi/example.c $DEST_SGE_ROOT/examples/drmaa Execute cp libs/japi/howto/*.c $DEST_SGE_ROOT/examples/drmaa Cleanup examples fi if [ $instqmon = true ]; then echo Copying Pixmaps and Qmon resource file Execute rm -rf $DEST_SGE_ROOT/qmon MakeDir qmon MakeDir qmon/PIXMAPS MakeDir qmon/PIXMAPS/big Execute cp dist/qmon/PIXMAPS/small/*.xpm $DEST_SGE_ROOT/qmon/PIXMAPS Execute cp dist/qmon/PIXMAPS/big/toolbar*.xpm $DEST_SGE_ROOT/qmon/PIXMAPS/big Execute chmod 644 $DEST_SGE_ROOT/qmon/PIXMAPS/*.xpm Execute chmod 644 $DEST_SGE_ROOT/qmon/PIXMAPS/big/*.xpm Execute cp dist/qmon/Qmon $DEST_SGE_ROOT/qmon Execute chmod 644 $DEST_SGE_ROOT/qmon/Qmon Execute cp dist/qmon/qmon_help.ad $DEST_SGE_ROOT/qmon Execute chmod 644 $DEST_SGE_ROOT/qmon/qmon_help.ad ( echo changing to $DEST_SGE_ROOT/qmon/PIXMAPS ; \ cd $DEST_SGE_ROOT/qmon/PIXMAPS; \ echo ln -s intro-sge.xpm intro.xpm; \ ln -s intro-sge.xpm intro.xpm; \ echo ln -s logo-sge.xpm logo.xpm; \ ln -s logo-sge.xpm logo.xpm \ ) Cleanup qmon fi if [ $instpvm = true ]; then echo Installing \"pvm\" Execute rm -rf $DEST_SGE_ROOT/pvm MakeDir pvm MakeDir pvm/src for f in $PVMSCRIPTS; do Execute cp dist/pvm/$f $DEST_SGE_ROOT/pvm done chmod 755 $DEST_SGE_ROOT/pvm/*.sh for f in $PVMSOURCES; do Execute cp dist/pvm/src/$f $DEST_SGE_ROOT/pvm/src done for f in $PVMSRCSCRIPTS; do Execute cp dist/pvm/src/$f $DEST_SGE_ROOT/pvm/src chmod 755 $DEST_SGE_ROOT/pvm/src/$f done Cleanup pvm fi if [ $instdrmaa = true ]; then echo Installing DRMAA include files Execute rm -rf $DEST_SGE_ROOT/include MakeDir include for f in $DRMAA_HEADER_FILES; do Execute cp $f $DEST_SGE_ROOT/include done Cleanup include fi if [ $instjava = true -o $instdrmaa = true ]; then if [ $instjava = true ]; then JAVA_FILES=$JAVA_LIBRARIES else JAVA_FILES=$DRMAAJ_FILES fi for filename in $JAVA_FILES; do filename="${filename}.jar" if [ -f $filename ]; then echo Installing `basename $filename` Execute rm -f $DEST_SGE_ROOT/lib/`basename $filename` MakeDir lib Install 0.0 644 $filename $DEST_SGE_ROOT/lib/`basename $filename` elif [ $exit_on_error = true ]; then echo "\"$filename\" not found. Installation failed." exit 1 fi done fi if [ $instdtrace = true ]; then echo Installing \"Dtrace scripts\" rm -rf $DEST_SGE_ROOT/dtrace MakeDir dtrace for f in $DTRACE_FILES; do Execute cp scripts/dtrace/$f $DEST_SGE_ROOT/dtrace Execute chmod 644 $DEST_SGE_ROOT/dtrace/$f done for f in $DTRACE_SCRIPTS; do Execute cp scripts/dtrace/$f $DEST_SGE_ROOT/dtrace Execute chmod 755 $DEST_SGE_ROOT/dtrace/$f done Cleanup dtrace fi if [ $instmpi = true ]; then echo Installing \"mpi/\" rm -rf $DEST_SGE_ROOT/mpi MakeDir mpi for f in $MPI_FILES; do Execute cp dist/mpi/$f $DEST_SGE_ROOT/mpi Execute chmod 644 $DEST_SGE_ROOT/mpi/$f done for f in $MPI_SCRIPTS; do Execute cp dist/mpi/$f $DEST_SGE_ROOT/mpi Execute chmod 755 $DEST_SGE_ROOT/mpi/$f done MYRINETBASE=mpi/myrinet Execute mkdir -p $DEST_SGE_ROOT/$MYRINETBASE for f in $MYRINET_FILES; do Execute cp dist/$MYRINETBASE/$f $DEST_SGE_ROOT/$MYRINETBASE Execute chmod 644 $DEST_SGE_ROOT/$MYRINETBASE/$f done for f in $MYRINET_SCRIPTS; do Execute cp dist/$MYRINETBASE/$f $DEST_SGE_ROOT/$MYRINETBASE Execute chmod 755 $DEST_SGE_ROOT/$MYRINETBASE/$f done HPCBASE=mpi/SunHPCT5 Execute mkdir -p $DEST_SGE_ROOT/$HPCBASE for f in $SUNHPCTIGHT_FILES; do Execute cp dist/$HPCBASE/$f $DEST_SGE_ROOT/$HPCBASE Execute chmod 644 $DEST_SGE_ROOT/$HPCBASE/$f done for f in $SUNHPCTIGHT_SCRIPTS; do Execute cp dist/$HPCBASE/$f $DEST_SGE_ROOT/$HPCBASE Execute chmod 755 $DEST_SGE_ROOT/$HPCBASE/$f done Cleanup mpi fi if [ $insthadoop = true ]; then echo Installing \"hadoop/\" rm -rf $DEST_SGE_ROOT/hadoop MakeDir hadoop for f in $HADOOP_FILES; do Execute cp dist/hadoop/$f $DEST_SGE_ROOT/hadoop/$f Execute chmod 644 $DEST_SGE_ROOT/hadoop/$f done for f in $HADOOP_SCRIPTS; do Execute cp dist/hadoop/$f $DEST_SGE_ROOT/hadoop/$f Execute chmod 755 $DEST_SGE_ROOT/hadoop/$f done if [ -f CLASSES/herd/herd.jar ]; then Execute cp CLASSES/herd/herd.jar $DEST_SGE_ROOT/lib/herd.jar elif [ $exit_on_error = true ]; then echo "\"CLASSES/herd/herd.jar\" not found. Installation failed." exit 1 fi fi if [ $instman = true ]; then echo Installing \"man/\" and \"catman/\" Execute rm -rf $DEST_SGE_ROOT/man $DEST_SGE_ROOT/catman Execute cp -r MANSBUILD_$MANSRCDIR/SEDMAN/man $DEST_SGE_ROOT if [ -d MANSBUILD_$MANSRCDIR/ASCMAN/catman ]; then Execute mkdir -p $DEST_SGE_ROOT/catman Execute cp -r MANSBUILD_$MANSRCDIR/ASCMAN/catman/?_man $DEST_SGE_ROOT/catman fi if [ -d MANSBUILD_$MANSRCDIR/ASCMAN/man ]; then SOURCEDIR=MANSBUILD_$MANSRCDIR/ASCMAN/man DESTDIR=$DEST_SGE_ROOT/catman/cat for dir in `ls $SOURCEDIR`; do dir_num=`basename $dir | cut -d"n" -f2` for file in `ls $SOURCEDIR/$dir`; do if [ ! -d "$DESTDIR/cat$dir_num" ]; then Execute mkdir -p $DESTDIR/cat$dir_num fi Execute cp $SOURCEDIR/$dir/$file $DESTDIR/cat$dir_num/$file.$dir_num done done fi Execute find $DEST_SGE_ROOT/man -type d | xargs chmod 755 Execute find $DEST_SGE_ROOT/man -type f | xargs chmod 644 Execute find $DEST_SGE_ROOT/catman -type d | xargs chmod 755 Execute find $DEST_SGE_ROOT/catman -type f | xargs chmod 644 Cleanup man catman fi if [ $instdoc = true ]; then # currently no docs in CVS repository echo Installing \"doc/\" Execute rm -rf $DEST_SGE_ROOT/doc MakeDir doc fi # this rule must come *after* the "instdoc" rule # if [ $insttxtdoc = true ]; then echo "Installing README, ... files" Execute cp ../doc/*.asc $DEST_SGE_ROOT/doc #Execute cp ../doc/README-Autoinstall.txt $DEST_SGE_ROOT/doc #Execute cp ../doc/README-Upgrade.txt $DEST_SGE_ROOT/doc Execute cp ../doc/README-DRMAA.txt $DEST_SGE_ROOT/doc Execute chmod 644 $DEST_SGE_ROOT/doc/* Cleanup doc fi if [ $instjavadoc = true ]; then if [ -d JAVADOCS ]; then echo "Installing doc/javadocs" Execute rm -rf $DEST_SGE_ROOT/doc/javadocs MakeDir doc/javadocs Execute cp -R JAVADOCS/* $DEST_SGE_ROOT/doc/javadocs Execute find $DEST_SGE_ROOT/doc/javadocs -type d | xargs chmod 755 Execute find $DEST_SGE_ROOT/doc/javadocs -type f | xargs chmod 644 Cleanup doc/javadocs fi fi if [ $instckpt = true ]; then echo Installing \"ckpt/\" Execute rm -rf $DEST_SGE_ROOT/ckpt MakeDir ckpt Execute cp dist/ckpt/*_command $DEST_SGE_ROOT/ckpt Execute chmod 755 $DEST_SGE_ROOT/ckpt/*_command Execute cp dist/ckpt/README* $DEST_SGE_ROOT/ckpt Execute chmod 644 $DEST_SGE_ROOT/ckpt/README* Cleanup ckpt fi if [ $instsec = true ]; then echo Installing \"security\" modules MakeDir security for f in $SECFILES; do Execute cp $f $DEST_SGE_ROOT/security fb=`basename $f` if [ -x $DEST_SGE_ROOT/security/$fb ]; then chmod 755 $DEST_SGE_ROOT/security/$fb else chmod 644 $DEST_SGE_ROOT/security/$fb fi done ( echo changing to $DEST_SGE_ROOT/security; \ ln -s gss_customer.html README.html ) Cleanup security fi if [ $touchcommonchanged = true ]; then touch $DEST_SGE_ROOT/.COMMON_CHANGED fi echo common part done echo fi if [ $instarco = true ]; then ARCO_SOURCE_DIR=`pwd`/../arco/source if [ -d "$ARCO_SOURCE_DIR" ]; then echo Installing \"ARCo\" directory tree Execute rm -rf $DEST_SGE_ROOT/reporting Execute rm -rf $DEST_SGE_ROOT/dbwriter (cd $DEST_SGE_ROOT; \ Execute $TAR xvpzf $ARCO_SOURCE_DIR/dbwriter/dbwriter.tar.gz; \ Execute $TAR xvpzf $ARCO_SOURCE_DIR/reporting/reporting.tar.gz; \ chown -R root:root $DEST_SGE_ROOT/reporting $DEST_SGE_ROOT/dbwriter ) Cleanup reporting dbwriter echo ARCo part done echo else echo "ARCo dir \"$ARCO_SOURCE_DIR\" does not exist" fi fi if [ $instguiinst = true ]; then GUI_DIR=`pwd`/clients/gui-installer if [ -d "$GUI_DIR" ]; then rm -rf $DEST_SGE_ROOT/start_gui_installer $DEST_SGE_ROOT/util/gui-installer echo "Installing \"start_gui_installer\" and \"/util/gui-installer\"" Execute mkdir -p $DEST_SGE_ROOT/util/gui-installer/html/en/help Execute mkdir -p $DEST_SGE_ROOT/util/gui-installer/templates Execute cp $GUI_DIR/dist/installer.jar $DEST_SGE_ROOT/util/gui-installer Execute cp $GUI_DIR/templates/start_gui_installer.sh $DEST_SGE_ROOT/start_gui_installer Execute cp -r $GUI_DIR/html $DEST_SGE_ROOT/util/gui-installer Execute cp $GUI_DIR/templates/install_component $GUI_DIR/templates/gui_inst_template.conf $GUI_DIR/templates/readme_template.html $GUI_DIR/templates/check_host $DEST_SGE_ROOT/util/gui-installer/templates Execute chmod 755 $DEST_SGE_ROOT/start_gui_installer Cleanup util/gui-installer echo GUI installer part done echo else echo "GUI Installer dir \"$GUI_DIR\" does not exist" fi fi if [ $instsgeinspect = true ]; then if [ -d "$SGE_INSPECT_SRC_DIR" ]; then if [ `echo $SGE_INSPECT_SRC_DIR | cut -c 1` = "/" ]; then ABSOLUTE_SGE_INSPECT_SRC_DIR=$SGE_INSPECT_SRC_DIR else ABSOLUTE_SGE_INSPECT_SRC_DIR=`pwd`/$SGE_INSPECT_SRC_DIR fi echo Installing \"sgeinspect\" directory tree Execute rm -rf $DEST_SGE_ROOT/sgeinspect ( cd $DEST_SGE_ROOT; \ Execute unzip $ABSOLUTE_SGE_INSPECT_SRC_DIR/EventMonitor/dist/sgeinspect.zip; \ ) Execute mkdir -p $DEST_SGE_ROOT/bin Execute cp $ABSOLUTE_SGE_INSPECT_SRC_DIR/scripts/sgeinspect.sh $DEST_SGE_ROOT/bin/ chown root:root $DEST_SGE_ROOT/bin/sgeinspect.sh Execute chmod 755 $DEST_SGE_ROOT/bin/sgeinspect.sh if [ -f $ABSOLUTE_SGE_INSPECT_SRC_DIR/scripts/logging.properties ]; then Execute cp $ABSOLUTE_SGE_INSPECT_SRC_DIR/scripts/logging.properties $DEST_SGE_ROOT/sgeinspect/etc chown root:root $DEST_SGE_ROOT/sgeinspect/etc/logging.properties Execute chmod 644 $DEST_SGE_ROOT/sgeinspect/etc/logging.properties fi Cleanup sgeinspect echo sgeinspect part done echo else echo "sgeinspect dir \"$SGE_INSPECT_SRC_DIR\" does not exist" fi fi # ------------------ Copy architecure dependent stuff ---------------------- # if [ "$ARCH" != "" ]; then MakeArchDirs $ARCH fi for i in $ARCH; do DSTARCH=$i SetArchBin $i if [ $ARCHBIN != undefined ]; then UTILPREFIX=bin cd $ARCHBIN echo "Installing binaries for $i from `pwd` -->" echo " --> $DEST_SGE_ROOT/bin/$i" echo ------------------------------------------------------------------------ for prog in $PROG; do case $prog in jobs|ckpt|doc|inst_sge|utiltree|examples|man|mpi|pvm|hadoop|qmontree|common|distcommon|utilbin|arco) : ;; qmake) echo Installing qmake Install 0.0 755 ../3rdparty/qmake/$ARCHBIN/make $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/qmake ;; qtcsh) echo Installing qtcsh Install 0.0 755 ../3rdparty/qtcsh/$ARCHBIN/tcsh $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH/qtcsh ;; sgepasswd) if [ "$DSTARCH" != "win32-x86" ]; then InstallProg $prog fi ;; sge_qmaster|spoolinit|spooldefaults) if [ "$DSTARCH" != "win32-x86" ]; then if [ $instclassictargets = false ]; then InstallProg $prog else if [ -f ../${ARCHBIN}_classic/$prog ]; then InstallProgAs ../${ARCHBIN}_classic/$prog ${prog}.spool_classic InstallProgAs $prog ${prog}.spool_bdb ( echo changing to $DEST_SGE_ROOT/bin/$DSTARCH ; \ cd $DEST_SGE_ROOT/bin/$DSTARCH ; \ echo ln -s ${prog}.spool_bdb $prog ; \ ln -s ${prog}.spool_bdb $prog ) else InstallProg $prog fi fi fi ;; sge_shadowd|qmon|spooledit) if [ "$DSTARCH" != "win32-x86" ]; then InstallProg $prog fi ;; qloadsensor.exe) if [ "$DSTARCH" = "win32-x86" ]; then # Currently qloadsensor.exe is needed only for win32-x86 InstallProg $prog fi ;; sgeinspect) if [ -f "$DEST_SGE_ROOT/bin/sgeinspect.sh" ]; then ( echo changing to $DEST_SGE_ROOT/bin/$DSTARCH ; \ cd $DEST_SGE_ROOT/bin/$DSTARCH ; \ rm sgeinspect 2>&1 > /dev/null ; \ echo ln -s ../sgeinspect.sh sgeinspect; \ ln -s ../sgeinspect.sh sgeinspect; \ ) fi ;; *) InstallProg $prog if [ $prog = qstat ]; then ( echo changing to $DEST_SGE_ROOT/bin/$DSTARCH ; \ cd $DEST_SGE_ROOT/bin/$DSTARCH ; \ echo ln -s qstat qselect ; \ ln -s qstat qselect \ ) elif [ $prog = qalter ]; then ( echo changing to $DEST_SGE_ROOT/bin/$DSTARCH ; \ cd $DEST_SGE_ROOT/bin/$DSTARCH ; \ echo ln -s qalter qresub ; \ ln -s qalter qresub ; \ echo ln -s qalter qhold ; \ ln -s qalter qhold ; \ echo ln -s qalter qrls ; \ ln -s qalter qrls \ ) elif [ $prog = qsh ]; then ( echo changing to $DEST_SGE_ROOT/bin/$DSTARCH ; \ cd $DEST_SGE_ROOT/bin/$DSTARCH ; \ echo ln -s qsh qlogin ; \ ln -s qsh qlogin ; \ echo ln -s qsh qrsh ; \ ln -s qsh qrsh ; \ ) fi ;; esac done if [ $instutilbin = true ]; then UTILPREFIX="utilbin" echo "Installing utility binaries" echo "---------------------------" for prog in $UTILITYBINARIES; do if [ $prog = openssl ]; then if [ -f $OPENSSLBASE/$DSTARCH/bin/openssl ]; then InstallProg $OPENSSLBASE/$DSTARCH/bin/openssl elif [ -f $OPENSSLBASE/bin/openssl ]; then InstallProg $OPENSSLBASE/bin/openssl else echo \"openssl\" binary not found fi elif [ $prog = testsuidroot ]; then InstallProgSUID $prog elif [ $prog = authuser ]; then if [ "$DSTARCH" != "win32-x86" ]; then InstallProgSUID $prog else InstallProg $prog.exe fi elif [ $prog = loadcheck ]; then if [ "$DSTARCH" != "win32-x86" ]; then InstallProg $prog else InstallProg $prog.exe fi elif [ $prog = berkeley_db_svc -o $prog = db_archive \ -o $prog = db_checkpoint -o $prog = db_deadlock \ -o $prog = db_dump -o $prog = db_load \ -o $prog = db_printlog -o $prog = db_recover \ -o $prog = db_stat -o $prog = db_upgrade \ -o $prog = db_verify ]; then if [ "$DSTARCH" != "win32-x86" ]; then if [ -f $BERKELEYDBBASE/$DSTARCH/bin/$prog ]; then InstallProg $BERKELEYDBBASE/$DSTARCH/bin/$prog elif [ -f $BERKELEYDBBASE/bin/$prog ]; then InstallProg $BERKELEYDBBASE/bin/$prog fi fi elif [ $prog = spoolinit -o $prog = spooldefaults ]; then if [ "$DSTARCH" != "win32-x86" ]; then if [ $instclassictargets = false ]; then InstallProg $prog elif [ -f ../${ARCHBIN}_classic/$prog ]; then InstallProgAs ../${ARCHBIN}_classic/$prog ${prog}.spool_classic InstallProgAs $prog ${prog}.spool_bdb ( echo changing to $DEST_SGE_ROOT/utilbin/$DSTARCH ; \ cd $DEST_SGE_ROOT/utilbin/$DSTARCH ; \ echo ln -s ${prog}.spool_bdb $prog ; \ ln -s ${prog}.spool_bdb $prog ) else InstallProg $prog fi fi elif [ "$prog" = "SGE_Helper_Service.exe" -o "$prog" = "SGE_Starter.exe" ]; then if [ "$DSTARCH" = "win32-x86" ]; then InstallProg $prog fi elif [ "$DSTARCH" = "win32-x86" -a \( "$prog" = "spooledit" -o "$prog" = "valid_jvmlib" \) ]; then # Don't install spooledit, valid_jvmlib for win32-x86 : else InstallProg $prog fi done for prog in $REMOTEBINARIES; do if [ $prog = "rsh" ] || [ $prog = "rlogin" ]; then InstallProgSUID ../3rdparty/remote/$ARCHBIN/$prog else InstallProg ../3rdparty/remote/$ARCHBIN/$prog fi done fi if [ $instsecbin = true ]; then UTILPREFIX="utilbin" echo "Installing security binaries" echo "----------------------------" for prog in $SECURITYBINARIES; do InstallProg $prog done fi if [ $instjobs = true ]; then UTILPREFIX="examples/jobsbin" echo "Installing job binaries" echo "-----------------------" for prog in $JOBBINARIES; do InstallProg $prog done fi if [ $instsharedlibs = true ]; then # Install libraries - we need to evaluate shlib extension case $i in hp10|hp11|hp11-64) shlibext="sl" jnilibext="sl" ;; darwin-*) shlibext="dylib" jnilibext="jnilib" ;; *) shlibext="so" jnilibext="so" ;; esac UTILPREFIX="lib" echo "Installing shared libraries" echo "---------------------------" Execute rm -f $DEST_SGE_ROOT/$UTILPREFIX/$i/* for lib in $SHARED_LIBRARIES; do if [ "$DSTARCH" != "win32-x86" \ -o \( "$lib" != "libspool" -a "$lib" != "libspoolb" \ -a "$lib" != "libspoold" -a "$lib" != "libspoolc" \ -a "$lib" != "libspoolf" \) ]; then if [ -f $lib.$shlibext ]; then InstallProg $lib.$shlibext if [ "$DSTARCH" = "sol-sparc64" ]; then if [ "$lib" = "libjuti" -o "$lib" = "libjgdi" ]; then # Install the 32bit libraries DSTARCH="sol-sparc" SetArchBin $DSTARCH Execute mkdir -p $DEST_SGE_ROOT/lib/sol-sparc InstallProg ../$ARCHBIN/$lib.$shlibext DSTARCH="sol-sparc64" SetArchBin $DSTARCH fi fi fi fi done for lib in $QMON_SHARED_LIBRARIES; do if [ "$DSTARCH" != "win32-x86" ]; then libname="../3rdparty/qmon/$ARCHBIN/$lib.$shlibext" if [ -f $libname ]; then InstallProg $libname fi fi done for lib in $QMON_NEED_SHARED_LIBRARIES; do if [ "$DSTARCH" != "win32-x86" ]; then libname="../3rdparty/qmon/$ARCHBIN/$lib.$shlibext" if [ -f $libname ]; then InstallProg $libname elif [ $exit_on_error = true ]; then echo "\"$libname\" not found. Installation failed." exit 1 fi fi done if [ $instopenssl = true ]; then for lib in $OPENSSL_SHARED_LIBRARIES; do if [ $DSTARCH = tru64 ]; then libname="$lib.$shlibext" elif [ $DSTARCH = darwin-ppc -o $DSTARCH = darwin-x86 -o $DSTARCH = darwin-x64 ]; then libname="$lib.$OPENSSLSOVERSION.$shlibext" else libname="$lib.$shlibext.$OPENSSLSOVERSION" fi if [ -f $OPENSSLBASE/$DSTARCH/lib/$libname ]; then libname=$OPENSSLBASE/$DSTARCH/lib/$libname elif [ -f $OPENSSLBASE/lib/$libname ]; then libname=$OPENSSLBASE/lib/$libname fi if [ -f $libname ]; then InstallProg $libname if [ $DSTARCH = tru64 ]; then : elif [ $DSTARCH = darwin-ppc -o $DSTARCH = darwin-x86 -o $DSTARCH = darwin-x64 ]; then (cd $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH; \ ln -s $lib.$OPENSSLSOVERSION.$shlibext $lib.$shlibext) else (cd $DEST_SGE_ROOT/${UTILPREFIX}/$DSTARCH; ln -s $lib.${shlibext}.$OPENSSLSOVERSION $lib.$shlibext) fi elif [ $exit_on_error = true ]; then echo "\"$libname\" not found. Installation failed." exit 1 fi done fi if [ $DSTARCH != win32-x86 ]; then if [ $instbdb = true ]; then for lib in $BERKELEYDB_SHARED_LIBRARIES; do libname="$lib.$shlibext" if [ -f $BERKELEYDBBASE/$DSTARCH/lib/$libname ]; then libname=$BERKELEYDBBASE/$DSTARCH/lib/$libname elif [ -f $BERKELEYDBBASE/lib/$libname ]; then libname=$BERKELEYDBBASE/lib/$libname fi if [ -f $libname ]; then InstallProg $libname else echo "\"$libname\" not found. Assuming binaries are statically linked." fi done fi for lib in $DRMAA_SHARED_LIBRARIES; do for version in $DRMAA_SHARED_LIB_VERSIONS; do libname=$lib.$shlibext.$version if [ -f $libname ]; then InstallProg $libname if [ "$DSTARCH" = "sol-sparc64" ]; then # Install the 32bit libraries DSTARCH="sol-sparc" SetArchBin $DSTARCH Execute mkdir -p $DEST_SGE_ROOT/lib/sol-sparc InstallProg ../$ARCHBIN/$libname DSTARCH="sol-sparc64" SetArchBin $DSTARCH fi elif [ $exit_on_error = true ]; then echo "\"$libname\" not found. Installation failed." exit 1 fi done done ( cd $DEST_SGE_ROOT/lib/$DSTARCH ln -s $libname $lib.$shlibext ) if [ "$DSTARCH" = "sol-sparc64" ]; then ( cd $DEST_SGE_ROOT/lib/sol-sparc ln -s $libname $lib.$shlibext ) fi for lib in $JNI_SHARED_LIBRARIES; do # On MacOS X, the JVM expects a special JNI extension for shared libraries if [ "$shlibext" != "$jnilibext" -a -f "$lib.$shlibext" ]; then ( echo Linking $lib.$jnilibext to $lib.$shlibext cd $DEST_SGE_ROOT/lib/$DSTARCH if [ -f $lib.$jnilibext ]; then rm $lib.$jnilibext fi ln -s $lib.$shlibext $lib.$jnilibext ) fi done if [ -f $CORE_HOME/$DSTARCH/libcore.$shlibext ]; then InstallProg $CORE_HOME/$DSTARCH/libcore.$shlibext fi fi fi cd .. fi done