:
 #
 # $XConsortium: mergelib.cpp,v 1.2 89/10/17 12:09:30 jim Exp $
 # 
 # Copyright 1989 Massachusetts Institute of Technology
 # 
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
 # the above copyright notice appear in all copies and that both that
 # copyright notice and this permission notice appear in supporting
 # documentation, and that the name of M.I.T. not be used in advertising or
 # publicity pertaining to distribution of the software without specific,
 # written prior permission.  M.I.T. makes no representations about the
 # suitability of this software for any purpose.  It is provided "as is"
 # without express or implied warranty.
 # 
 # M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
 # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 # OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
 # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 # 
 # Author:  Jim Fulton, MIT X Consortium
 # 
 # mergelib - merge one library into another; this is commonly used by X
 #     to add the extension library into the base Xlib.
 #

usage="usage:  $0  to-library from-library [object-filename-prefix]"
objprefix=_

case $# in
    2) ;;
    3) objprefix=$3 ;;
    *) echo "$usage" 1>&2; exit 1 ;;
esac

tolib=$1
fromlib=$2

if [ ! -f $fromlib ]; then
    echo "$0:  no such from-library $fromlib" 1>&2
    exit 1
fi

if [ ! -f $tolib ]; then
    echo "$0:  no such to-library $tolib" 1>&2
    exit 1
fi


 #
 # Create a temp directory, and figure out how to reference the 
 # object files from it (i.e. relative vs. absolute path names).
 #

tmpdir=tmp.$$
origdir=..

mkdir $tmpdir

if [ ! -d $tmpdir ]; then
    echo "$0:  unable to create temporary directory $tmpdir" 1>&2
    exit 1
fi

case "$fromlib" in
    /?*) upfrom= ;;
    *)  upfrom=../ ;;
esac

case "$tolib" in
    /?*) upto= ;;
    *)  upto=../ ;;
esac


 #
 # In the temp directory, extract all of the object files and prefix
 # them with some symbol to avoid name clashes with the base library.
 #
cd $tmpdir
ar x ${upfrom}$fromlib
for i in *.o; do
    mv $i ${objprefix}$i
done


 #
 # Merge in the object modules, ranlib (if appropriate) and cleanup
 #
ar cq  ${upto}$tolib *.o
../.././server/ddx/at386/etc/ranlib  ${upto}$tolib
cd $origdir
rm -rf $tmpdir



