#! /bin/sh
# cdemo-undef - test generating shared libraries with undefined symbols
#
#   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

func_mkprefixdir
func_cd "tests/cdemo"
func_make_distclean
func_configure "--disable-static"

grep '^allow_undefined=.?unsupported.?$' ./libtool >/dev/null 2>&1 \
    && func_skip "$host doesn't support undefined symbols in shared libs"

if test -f ./libtool; then
  $SED 's,allow_undefined=no,allow_undefined=yes,g' ./libtool > ltnew
else
  exit 1
fi

if test -f ./ltnew; then
  rm -f libtool
  mv ltnew libtool
else
  exit 1
fi

exit 0
