Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
99
cde/util/scripts/mergelib.cpp
Normal file
99
cde/util/scripts/mergelib.cpp
Normal file
@@ -0,0 +1,99 @@
|
||||
XCOMM!/bin/sh
|
||||
XCOMM
|
||||
XCOMM $XConsortium: mergelib.cpp,v 1.3 91/08/22 11:08:08 rws Exp $
|
||||
XCOMM
|
||||
XCOMM Copyright 1989 Massachusetts Institute of Technology
|
||||
XCOMM
|
||||
XCOMM Permission to use, copy, modify, distribute, and sell this software and its
|
||||
XCOMM documentation for any purpose is hereby granted without fee, provided that
|
||||
XCOMM the above copyright notice appear in all copies and that both that
|
||||
XCOMM copyright notice and this permission notice appear in supporting
|
||||
XCOMM documentation, and that the name of M.I.T. not be used in advertising or
|
||||
XCOMM publicity pertaining to distribution of the software without specific,
|
||||
XCOMM written prior permission. M.I.T. makes no representations about the
|
||||
XCOMM suitability of this software for any purpose. It is provided "as is"
|
||||
XCOMM without express or implied warranty.
|
||||
XCOMM
|
||||
XCOMM M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||
XCOMM IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
|
||||
XCOMM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
XCOMM WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
XCOMM OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
XCOMM CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
XCOMM
|
||||
XCOMM Author: Jim Fulton, MIT X Consortium
|
||||
XCOMM
|
||||
XCOMM mergelib - merge one library into another; this is commonly used by X
|
||||
XCOMM to add the extension library into the base Xlib.
|
||||
XCOMM
|
||||
|
||||
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
|
||||
|
||||
|
||||
XCOMM
|
||||
XCOMM Create a temp directory, and figure out how to reference the
|
||||
XCOMM object files from it (i.e. relative vs. absolute path names).
|
||||
XCOMM
|
||||
|
||||
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
|
||||
|
||||
|
||||
XCOMM
|
||||
XCOMM In the temp directory, extract all of the object files and prefix
|
||||
XCOMM them with some symbol to avoid name clashes with the base library.
|
||||
XCOMM
|
||||
cd $tmpdir
|
||||
ar x ${upfrom}$fromlib
|
||||
for i in *.o; do
|
||||
mv $i ${objprefix}$i
|
||||
done
|
||||
|
||||
|
||||
XCOMM
|
||||
XCOMM Merge in the object modules, ranlib (if appropriate) and cleanup
|
||||
XCOMM
|
||||
ARCMD ${upto}$tolib *.o
|
||||
RANLIB ${upto}$tolib
|
||||
cd $origdir
|
||||
rm -rf $tmpdir
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user