#! /bin/sh
# link-2.test - check that .lo files aren't made into programs.
#
#   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
#   Written by Gary V. Vaughan, 2003
#
#   This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Libtool; see the file COPYING.  If not, a copy
# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
####

. tests/defs || exit 1

rm -f hell.lo
cat > hell.lo <<EOF
# Generated by libtool
pic_object=none
non_pic_object=hell.o
EOF

# Try a sample link command.
linkresult=`$LIBTOOL -n --mode=link $CC -o something foo.o hell.lo`
res=$?

rm -f hell.lo

test $res -eq 0 || exit $EXIT_FAILURE

echo "$linkresult"
case "$linkresult" in
*".lo "*)
  func_fail "$progname: .lo files should not be linked into programs"
  ;;
esac

exit $EXIT_SUCCESS
