mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
(based on cipherCOM's repo commit 403799b) Signed-off-by: VladimirMangos <vladimir@getmangos.com>
492 lines
14 KiB
Bash
Executable file
492 lines
14 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# $Id: ace-install 80826 2008-03-04 14:51:23Z wotte $
|
|
|
|
|
|
#####################################################################
|
|
# install_ace: distill the minimal stuff out of the ACE+TAO distribution
|
|
# alias cpio 'xargs -i echo {}'; # just for testing the script
|
|
#
|
|
# according to David Levine <levine@cs.wustl.edu> on 1999/01/09:
|
|
#
|
|
# An even better way would be to only build what you need.
|
|
# These directories are probably a good start:
|
|
#
|
|
# ace
|
|
# apps/gperf/src
|
|
# TAO/tao
|
|
# TAO/TAO_IDL
|
|
# TAO/orbsvcs
|
|
#
|
|
# netsvcs ? - not built in here, probably useful
|
|
#
|
|
#####################################################################
|
|
|
|
# actions
|
|
unpack=0
|
|
config=0
|
|
compile=0
|
|
install=0
|
|
force=0
|
|
|
|
# can we do it?
|
|
die=0
|
|
|
|
|
|
#####################################################################
|
|
# check for install_ace options
|
|
#####################################################################
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
case $1 in
|
|
|
|
##########################################
|
|
# help output
|
|
|
|
-h | --help*)
|
|
echo " "
|
|
echo "`basename $0` [options]"
|
|
echo " "
|
|
echo "options:"
|
|
echo " -h, --help show brief help"
|
|
echo " "
|
|
echo "required options:"
|
|
echo " -r, --aceroot=ACE_ROOT use ACE_ROOT directory for build/install"
|
|
echo " "
|
|
echo "extracting and configuring options:"
|
|
echo " -z, --archive=FILE unpack specified source archive"
|
|
echo " -p, --platform=HEADER,MAKE use HEADER,MAKE as config.h, platform_macros"
|
|
echo " "
|
|
echo "compiling options:"
|
|
echo " -c, --compile=ACE_OPTS compile with make options (e.g. debug=0)"
|
|
echo " "
|
|
echo "installing options:"
|
|
echo " -i, --install=ACE_DEST install into ACE_DEST directory"
|
|
echo " -a, --arch=ACE_ARCH use ACE_ARCH subdirs for arch-dependent files"
|
|
echo " "
|
|
echo "miscellaneous options:"
|
|
echo " -f, --force don't ask for confirmation before proceeding"
|
|
echo " "
|
|
exit 0
|
|
;;
|
|
|
|
##########################################
|
|
# required options
|
|
|
|
-r)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_ROOT=$1; export ACE_ROOT
|
|
else
|
|
echo "no ACE_ROOT specified"
|
|
exit 1
|
|
fi
|
|
shift
|
|
;;
|
|
|
|
--aceroot*)
|
|
ACE_ROOT=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ROOT
|
|
shift
|
|
;;
|
|
|
|
##########################################
|
|
# extracting and configuring options
|
|
|
|
-z)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_ARCHIVE=$1; export ACE_ARCHIVE
|
|
unpack=1
|
|
else
|
|
echo "no archive specified"
|
|
exit 1
|
|
fi
|
|
shift
|
|
;;
|
|
|
|
--archive*)
|
|
ACE_ARCHIVE=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ARCHIVE
|
|
unpack=1
|
|
shift
|
|
;;
|
|
|
|
-p)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_HEADER=`echo $1 | cut -f 1 -d ,`; export ACE_HEADER
|
|
ACE_MAKE=`echo $1 | cut -f 2 -d ,`; export ACE_MAKE
|
|
else
|
|
echo "no header,make files specified"
|
|
exit 1
|
|
fi
|
|
config=1
|
|
shift
|
|
;;
|
|
|
|
--platform*)
|
|
stuff=`echo $1 | sed -e 's/^[^=]*=//g'`
|
|
ACE_HEADER=`echo $stuff | cut -f 1 -d ,`; export ACE_HEADER
|
|
ACE_MAKE=`echo $stuff | cut -f 2 -d ,`; export ACE_MAKE
|
|
config=1
|
|
shift
|
|
;;
|
|
|
|
##########################################
|
|
# compiling options
|
|
|
|
-c)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_OPTS="$1"; export ACE_OPTS
|
|
compile=1
|
|
else
|
|
echo "no compilation options specified (e.g. debug=0)"
|
|
exit 1
|
|
fi
|
|
shift
|
|
;;
|
|
|
|
--compile*)
|
|
ACE_OPTS=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_OPTS
|
|
compile=1
|
|
shift
|
|
;;
|
|
|
|
##########################################
|
|
# installing options
|
|
|
|
-i)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_DEST=$1; export ACE_DEST
|
|
install=1
|
|
else
|
|
echo "no installation target directory specified (e.g. /tools/ace)"
|
|
exit 1
|
|
fi
|
|
shift
|
|
;;
|
|
|
|
--install*)
|
|
ACE_DEST=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_DEST
|
|
install=1
|
|
shift
|
|
;;
|
|
|
|
-a)
|
|
shift
|
|
if [ $# -gt 0 ]; then
|
|
ACE_ARCH=$1; export ACE_ARCH
|
|
else
|
|
echo "no installation target architecture specified"
|
|
exit 1
|
|
fi
|
|
shift
|
|
;;
|
|
|
|
--arch*)
|
|
ACE_ARCH=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ARCH
|
|
shift
|
|
;;
|
|
|
|
##########################################
|
|
# miscellaneous options
|
|
|
|
-f)
|
|
shift
|
|
force=1
|
|
;;
|
|
|
|
*)
|
|
# no more options, get on with life
|
|
if [ $# -gt 0 ]; then
|
|
echo "unrecognized option: $1"
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
|
|
#####################################################################
|
|
# sanity checks for required variables
|
|
#####################################################################
|
|
|
|
if [ $install -ne 0 -a $compile -ne 0 -a $unpack -eq 0 ]; then
|
|
echo "- No actions specified."
|
|
die=1
|
|
fi
|
|
|
|
if [ $unpack -ne 0 -a $compile -ne 0 -a $config -eq 0 ] \
|
|
|| [ $unpack -ne 0 -a $install -ne 0 -a $config -eq 0 ]; then
|
|
echo "- Must set platform config options with --platform option"
|
|
echo " (`basename $0` -h for help) to unpack and compile/install"
|
|
die=1
|
|
fi
|
|
|
|
if [ -z "$ACE_ROOT" ]; then
|
|
echo "- Must set ACE_ROOT directory before proceeding..."
|
|
echo " The directory may be set with the ACE_ROOT environment"
|
|
echo " variable or the --aceroot option (`basename $0` -h for help)"
|
|
die=1
|
|
fi
|
|
|
|
if [ $install -eq 1 -a -z "$ACE_ARCH" ]; then
|
|
# just set it to blank if we want to flatten this level of subdirectory
|
|
ACE_ARCH=""
|
|
fi
|
|
|
|
if [ $die -ne 0 ]; then
|
|
echo "- terminating `basename $0` script"
|
|
exit 2
|
|
fi
|
|
|
|
|
|
#####################################################################
|
|
# announce intentions
|
|
#####################################################################
|
|
|
|
echo "This script will perform the following actions:"
|
|
|
|
echo "using ACE_ROOT directory: $ACE_ROOT"
|
|
|
|
if [ $unpack -ne 0 ]; then
|
|
echo " "
|
|
echo "Extracting:"
|
|
echo "- unpack source archive: $ACE_ARCHIVE"
|
|
fi
|
|
|
|
if [ $config -ne 0 ]; then
|
|
echo " "
|
|
echo "Configuring:"
|
|
echo "- platform config.h header: $ACE_HEADER"
|
|
echo "- platform makefile macros: $ACE_MAKE"
|
|
fi
|
|
|
|
if [ $compile -ne 0 ]; then
|
|
echo " "
|
|
echo "Compiling:"
|
|
echo "- ACE/TAO compile options: $ACE_OPTS"
|
|
fi
|
|
|
|
if [ $install -ne 0 ]; then
|
|
echo " "
|
|
echo "Installing:"
|
|
echo "- install target directory: $ACE_DEST"
|
|
echo "- install target arch: $ACE_ARCH"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
|
|
#####################################################################
|
|
# confirm desire to proceed
|
|
#####################################################################
|
|
|
|
if [ $force -eq 0 ]; then
|
|
echo " "
|
|
echo "Type 'yes' to proceed, anything else to exit"
|
|
|
|
read ready
|
|
if [ "$ready" != "yes" ]; then
|
|
echo "Terminating install script. Thank you for playing."
|
|
echo "We have some lovely parting gifts for you. =)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
#####################################################################
|
|
# extract ACE and TAO
|
|
#####################################################################
|
|
|
|
if [ $unpack -ne 0 ]; then
|
|
|
|
echo "Unpacking $ACE_ARCHIVE..."
|
|
|
|
cd `dirname $ACE_ROOT`
|
|
gzip -dc $ACE_ARCHIVE | tar xvf -
|
|
|
|
fi
|
|
|
|
|
|
#####################################################################
|
|
# configure ACE and TAO
|
|
#####################################################################
|
|
|
|
if [ $config -ne 0 ]; then
|
|
|
|
echo "Configuring: $ACE_HEADER,$ACE_MAKE..."
|
|
|
|
# copy the files if they exist
|
|
test -f $ACE_ROOT/ace/$ACE_HEADER \
|
|
&& cp $ACE_ROOT/ace/$ACE_HEADER $ACE_ROOT/ace/config.h
|
|
test -f $ACE_ROOT/include/makeinclude/$ACE_MAKE \
|
|
&& cp $ACE_ROOT/include/makeinclude/$ACE_MAKE \
|
|
$ACE_ROOT/include/makeinclude/platform_macros.GNU
|
|
|
|
# print error message and die if they don't
|
|
if [ ! -f $ACE_ROOT/ace/$ACE_HEADER ]; then
|
|
echo "error: $ACE_HEADER doesn't exist"
|
|
die=1
|
|
fi
|
|
if [ ! -f $ACE_ROOT/include/makeinclude/$ACE_MAKE ]; then
|
|
echo "error: $ACE_MAKE doesn't exist"
|
|
die=1
|
|
fi
|
|
|
|
if [ $die -ne 0 ]; then
|
|
exit $die
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
#####################################################################
|
|
# compile ACE and TAO
|
|
#####################################################################
|
|
|
|
if [ $compile -ne 0 ]; then
|
|
|
|
echo "Compiling: $ACE_OPTS..."
|
|
|
|
##########################################
|
|
# add ACE_ROOT/ace to LD_LIBRARY_PATH so tao_idl can find libACE.so
|
|
if [ "`uname -s`" = "HP-UX" ]; then
|
|
if [ ! -z "$SHLIB_PATH" ]; then
|
|
SHLIB_PATH=$ACE_ROOT/ace:$SHLIB_PATH
|
|
else
|
|
SHLIB_PATH=$ACE_ROOT/ace; export SHLIB_PATH
|
|
fi
|
|
else
|
|
if [ ! -z "$LD_LIBRARY_PATH" ]; then
|
|
LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
|
|
else
|
|
LD_LIBRARY_PATH=$ACE_ROOT/ace; export LD_LIBRARY_PATH
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
#####################################################################
|
|
# install ACE and TAO
|
|
#####################################################################
|
|
|
|
if [ $install -ne 0 ]; then
|
|
|
|
echo "Installing: $ACE_DEST..."
|
|
|
|
##########################################
|
|
# determine final target directories
|
|
|
|
ACE_VER=`head -n 1 $ACE_ROOT/VERSION | sed -e 's/^[^0-9]*//' -e 's/[, ].*//'`
|
|
ACE_DIR="$ACE_DEST/ACE-$ACE_VER"; export ACE_DIR
|
|
|
|
TAO_VER=`head -n 1 $ACE_ROOT/TAO/VERSION | sed -e 's/^[^0-9]*//' -e 's/[, ].*//'`
|
|
TAO_DIR="$ACE_DEST/TAO-$TAO_VER"; export ACE_DIR
|
|
|
|
##########################################
|
|
# create target directories as needed
|
|
echo "creating target directories..."
|
|
|
|
ace_dirs="$ACE_DIR $ACE_DIR/include $ACE_DIR/man"
|
|
ace_arch_dirs="$ACE_DIR/$ACE_ARCH/include/ace \
|
|
$ACE_DIR/$ACE_ARCH/bin $ACE_DIR/$ACE_ARCH/lib"
|
|
tao_dirs="$TAO_DIR $TAO_DIR/include $TAO_DIR/include/orbsvcs"
|
|
tao_arch_dirs="$TAO_DIR/$ACE_ARCH/include \
|
|
$TAO_DIR/$ACE_ARCH/bin $TAO_DIR/$ACE_ARCH/lib"
|
|
|
|
for dir in $ace_dirs $ace_arch_dirs $tao_dirs $tao_arch_dirs; do
|
|
if [ ! -d $dir ]; then
|
|
echo $dir
|
|
mkdir -p $dir
|
|
fi
|
|
done
|
|
|
|
##########################################
|
|
# copy TAO stuff
|
|
|
|
cd $ACE_ROOT/TAO
|
|
cp VERSION $TAO_DIR/$ACE_ARCH/TAO-VERSION
|
|
|
|
# copy TAO includes
|
|
echo "Copying include files..."
|
|
find tao -type f -name "*.idl" -print | cpio -p -d -V $TAO_DIR/include
|
|
find tao -type f -name "*.pidl" -print | cpio -p -d -V $TAO_DIR/include
|
|
find tao -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $TAO_DIR/include
|
|
find tao -type f \( -name "*.i" -o -name "*.inl" \) -print | cpio -p -d -V $TAO_DIR/include
|
|
find tao -type f -name "*.cpp" -print | cpio -p -d -V $TAO_DIR/include
|
|
|
|
# NOTE: may need all .h, .i and .cpp under TAO/orbsvcs, instead of just TAO/orbsvcs/orbsvcs
|
|
cd orbsvcs
|
|
find orbsvcs -type f -name "*.idl" -print | cpio -p -d -V $TAO_DIR/include
|
|
find orbsvcs -type f -name "*.pidl" -print | cpio -p -d -V $TAO_DIR/include
|
|
find orbsvcs -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $TAO_DIR/include
|
|
find orbsvcs -type f \( -name "*.i" -o -name "*.inl" \) -print | cpio -p -d -V $TAO_DIR/include
|
|
find orbsvcs -type f -name "*.cpp" -print | cpio -p -d -V $TAO_DIR/include
|
|
cd ..
|
|
|
|
# copy TAO libs
|
|
echo "Copying libraries..."
|
|
for f in `find . -type f -name "lib?*" -not -name "*\.dsw" -not -name "*Test*" -print`; do
|
|
echo $f
|
|
cp $f $TAO_DIR/$ACE_ARCH/lib
|
|
done
|
|
|
|
# copy TAO executables
|
|
echo "Copying executables..."
|
|
|
|
ALL_PROGS=`find orbsvcs -type f -perm +a+x -print | grep -v ".*lib.*" | grep -v ".\.pl" | grep -v test | grep -v example`
|
|
ALL_PROGS="`find utils -type f -perm +a+x -print` $ALL_PROGS"
|
|
PROGS=`echo $ALL_PROGS | tr " " "\n" | grep -v test | grep -v default.bld | grep -v README | grep -v GNUmakefile`
|
|
|
|
for f in TAO_IDL/tao_idl $PROGS; do
|
|
echo $f
|
|
cp $f $TAO_DIR/$ACE_ARCH/bin
|
|
done
|
|
|
|
##########################################
|
|
# copy ACE stuff
|
|
|
|
cd $ACE_ROOT
|
|
cp VERSION $ACE_DIR/$ACE_ARCH/ACE-VERSION
|
|
|
|
# copy ACE includes
|
|
echo "Copying include files..."
|
|
find ace -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $ACE_DIR/include
|
|
find ace -type f \( -name "*.i" -o -name "*.inl" \) -print | cpio -p -d -V $ACE_DIR/include
|
|
find ace -type f -name "*.cpp" -print | cpio -p -d -V $ACE_DIR/include
|
|
cp ace/config.h $ACE_DIR/$ACE_ARCH/include/ace/config.h
|
|
chmod -R a+r $ACE_DIR/$ACE_ARCH/include
|
|
|
|
# copy ACE libs
|
|
echo "Copying libraries..."
|
|
for f in `find . -type f -name "lib?*" -not -name "*\.dsw" -not -name "*Test*" -print`; do
|
|
# only copy libs if they're not already in $TAO_DIR/$ACE_ARCH/lib
|
|
maybe_tao_lib=$TAO_DIR/$ACE_ARCH/lib/`basename $f`
|
|
if [ ! -f $maybe_tao_lib ]; then
|
|
echo $f
|
|
cp $f $ACE_DIR/$ACE_ARCH/lib
|
|
fi
|
|
test -f $maybe_tao_lib && echo "library $f already installed with TAO"
|
|
done
|
|
|
|
# copy ACE man pages
|
|
echo "Copying man pages..."
|
|
find man -type f -print | cpio -p -d -V $ACE_DIR
|
|
|
|
|
|
# PERMISSIONS
|
|
chmod -R a+r $ACE_DEST
|
|
find $ACE_DEST -type d -exec chmod a+x {} \;
|
|
find $ACE_DEST -type f -perm +a+x -exec chmod a+x {} \;
|
|
|
|
fi # if [ $install -ne 0 ]
|
|
|
|
|
|
#####################################################################
|
|
# that's all, folks
|
|
#####################################################################
|
|
|
|
echo "`basename $0`: done."
|