diff options
Diffstat (limited to 't/remake-renamed-m4-macro-and-file.sh')
-rwxr-xr-x | t/remake-renamed-m4-macro-and-file.sh | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/t/remake-renamed-m4-macro-and-file.sh b/t/remake-renamed-m4-macro-and-file.sh new file mode 100755 index 000000000..9f80b31c7 --- /dev/null +++ b/t/remake-renamed-m4-macro-and-file.sh @@ -0,0 +1,86 @@ +#! /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/>. + +# Test remake rules when an m4 file gets renamed and *simultaneously* +# an m4 macro in it gets renamed. Kudos to Bruno Haible for thinking +# about this situation. See also related test 'acloca22.test'. + +. ./defs || Exit 1 + +cat >> configure.ac <<'END' +MY_MACRO +AC_OUTPUT +END + +cat > Makefile.am <<'END' +ACLOCAL_AMFLAGS = -I m4 +.PHONY: test +test: + test '$(the_answer)' -eq 42 +END + +mkdir m4 + +cat > m4/macros.m4 <<'END' +AC_DEFUN([MY_MACRO], [FOO_MACRO]) +END + +cat > m4/foo.m4 <<'END' +AC_DEFUN([FOO_MACRO], [the_answer=42; AC_SUBST([the_answer])]) +END + +$ACLOCAL -I m4 +$AUTOCONF +$AUTOMAKE + +./configure +$MAKE test + +# Rename only one file and one macro. + +$sleep +sed -e 's/FOO_MACRO/BAR_MACRO/' m4/foo.m4 > m4/bar.m4 +rm -f m4/foo.m4 +sed -e 's/FOO_MACRO/BAR_MACRO/' m4/macros.m4 > t +mv -f t m4/macros.m4 +using_gmake || $MAKE Makefile +$MAKE test +$MAKE distdir +ls -l $distdir $distdir/* +test -f $distdir/m4/bar.m4 +test -f $distdir/m4/macros.m4 +test ! -f $distdir/m4/foo.m4 + +# Rename both at once. + +$sleep +sed -e 's/BAR_MACRO/QUUX_MACRO/' \ + m4/bar.m4 > m4/quux.m4 +sed -e 's/BAR_MACRO/QUUX_MACRO/' -e 's/MY_MACRO/A_MACRO/' \ + m4/macros.m4 > m4/defs.m4 +rm -f m4/macros.m4 m4/bar.m4 +sed -e 's/BAR_MACRO/QUUX_MACRO/' -e 's/MY_MACRO/A_MACRO/' configure.ac > t +mv -f t configure.ac +using_gmake || $MAKE Makefile +$MAKE test +$MAKE distdir +ls -l $distdir $distdir/* +test -f $distdir/m4/quux.m4 +test -f $distdir/m4/defs.m4 +test ! -f $distdir/m4/bar.m4 +test ! -f $distdir/m4/macros.m4 + +: |