summaryrefslogtreecommitdiff
path: root/tests/nocase.at
blob: f6650a58f9f45c2f5ba562f36357d67bfa8e6981 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# nocase.at --  test for nocase lib search  -*- Autotest -*-
#
#   Copyright (C) 2010-2018 Free Software Foundation, Inc.
#   Written by Peter Rosin, 2007
#
#   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.
####


AT_SETUP([nocase library search])
AT_KEYWORDS([libtool])

eval `$LIBTOOL --config | $EGREP '^(want_nocaseglob|file_magic_glob)='`

AT_CHECK([test yes != "$want_nocaseglob" && ]dnl
         [test -z "$file_magic_glob" && exit 77],
	  [1], [ignore], [ignore])

mkdir foo
AT_DATA([foo/Foo.c],
[
int Foo (void) { return 1; }
])

mkdir bar
AT_DATA([bar/bar.c],
[
extern int Foo (void);
int bar (void) { return Foo (); }
])

AT_DATA([main.c],
[
extern int bar (void);
int main (void) { return bar (); }
])

libdir=`pwd`/inst/lib
mkdir inst inst/bin inst/lib

$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o foo/Foo.lo foo/Foo.c
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC $CFLAGS $LDFLAGS -o foo/libFoo.la foo/Foo.lo ]dnl
	 [-no-undefined -version-info 1:0:0 -rpath $libdir],
	 [], [ignore], [ignore])
AT_CHECK([$LIBTOOL --mode=install cp foo/libFoo.la $libdir],
	 [], [ignore], [ignore])
AT_CHECK([$LIBTOOL --mode=clean rm -f foo/libFoo.la],
	 [], [ignore], [ignore])

rm -f $libdir/libFoo.la

$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o bar/bar.lo bar/bar.c
AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC $CFLAGS $LDFLAGS -o bar/libbar.la bar/bar.lo ]dnl
	 [-L$libdir -lfoo -no-undefined -version-info 1:0:0 -rpath $libdir],
	 [], [ignore], [ignore])
AT_CHECK([$LIBTOOL --mode=install cp bar/libbar.la $libdir],
	 [], [ignore], [ignore])

str=`$EGREP '^(old_library)=' < $libdir/libbar.la`
eval "$str"
libbar=$old_library
rm -f $libdir/$libbar

$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o main.$OBJEXT main.c

AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main$EXEEXT main.$OBJEXT -L$libdir -lbar],
	 [], [ignore], [ignore])

AT_CLEANUP