#! /bin/sh # Copyright (C) 2010 Free Software Foundation, Inc. # # This program 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, or (at your option) # any later version. # # This program 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 this program. If not, see . # Check that distributed broken symlinks cause `make dist' to fail, and # to do so with (mostly) meaningful diagnostic. . ./defs || Exit 1 set -e # We need, for our broken symlinks, names that make it hard to get false # positives when grepping make output to look for them. lnk_base=BrknSymlnk lnk1=${lnk_base}__001 lnk2=${lnk_base}__002 lnka=${lnk_base}__aaa lnkb=${lnk_base}__bbb ln -s nonesuch $lnk1 || { echo "$me: cannot create broken symlinks" >&2 Exit 77 } ln -s "`pwd`/nonesuch" $lnk2 ln -s $lnk1 $lnka ln -s $lnka $lnkb # Sanity checks. Use `test -r', since Solaris Sh doesn't grok `test -e'. test ! -r $lnk1 test ! -r $lnk2 test ! -r $lnka test ! -r $lnkb test -h $lnk1 test -h $lnk2 test -h $lnka test -h $lnkb cat >> configure.in <<'END' AC_OUTPUT END $ACLOCAL $AUTOCONF ls -l # for debugging # Don't try to use "make -k", because some botched make implementations # (HP-UX, IRIX) might still exit on the first error in this situations. for lnk in $lnk1 $lnk2 $lnka $lnkb; do echo "EXTRA_DIST = $lnk" > Makefile.am $AUTOMAKE ./configure # Distribution must fail, with a decent error message. $MAKE distdir >out 2>&1 && { cat out; Exit 1; } cat out $FGREP $lnk out done :