diff options
Diffstat (limited to 't/remake-deleted-am-subdir.sh')
-rwxr-xr-x | t/remake-deleted-am-subdir.sh | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/t/remake-deleted-am-subdir.sh b/t/remake-deleted-am-subdir.sh new file mode 100755 index 000000000..3ca850730 --- /dev/null +++ b/t/remake-deleted-am-subdir.sh @@ -0,0 +1,77 @@ +#! /bin/sh +# Copyright (C) 2011-2012 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 <http://www.gnu.org/licenses/>. + +# Check that inclusion of '.am' fragments by automake does not suffer +# of the "deleted header problem". This test does the check when the +# SUBDIRS variable is involved. + +. ./defs || Exit 1 + +cat >> configure.ac <<'END' +AC_CONFIG_FILES([sub1/Makefile sub2/Makefile]) +AC_OUTPUT +END + +$ACLOCAL +$AUTOCONF + +cat > Makefile.am <<'END' +include foo.am +SUBDIRS = sub1 sub2 +END + +echo '# this is foo.am' > foo.am + +mkdir sub1 sub2 + +echo 'include $(srcdir)/bar.am' > sub1/Makefile.am +echo '# this is bar.am' > sub1/bar.am + +echo 'include $(top_srcdir)/foo.am' > sub2/Makefile.am + +$AUTOMAKE +# Sanity checks. +$FGREP 'this is foo.am' Makefile.in +$FGREP 'this is bar.am' sub1/Makefile.in +$FGREP 'this is foo.am' sub2/Makefile.in + +./configure +$MAKE # Should be no-op. + +$sleep +echo '# this is sub1/Makefile.am' > sub1/Makefile.am +rm -f sub1/bar.am +$MAKE all +# Sanity checks. +$FGREP 'this is bar' sub1/Makefile.in sub1/Makefile && Exit 1 +$FGREP 'this is sub1/Makefile.am' sub1/Makefile.in +$FGREP 'this is sub1/Makefile.am' sub1/Makefile + +$sleep +for d in . sub2; do + sed "s|.*include.*foo\.am.*|# this is $d/Makefile.am|" $d/Makefile.am > t + mv -f t $d/Makefile.am +done +rm -f foo.am +$MAKE all +# Sanity checks. +$FGREP 'this is foo' sub*/Makefile* Makefile* && Exit 1 +for d in . sub1 sub2; do + $FGREP "this is $d/Makefile.am" $d/Makefile.in + $FGREP "this is $d/Makefile.am" $d/Makefile +done + +: |