swh:1:snp:af87cd67498ef4fe47c76ed3e7caffe5b61facaf
Tip revision: f1db858aa63b44fc755714d580ce920636ca95df authored by Axel Naumann on 12 December 2017, 08:29:46 UTC
Prepare for next patch release.
Prepare for next patch release.
Tip revision: f1db858
makelib.sh
#! /bin/sh
# Script to generate a shared library.
# Called by main Makefile.
#
# Author: Fons Rademakers, 29/2/2000
if [ "$1" = "-v" ] ; then
MAJOR=$2
MINOR=$3
REVIS=$4
shift
shift
shift
shift
fi
if [ "$1" = "-x" ] ; then
EXPLICIT="yes"
shift
fi
PLATFORM=$1
LD=$2
LDFLAGS=$3
SOFLAGS=$4
SONAME=$5
LIB=$6
OBJS=$7
EXTRA=$8
rm -f $LIB
if [ $PLATFORM = "aix" ] || [ $PLATFORM = "aix5" ]; then
soext="a"
else
soext="so"
fi
LIBVERS=
VERSION=
EXPLLNKCORE=
if [ "x$EXPLICIT" = "xyes" ]; then
if [ $LIB != "lib/libminicern.$soext" ]; then
if [ $LIB != "lib/libCore.$soext" -a $LIB != "lib/libCling.$soext" ]; then
EXPLLNKCORE="-Llib -lCore"
else
EXPLLNKCORE=""
fi
fi
if [ $PLATFORM = "linux" ] || [ $PLATFORM = "linux-k1om" ]; then
if [ -z "$EXPLLNKCORE" ]; then
EXPLLNKCORE=" -ldl"
else
EXPLLNKCORE=${EXPLLNKCORE}" -ldl"
fi
fi
fi
if [ $PLATFORM = "aix" ] || [ $PLATFORM = "aix5" ]; then
if [ $PLATFORM = "aix" ]; then
makeshared="/usr/ibmcxx/bin/makeC++SharedLib"
fi
if [ $PLATFORM = "aix5" ]; then
makeshared="/usr/vacpp/bin/makeC++SharedLib"
fi
if [ $LD = "xlC" ] || [ $LD = "xlC_r" ]; then
cmd="$makeshared -o $LIB -p 0 $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
fi
if [ $LD = "g++" ]; then
cmd="$LD $SOFLAGS $LDFLAGS -o $LIB $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
fi
elif [ $PLATFORM = "alphaegcs" ] || [ $PLATFORM = "hpux" ] || \
[ $PLATFORM = "solaris" ] || [ $PLATFORM = "sgi" ]; then
cmd="$LD $SOFLAGS $LDFLAGS -o $LIB $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
elif [ $PLATFORM = "lynxos" ]; then
cmd="ar rv $LIB $OBJS $EXTRA"
echo $cmd
$cmd
elif [ $PLATFORM = "fbsd" ] || [ $PLATFORM = "obsd" ]; then
if [ "x$MAJOR" = "x" ] ; then
cmd="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB \
`lorder $OBJS | tsort -q` $EXPLLNKCORE $EXTRA"
else
cmd="$LD $SOFLAGS$SONAME.$MAJOR.$MINOR $LDFLAGS -o $LIB.$MAJOR.$MINOR \
`lorder $OBJS | tsort -q` $EXPLLNKCORE $EXTRA"
fi
echo $cmd
$cmd
elif [ $PLATFORM = "macosx" ]; then
export DYLD_LIBRARY_PATH=`pwd`/lib:$DYLD_LIBRARY_PATH
# Add versioning information to shared library if available
if [ "x$MAJOR" != "x" ]; then
VERSION="-compatibility_version ${MAJOR} -current_version ${MAJOR}.${MINOR}.${REVIS}"
SONAME=`echo $SONAME | sed "s/\(.*\)\.$soext/\1.${MAJOR}.$soext/"`
LIB=`echo $LIB | sed "s/\(\/*.*\/.*\)\.$soext/\1.${MAJOR}.${MINOR}.$soext/"`
LIBVERS=$LIB
fi
cmd="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB $OBJS \
-ldl $EXPLLNKCORE $EXTRA $VERSION"
echo $cmd
$cmd
linkstat=$?
if [ $linkstat -ne 0 ]; then
exit $linkstat
fi
elif [ $PLATFORM = "ios" ]; then
export DYLD_LIBRARY_PATH=`pwd`/lib:$DYLD_LIBRARY_PATH
# Add versioning information to shared library if available
if [ "x$MAJOR" != "x" ]; then
VERSION="-compatibility_version ${MAJOR} -current_version ${MAJOR}.${MINOR}.${REVIS}"
SONAME=`echo $SONAME | sed "s/\(.*\)\.$soext/\1.${MAJOR}.$soext/"`
LIB=`echo $LIB | sed "s/\(\/*.*\/.*\)\.$soext/\1.${MAJOR}.${MINOR}.$soext/"`
LIBVERS=$LIB
fi
cmd="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB $OBJS \
-ldl $EXPLLNKCORE $EXTRA $VERSION"
echo $cmd
$cmd
linkstat=$?
if [ $linkstat -ne 0 ]; then
exit $linkstat
fi
elif test "${LD#*wingcc_ld.sh}" != "$LD"; then
EXPLLNKCORE=
if [ $SONAME != "libminicern.dll" ]; then
if [ $SONAME = "libCore.dll" ]; then
EXPLLNKCORE=""
else
EXPLLNKCORE="-Llib -lCore"
fi
fi
if [ "x$MAJOR" != "x" ] ; then
MINORVERSION=`echo ${MINOR}$REVIS | sed 's,^0,,'`
VERSION="-Wl,--major-image-version,$MAJOR -Wl,--minor-image-version,$MINORVERSION"
SONAME=`echo $SONAME | sed "s/.*\./&${MAJOR}./"`
LIB=`echo $LIB | sed "s/\/*.*\/.*\./&${MAJOR}.${MINOR}./"`
LIBVERS=$LIB
fi
cmd="$LD $VERSION $SOFLAGS$SONAME $LDFLAGS -o $LIB $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
else
if [ "x$MAJOR" = "x" ] ; then
cmd="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
else
cmd="$LD $SOFLAGS$SONAME.$MAJOR.$MINOR $LDFLAGS \
-o $LIB.$MAJOR.$MINOR $OBJS $EXPLLNKCORE $EXTRA"
echo $cmd
$cmd
fi
fi
linkstat=$?
if [ $linkstat -ne 0 ]; then
exit $linkstat
fi
if [ "x$MAJOR" != "x" ]; then
if [ -f $LIB.$MAJOR.$MINOR ]; then
# Versioned library has format foo.so.3.05
ln -fs $SONAME.$MAJOR.$MINOR $LIB.$MAJOR
ln -fs $SONAME.$MAJOR $LIB
elif [ -f $LIBVERS ]; then
# Versioned library has format foo.3.05.so
source_file=`echo $SONAME | sed "s/.*\./&${MINOR}./"`
LIBNOMAJORMINOR=`echo $LIB|sed 's,\.'$MAJOR'\.'$MINOR',,'`
if [ $LIB != $LIBNOMAJORMINOR ]; then
LIBNOMINOR=`echo $LIB|sed 's,\.'$MINOR',,'`
ln -fs $source_file $LIBNOMINOR
ln -fs $source_file $LIBNOMAJORMINOR
fi
fi
fi
if [ $PLATFORM = "hpux" ]; then
chmod 555 $LIB
fi
echo "==> $LIB done"
exit 0