#!/bin/sh ########################## Begin Install Script ########################## # # NAME: ACE-install.sh # # PURPOSE: Bourne shell script to install ACE for UNIX platforms # # AUTHOR: Ajit Sagar # # HISTORY: 5/20/96 Ajit Sagar Created # x/xx/xx xxxxxxxxxxxxxx Modified # x/xx/xx xxxxxxxxxxxxxx Modified # # DESCRIPTION: This script installs the ACE toolkit for a Unix system. # Before using this script, you must do the following: # # NOTES: 1) Download the gzipped version of ACE from # http://www.cs.wustl.edu/~schmidt/ (Select "Obtaining ACE") # OR # ftp from wuarchive.wustl.edu in the /languages/c++/ACE directory # # The local directory to which this will be downloaded is # refered to as the "MY_ACEDIR" in this script. # # 2) Make sure there is only one file that matches "ACE*tar*". # This should be the one you just downloaded. # remove older versions of tar files downloaded earlier. # # 3) At the end of this script, you should have: # # a) A compiled toolkit in the $ACE_ROOT directory # b) If you selected to save the existing installation, # a file oldACE.tar.gz will be created in MY_ACEDIR # c) The gzipped ACE source file that was initially downloaded. # # 4) This script may be executed without user interaction # by using the "auto" option (see USAGE section below). # It is advisable to execute it without the "auto" option the # first time to make sure everything works. # # THE FOLLOWING NEED TO BE DONE ONLY THE FIRST TIME THIS # SCRIPT IS RUN: # # 5) Read the README file in # http://www.cs.wustl.edu/~schmidt/ACE.html directory # # 6) Define an environment variable ACE_ROOT the # defines which directory your ACE toolkit is to be # installed in. # # DO NOT MAKE "ACE_ROOT" THE SAME AS "MY_ACEDIR". # # 7) Redefine "MY_ACEDIR" in this script to default # to the directory in which you have downloaded the ACE source. # # 8) This script has been tested on Solaris 2.x for the # Sun C++4.0 compiler. To use this on some other UNIX # platform, uncomment and redefine the following # in this script: # # MY_ACE_CONFIG # MY_ACE_GNU_MACROS # # Check the README file to define these variables. If # these are not defined, the script will prompt you # help you to change these variables. But in that case # you cannot run with the "auto" option. # # # USAGE: myacemaker [ auto ] # # auto automatic make (no user interaction) # # Under this option, the source will be # extracted and compiled without any user interaction, # i.e., you can kick off this script, go home, # and check it in the morning. The following # assumptions are made: # # 1) MY_ACE_DIR is properly defined in this script. # 2) MY_ACE_CONFIG is properlly defined # in this script. # 3) MY_ACE_GNU_MACROS is properly defined in this # script. # 4) A backup of existing installation # is to be made. # # COPYRIGHT INFORMATION: # # You are free to do anything you like with this script such as # including it in commercial software. You may modify it and freely redistribute # it. The author accepts no responsibility for any bugs or problems that # arise as a consequence of using this code. # # -- Ajit Sagar # ######################################################################### # ACE_ERRFILE=/tmp/myacemaker.err OLD_ACE_TAR_FILE=oldACE.tar OLD_ACE_GZIPPED_TAR_FILE=oldACE.tar.gz USAGE=" : myacemaker [ auto ]" # ############################################################## # # Platform-specific definitions # ############################################################## # Directory where ACE-x.x.xx.tar.gz is located MY_ACEDIR=${HOME}/aceconfig ####################################################### # Platform specific config file in ${ACE_ROOT}/ace/ # Uncomment and redefine this ####################################################### # MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h ####################################################### # Platform specific GNU macros file in # ${ACE_ROOT}/include/makeinclude/ # Uncomment and redefine this ####################################################### # MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU ############################################################## # # Main Script For Installing ACE # ############################################################## AUTO="$#" ACE_ROOT=${ACE_ROOT:?"ERROR: Environment variable ACE_ROOT not set"} if [ ${AUTO} -gt 1 ] then echo "$USAGE" exit 1 fi if [ ${AUTO} -eq 1 ] then if [ $1 != "auto" ] then if [ $1 = "nounzip" ] ; then UNZIP=0 AUTO=0 else echo "$USAGE" exit 2 fi fi fi echo "" echo "ACE source in `ls ${MY_ACEDIR}/ACE*tar.gz`" echo "ACE will be installed in ${ACE_ROOT}" echo "" if [ $AUTO -eq 0 ] then echo "OK to continue? [Y/N] : \c" read choice else choice='Y' fi if [ ${choice} != 'Y' -a ${choice} != 'y' ] then echo "" echo "ACE installation aborted" echo "" exit 11 fi cd ${MY_ACEDIR} echo "Uncomressing ACE archive and extracting ACE files" echo "into `pwd`/ACE_wrappers directory ..." echo "" gunzip -c ACE*tar.gz | tar xvf - || \ { echo "" echo "gunzip or tar failed. Aborting script !!" echo "" exit 33 } if [ -d ${ACE_ROOT} ] then if [ $AUTO -eq 0 ] then echo "Save a copy of existing ACE installation? [Y/N] : \c" read choice echo "" else choice='Y' fi if [ ${choice} = 'Y' -o ${choice} = 'y' ] then echo "Archiving ${ACE_ROOT} to `pwd`/${OLD_ACE_TAR_FILE} using ..." tar cvpf ${OLD_ACE_TAR_FILE} ${ACE_ROOT} echo "" if [ -f ${OLD_ACE_GZIPPED_TAR_FILE} ] then echo "Removing ${OLD_ACE_GZIPPED_TAR_FILE} ..." rm ${OLD_ACE_GZIPPED_TAR_FILE} echo "" fi echo "Compressing ${OLD_ACE_TAR_FILE} using ..." gzip -9 ${OLD_ACE_TAR_FILE} echo "" fi echo "Removing ${ACE_ROOT} ..." rm -r ${ACE_ROOT} echo "" fi echo "Moving `pwd`/ACE_wrappers to ${ACE_ROOT} ..." mv ./ACE_wrappers ${ACE_ROOT} echo "" cd ${ACE_ROOT}/ace if [ ${MY_ACE_CONFIG:-undefined} = undefined ] then if [ $AUTO -eq 1 ] then if [ ! -f ${MY_ACE_CONFIG} ] then echo "" echo "${MY_ACE_CONFIG} does not exist. Aborting script ..." echo "" exit 44 fi fi echo "Select one of the following files for linking to config.h" echo "" echo "`ls config*h`" echo "" echo "Type the filename for your compiler: \c" read MY_ACE_CONFIG echo "" if [ ! -f ${MY_ACE_CONFIG} ] then echo "" echo "${MY_ACE_CONFIG} does not exist. Aborting script ..." echo "" exit 55 fi fi echo "Creating link config.h for ${MY_ACE_CONFIG} in directory `pwd` ..." rm ./config.h ln -s ${MY_ACE_CONFIG} config.h echo "" cd ${ACE_ROOT}/include/makeinclude if [ ${MY_ACE_GNU_MACROS:-undefined} = undefined ] then if [ $AUTO -eq 1 ] then if [ ! -f ${MY_ACE_GNU_MACROS} ] then echo "" echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..." echo "" exit 66 fi fi echo "Select one of the following files for linking to config.h" echo "" echo "`ls platform*GNU`" echo "" echo "Type the filename for your compiler: \c" read MY_ACE_GNU_MACROS echo "" if [ ! -f ${MY_ACE_GNU_MACROS} ] then echo "" echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..." echo "" exit 77 fi fi echo "Creating link platform_macros.GNU for ${MY_ACE_GNU_MACROS}" echo "in directory `pwd` ..." rm ./platform_macros.GNU ln -s ${MY_ACE_GNU_MACROS} platform_macros.GNU echo "" if [ ${AUTO} -eq 0 ] then echo "Make ACE now with default setup? [Y/N] : \c" read choice echo "" else choice='Y' fi if [ ${choice} != 'Y' -a ${choice} != 'y' ] then echo "" echo "ACE make skipped. You can use to make ACE later" echo "" exit 0 fi echo "" echo "Making ACE now. Examine file ${ACE_ERRFILE} for errors ..." echo "" cd ${ACE_ROOT} echo "" echo "Executing ..." echo "" gmake | tee ${ACE_ERRFILE} 2>&1 echo "" echo "Examine file ${ACE_ERRFILE} for possible errors ..." echo "" echo "********** End of myacemaker script !!! ***********" echo "" # #########################################################################