#!@SHELL@
#
-# Copyright © 2011 Nick Bowler
+# Copyright © 2011-2012, 2022 Nick Bowler
#
# Determine the list of exported symbols from archives or (libtool) object
# files.
OBJS=
-while test $# -gt 0
+for arg
do
- case $1 in
- /*) arg=$1 ;;
- *) arg=./$1 ;;
- esac
+ case $arg in
+ *.lo)
+ case $arg in /*) :;; *) arg=./$arg ;; esac
- if expr "$arg" : '.*\.lo' >/dev/null; then
- non_pic_object=
- pic_object=
- . "$arg"
+ non_pic_object=
+ pic_object=
+ . "$arg"
- dir=`expr "$arg" : '\(.*\)/'`
- if test x"$pic_object" != x"none"; then
- OBJS="$OBJS $dir/$pic_object"
- fi
- if test x"$non_pic_object" != x"none"; then
- OBJS="$OBJS $dir/$non_pic_object"
- fi
- else
- OBJS="$OBJS $arg"
- fi
-
- shift
+ dir=`expr "$arg" : '\(.*\)/'`
+ if test x"$pic_object" != x"none"; then
+ OBJS="$OBJS $dir/$pic_object"
+ fi
+ if test x"$non_pic_object" != x"none"; then
+ OBJS="$OBJS $dir/$non_pic_object"
+ fi
+ ;;
+ *)
+ OBJS="$OBJS $arg"
+ ;;
+ esac
done
set x $OBJS; shift
case $# in
0) : ;;
-*) @NM@ $OBJS | @GLOBAL_SYMBOL_PIPE@ | @SED@ 's/^.* //' | sort | uniq ;;
+*)
+ exec 4>&1
+ eval_cmd=`exec 3>&1
+ { { @NM@ $OBJS; } 3>&-
+ echo "(exit $?) || exit $?" >&3
+ } | { { @GLOBAL_SYMBOL_PIPE@; } 3>&-
+ echo "(exit $?) || exit $?" >&3
+ } | { { @SED@ 's/^.* //'; } 3>&-
+ echo "(exit $?) || exit $?" >&3
+ } | { { LC_ALL=C sort -u; } 3>&-
+ echo "(exit $?) || exit $?" >&3
+ } >&4`
+ exec 4>&-
+ eval "$eval_cmd"
+;;
esac