#! /bin/sh # Copyright (C) 2011-2013 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 . # 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.sh'. . test-init.sh 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 ! -e $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 ! -e $distdir/m4/bar.m4 test ! -e $distdir/m4/macros.m4 :