"make install" uses two tools to install files: $(INSTALL) and
$(COPY_LIBS). $INSTALL is 'install' but $COPY_LIBS is "cp -f -d" (on
linux anyway).
We need COPY_LIBS because 'install' doesn't preserve symbolic links.
Unfortunately, not all versions of 'cp' support the -d option either.
Kind of a mess.
To fix all this I've written a shell script that replaces install. It
supports the -d and -m options and keeps symbolic links in tact. This
script will eliminate the need for INSTALL and COPY_LIBS.
I thought I'd post it here for review first. I'm not a bash script
expert by any means.
-Brian
#!/bin/sh
# A minimal replacement for 'install' that supports installing symbolic links.
# Only a limited number of options are supported:
# -d dir Create a directory
# -m mode Sets a file's mode when installing
MODE=""
if [ "$1" == "-d" ] ; then
# make a directory path
# XXX if the -p option isn't univeral, we'll have to fix this
mkdir -p $2
exit 0
fi
if [ "$1" == "-m" ] ; then
# set file mode
MODE=$2
shift
shift
fi
# install file(s) into destination
if [ $# -ge 2 ] ; then
# Find last cmd line arg, it's the dest dir
for v in $* ; do
DEST=$v
done
#echo dest is $DEST
# Loop over args, moving them to DEST directory
I=1
for FILE in $@ ; do
if [ $I == $# ] ; then
# stop, don't want to install $DEST into $DEST
exit 0
fi
# determine file's type
if [ -h $FILE ] ; then
#echo $FILE is a symlink
# Unfortunately, cp -d isn't universal so we have to
# use a work-around.
# Use ls -l to find the target that the link points to
LL=`ls -l $FILE`
for L in $LL ; do
TARGET=$L
done
#echo $FILE is a symlink pointing to $TARGET
FILE=`basename $FILE`
# Go to $DEST and make the link
pushd $DEST
ln -s $TARGET $FILE
popd
elif [ -f $FILE ] ; then
#echo $FILE is a regular file
cp $FILE $DEST
if [ $MODE ] ; then
chmod $MODE $DEST/$FILE
fi
else
echo "Unknown type of argument: " $FILE
exit 1
fi
I=`expr $I + 1`
done
exit 0
fi
# If we get here, we didn't find anything to do
echo "Usage:"
echo " install -d dir Create named directory"
echo " install [-m mode] file [...] dest Install files in destination"
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev