mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.3 KiB

#!/bin/bash
# run the original command
"$@"; rc=$?
if [ -n "$AUTOSO2A_DIR" ] && \
[[ "$*" == *" -shared "* ]]
then
mkdir -p "$AUTOSO2A_DIR"
{
echo "--"; echo "$0 $*"; shift
arname="a.out"; objs=""; del=""
while [ "$#" -gt 0 ]
do
case "$1" in
-o)
arname="${2##*/}"; shift
;;
[^-]*.o|[^-]*.lo)
if [ -f $1 ]; then
echo "Add object: $1"
objs="$objs $1"
else
echo "$0: Don't know how to handle $1 .." >&2
echo "Don't know how to handle $1 .."
fi
;;
[^-]*.a|[^-]*.al)
if [ -f $1 ]; then
echo "Add archive: $1"
tmpdir=$( mktemp -d ); del="$del $tmpdir"
( cd $tmpdir; ar x /dev/fd/0; ) < $1
for x in $tmpdir/*; do
[ -f $x ] || continue
echo " - $x"; objs="$objs $x"
done
else
echo "$0: Don't know how to handle $1 .." >&2
echo "Don't know how to handle $1 .."
fi
;;
[^-]*)
echo "$0: Don't know how to handle $1 .." >&2
echo "Don't know how to handle $1 .."
;;
esac
shift
done
[[ "$arname" == *.so* ]] && arname="${arname%.so*}.a"
echo "Output file: $arname"
rm -f "$AUTOSO2A_DIR/$arname"
if ! $AUTOSO2A_AR q "$AUTOSO2A_DIR/$arname" $objs 2>&1; then
echo "$0: Got an error while running $AUTOSO2A_AR .." >&2
fi
$AUTOSO2A_RANLIB "$AUTOSO2A_DIR/$arname"
} >> "$AUTOSO2A_DIR/so2a_wrapper.log"
fi
exit $rc