Merge branch 'msvc' into maint
[platform/upstream/automake.git] / tests / distlinksbrk.test
1 #! /bin/sh
2 # Copyright (C) 2010 Free Software Foundation, Inc.
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2, or (at your option)
7 # any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 # Check that distributed broken symlinks cause `make dist' to fail, and
18 # to do so with (mostly) meaningful diagnostic.
19
20 . ./defs || Exit 1
21
22 set -e
23
24 # We need, for our broken symlinks, names that make it hard to get false
25 # positives when grepping make output to look for them.
26 lnk_base=BrknSymlnk
27 lnk1=${lnk_base}__001
28 lnk2=${lnk_base}__002
29 lnka=${lnk_base}__aaa
30 lnkb=${lnk_base}__bbb
31
32 ln -s nonesuch $lnk1 || {
33   echo "$me: cannot create broken symlinks" >&2
34   Exit 77
35 }
36
37 ln -s "`pwd`/nonesuch" $lnk2
38
39 ln -s $lnk1 $lnka
40 ln -s $lnka $lnkb
41
42 # Sanity checks.  Use `test -r', since Solaris Sh doesn't grok `test -e'.
43 test ! -r $lnk1
44 test ! -r $lnk2
45 test ! -r $lnka
46 test ! -r $lnkb
47 test -h $lnk1
48 test -h $lnk2
49 test -h $lnka
50 test -h $lnkb
51
52 cat >> configure.in <<'END'
53 AC_OUTPUT
54 END
55
56 $ACLOCAL
57 $AUTOCONF
58
59 ls -l # for debugging
60
61 # Don't try to use "make -k", because some botched make implementations
62 # (HP-UX, IRIX) might still exit on the first error in this situations.
63 for lnk in $lnk1 $lnk2 $lnka $lnkb; do
64   echo "EXTRA_DIST = $lnk" > Makefile.am
65   $AUTOMAKE
66   ./configure
67   # Distribution must fail, with a decent error message.
68   $MAKE distdir >out 2>&1 && { cat out; Exit 1; }
69   cat out
70   $FGREP $lnk out
71 done
72
73 :