From 255e7b7a585001d830e0bc4f69528ee26981103b Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Mon, 2 May 2011 18:05:34 +0200 Subject: [PATCH] tests: check some remake features with non-GNU make too * tests/acloca14.test ($required): Drop "GNUmake". This test works as-is with non-GNU make implementations. * tests/remake1a.test: Likewise. * tests/aclocal4.test ($required): Drop "GNUmake". Modify the test to have it work also with non-GNU make. * tests/remake5.test: Likewise. * tests/remake8a.test: Likewise. * tests/remake8b.test: Likewise. * tests/remake9a.test: Likewise. * tests/remake9b.test: Likewise. * tests/remake9c.test: Likewise. * tests/remake9d.test: Likewise. * tests/remake10a.test: Likewise. * tests/remake10b.test: Likewise. * tests/remake10c.test: Likewise. * tests/remake12.test: ($required): Drop "GNUmake". Adapt the test to make it work also with non-GNU make (if it supports an "include" directive). --- ChangeLog | 22 ++++++++++++++++++++++ tests/acloca14.test | 1 - tests/aclocal4.test | 8 ++++---- tests/remake10a.test | 16 +++++++++++----- tests/remake10b.test | 16 +++++++++++----- tests/remake10c.test | 17 +++++++++++------ tests/remake12.test | 34 ++++++++++++++++++++++++++++++---- tests/remake1a.test | 1 - tests/remake5.test | 15 ++++++++++----- tests/remake8a.test | 5 ++--- tests/remake8b.test | 5 ++--- tests/remake9a.test | 12 +++++++++--- tests/remake9b.test | 12 +++++++++--- tests/remake9c.test | 12 +++++++++--- tests/remake9d.test | 12 +++++++++--- 15 files changed, 139 insertions(+), 49 deletions(-) diff --git a/ChangeLog b/ChangeLog index 541955c..9a512c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2011-05-03 Stefano Lattarini + + tests: check some remake features with non-GNU make too + * tests/acloca14.test ($required): Drop "GNUmake". This test + works as-is with non-GNU make implementations. + * tests/remake1a.test: Likewise. + * tests/aclocal4.test ($required): Drop "GNUmake". + Modify the test to have it work also with non-GNU make. + * tests/remake5.test: Likewise. + * tests/remake8a.test: Likewise. + * tests/remake8b.test: Likewise. + * tests/remake9a.test: Likewise. + * tests/remake9b.test: Likewise. + * tests/remake9c.test: Likewise. + * tests/remake9d.test: Likewise. + * tests/remake10a.test: Likewise. + * tests/remake10b.test: Likewise. + * tests/remake10c.test: Likewise. + * tests/remake12.test: ($required): Drop "GNUmake". + Adapt the test to make it work also with non-GNU make (if + it supports an "include" directive). + 2011-05-01 Stefano Lattarini tests: extend tests on dependency tracking with VPATH diff --git a/tests/acloca14.test b/tests/acloca14.test index 0371ef5..d919aab 100755 --- a/tests/acloca14.test +++ b/tests/acloca14.test @@ -17,7 +17,6 @@ # Make sure m4_included files are also scanned for definitions. # Report from Phil Edwards. -required=GNUmake . ./defs || Exit 1 cat >> configure.in << 'END' diff --git a/tests/aclocal4.test b/tests/aclocal4.test index e18684b..7b637bd 100755 --- a/tests/aclocal4.test +++ b/tests/aclocal4.test @@ -17,8 +17,6 @@ # Make sure dependencies on aclocal.m4 are set correctly. # Report from Jim Meyering. -# We need GNU make for the `rebuild rules' to be triggered. -required=GNUmake . ./defs || Exit 1 cat >>configure.in <m4/mymacro.m4 <<'EOF' AC_DEFUN([MY_MACRO], [AC_LIBOBJ([foo])]) EOF +using_gmake || $MAKE $MAKE check-foo + +: diff --git a/tests/remake10a.test b/tests/remake10a.test index 7da457c..78b15b0 100755 --- a/tests/remake10a.test +++ b/tests/remake10a.test @@ -18,13 +18,18 @@ # configure.ac. # Keep in sync with sister tests `remake10b.test' and `remake10c.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ magic3=%%MagicStringThree%% +if using_gmake; then + remake="$MAKE nil" +else + remake="$MAKE Makefile" +fi + cat >> configure.in < $top_srcdir/foo.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile $sleep echo "m4_define([my_fingerprint], [$magic2])" > $top_srcdir/foo.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -77,7 +82,7 @@ for vpath in : false; do $sleep echo "m4_include([bar.m4])" > $top_srcdir/foo.m4 echo "m4_define([my_fingerprint], [$magic3])" > $top_srcdir/bar.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile && Exit 1 @@ -85,13 +90,14 @@ for vpath in : false; do $sleep echo "m4_define([my_fingerprint], [$magic1])" > $top_srcdir/bar.m4 - $MAKE nil + $remake $FGREP $magic2 Makefile && Exit 1 $FGREP $magic3 Makefile && Exit 1 $FGREP $magic1 Makefile $sleep echo "m4_define([my_fingerprint], [DummyValue])" > $top_srcdir/foo.m4 + using_gmake || $remake $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake10b.test b/tests/remake10b.test index 0672fc9..2c193cd 100755 --- a/tests/remake10b.test +++ b/tests/remake10b.test @@ -18,13 +18,18 @@ # Makefile.am. # Keep in sync with sister tests `remake10a.test' and `remake10c.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ magic3=%%MagicStringThree%% +if using_gmake; then + remake="$MAKE nil" +else + remake="$MAKE Makefile" +fi + cat >> configure.in <<'END' AC_OUTPUT END @@ -62,13 +67,13 @@ for vpath in : false; do $sleep echo "FINGERPRINT = $magic1" > $top_srcdir/foo.am - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile $sleep echo "FINGERPRINT = $magic2" > $top_srcdir/foo.am - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -76,7 +81,7 @@ for vpath in : false; do $sleep echo 'include $(top_srcdir)/bar.am' > $top_srcdir/foo.am echo "FINGERPRINT = $magic3" > $top_srcdir/bar.am - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile && Exit 1 @@ -84,13 +89,14 @@ for vpath in : false; do $sleep echo "FINGERPRINT = $magic1" > $top_srcdir/bar.am - $MAKE nil + $remake $FGREP $magic2 Makefile && Exit 1 $FGREP $magic3 Makefile && Exit 1 $FGREP $magic1 Makefile $sleep echo "FINGERPRINT = DummyValue" > $top_srcdir/foo.am + using_gmake || $remake $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake10c.test b/tests/remake10c.test index 9b9aca9..d20c1e8 100755 --- a/tests/remake10c.test +++ b/tests/remake10c.test @@ -18,13 +18,18 @@ # aclocal.m4. # Keep in sync with sister tests `remake10a.test' and `remake10b.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ magic3=%%MagicStringThree%% +if using_gmake; then + remake="$MAKE nil" +else + remake="$MAKE Makefile" +fi + cat >> configure.in < $top_srcdir/m4/foo.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile $sleep echo "AC_DEFUN([my_fingerprint], [$magic2])" > $top_srcdir/m4/foo.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -79,7 +84,7 @@ for vpath in : false; do $sleep echo "m4_include([m4/bar.m4])" > $top_srcdir/m4/foo.m4 echo "AC_DEFUN([my_fingerprint], [$magic3])" > $top_srcdir/m4/bar.m4 - $MAKE nil + $remake $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile && Exit 1 @@ -87,7 +92,7 @@ for vpath in : false; do $sleep echo "AC_DEFUN([my_fingerprint], [$magic1])" > $top_srcdir/m4/bar.m4 - $MAKE nil + $remake $FGREP $magic2 Makefile && Exit 1 $FGREP $magic3 Makefile && Exit 1 $FGREP $magic1 Makefile @@ -95,7 +100,7 @@ for vpath in : false; do $sleep echo "AC_DEFUN([my_fingerprint], [DummyValue])" > $top_srcdir/m4/foo.m4 echo "AC_DEFUN([AM_UNUSED], [NoSuchMacro])" > $top_srcdir/m4/bar.m4 - $MAKE nil # required to work around limitation of GNU make 3.82 + using_gmake || $remake $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake12.test b/tests/remake12.test index fe14885..d6c1ef2 100755 --- a/tests/remake12.test +++ b/tests/remake12.test @@ -17,13 +17,27 @@ # Test basic remake rules for Makefiles with non-default names # and/or with multiple sources. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ magic3=%%MagicStringThree%% +# See if the user's make implementation support an include directive. +# We need it in this test. +echo 'all:; @echo include is supported' > incl.mk +echo 'include incl.mk' > gnu-style.mk +echo '.include "incl.mk"' > bsd-style.mk +if $MAKE -f gnu-style.mk | grep 'include is supported'; then + echo "$me: GNU make include style supported" + include_zardoz='include zardoz' +elif $MAKE -f bsd-style.mk | grep 'include is supported'; then + echo "$me: BSD make include style supported" + include_zardoz='.include "zardoz"' +else + skip_ "make doesn't support any \"include\" directive" +fi + cat > configure.in < Makefile < quux.am echo 'FOO = dummy' >> quux.am echo 'BAR = $(BAZ)' > top.in echo "BAZ = $magic3" > bot.in +is_gmake || $MAKE zardoz $MAKE test $FGREP my-check zardoz # sanity check $FGREP $magic3 quux.in && Exit 1 @@ -110,11 +133,14 @@ $FGREP $magic2 zardoz && Exit 1 # After the remake above, the files `zardoz.am' and `zardoz.in' # should be no more needed echo 'endif' > zardoz.am # put in syntax error +is_gmake || $MAKE zardoz $MAKE test rm -f zardoz.in zardoz.am # get rid of them +is_gmake || $MAKE zardoz $MAKE test echo 'FOO = $(BAR)' >> quux.am +is_gmake || $MAKE zardoz $MAKE distcheck : diff --git a/tests/remake1a.test b/tests/remake1a.test index a794a05..fc5ba6d 100755 --- a/tests/remake1a.test +++ b/tests/remake1a.test @@ -17,7 +17,6 @@ # Make sure remaking rules in subdir are correctly generated. # See also sister "grepping" test `remake.test'. -required=GNUmake . ./defs || Exit 1 fingerprint='=/FiNgErPrInT/=' diff --git a/tests/remake5.test b/tests/remake5.test index d3bfc10..2c4571f 100755 --- a/tests/remake5.test +++ b/tests/remake5.test @@ -18,9 +18,14 @@ # but not all. # Report from Ralf Corsepius. -required=GNUmake . ./defs || Exit 1 +if using_gmake; then + remake="$MAKE" +else + remake="$MAKE Makefile" +fi + cat >>configure.in <<'EOF' AM_MAINTAINER_MODE m4_include([foo.m4]) @@ -46,12 +51,12 @@ $MAKE # tools are set to false.) $sleep touch aclocal.m4 Makefile.am configure.in foo.m4 -$MAKE +$remake # Make sure the rebuild rule for Makefile is triggered. $sleep echo '# GrEpMe' >>Makefile.in -$MAKE +$remake grep GrEpMe Makefile # Make sure the rebuild rule for config.status is triggered. @@ -59,14 +64,14 @@ $sleep grep 'AUTOCONF.*=.*false' Makefile : > rebuild_ok ./configure --no-create -$MAKE +$remake grep 'AUTOCONF.*=.*false' Makefile && Exit 1 # Make sure rebuild rules do work if --enable-maintainer-mode is given. ./configure --enable-maintainer-mode $sleep echo 'AC_SUBST([YIPPY_YIPPY_YEAH])' >foo.m4 -$MAKE +$remake grep YIPPY_YIPPY_YEAH Makefile # Try the distribution, for completeness. diff --git a/tests/remake8a.test b/tests/remake8a.test index c625e32..10a6c5a 100755 --- a/tests/remake8a.test +++ b/tests/remake8a.test @@ -21,7 +21,6 @@ # Keep this in sync with sister test `remake8b.test', which performs the # same checks for a VPATH build. -required=GNUmake . ./defs || Exit 1 mv -f configure.in configure.stub @@ -71,6 +70,7 @@ check-local: CLEANFILES = bar END +using_gmake || $MAKE Makefile $MAKE cat bar grep '!Baz!' bar @@ -84,7 +84,6 @@ rm -f bar $sleep cat > $srcdir/Makefile.am <<'END' -all-local: quux check-local: cat quux grep '!Zardoz!' quux @@ -102,6 +101,7 @@ cat > $srcdir/quux.in <<'END' !@QUUX@! END +using_gmake || $MAKE Makefile $MAKE cat quux grep '!Zardoz!' quux @@ -119,7 +119,6 @@ mkdir $srcdir/m4 cat > $srcdir/Makefile.am <<'END' ACLOCAL_AMFLAGS = -I m4 -all-local: quux check-local: cat quux grep '%Foo%' quux diff --git a/tests/remake8b.test b/tests/remake8b.test index 86f0f8e..461940c 100755 --- a/tests/remake8b.test +++ b/tests/remake8b.test @@ -21,7 +21,6 @@ # Keep this in sync with sister test `remake8a.test', which performs the # same checks for a in-tree build. -required=GNUmake . ./defs || Exit 1 mv -f configure.in configure.stub @@ -73,6 +72,7 @@ check-local: CLEANFILES = bar END +using_gmake || $MAKE Makefile $MAKE cat bar grep '!Baz!' bar @@ -86,7 +86,6 @@ rm -f bar $sleep cat > $srcdir/Makefile.am <<'END' -all-local: quux check-local: cat quux grep '!Zardoz!' quux @@ -104,6 +103,7 @@ cat > $srcdir/quux.in <<'END' !@QUUX@! END +using_gmake || $MAKE Makefile $MAKE cat quux grep '!Zardoz!' quux @@ -121,7 +121,6 @@ mkdir $srcdir/m4 cat > $srcdir/Makefile.am <<'END' ACLOCAL_AMFLAGS = -I m4 -all-local: quux check-local: cat quux grep '%Foo%' quux diff --git a/tests/remake9a.test b/tests/remake9a.test index d46f317..9139b46 100755 --- a/tests/remake9a.test +++ b/tests/remake9a.test @@ -17,12 +17,17 @@ # Test remake rules when configure.in or its prerequisites change. # Keep in sync with the other sister tests `remake9*.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ +if using_gmake; then + remake_() { $MAKE nil; } +else + remake_() { $MAKE Makefile && $MAKE foo.sh; } +fi + cat >> configure.in <t mv -f t $srcdir/configure.in - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile test x"`./foo.sh`" = x"$magic1" @@ -81,7 +86,7 @@ for vpath in : false; do $sleep echo 'sed "s/^\\(FINGERPRINT\\)=.*/\\1='$magic2'/"' \ > $srcdir/tweak-configure-in - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -91,6 +96,7 @@ for vpath in : false; do echo cat > $srcdir/tweak-configure-in # no-op again sed "s/^\\(FINGERPRINT\\)=.*/\\1=DummyValue/" $srcdir/configure.in >t mv -f t $srcdir/configure.in + using_gmake || remake_ $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake9b.test b/tests/remake9b.test index 680ce9a..6c650c4 100755 --- a/tests/remake9b.test +++ b/tests/remake9b.test @@ -17,9 +17,14 @@ # Test remake rules when Makefile.am or its prerequisites change. # Keep in sync with the other sister tests `remake9*.test'. -required=GNUmake . ./defs || Exit 1 +if using_gmake; then + remake_() { $MAKE nil; } +else + remake_() { $MAKE Makefile && $MAKE foo.sh; } +fi + magic1=::MagicStringOne:: magic2=__MagicStringTwo__ @@ -75,7 +80,7 @@ for vpath in : false; do $sleep sed "s/^\\(FINGERPRINT\\) *=.*/\\1 = $magic1/" $srcdir/Makefile.am >t mv -f t $srcdir/Makefile.am - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile test x"`./foo.sh`" = x"$magic1" @@ -83,7 +88,7 @@ for vpath in : false; do $sleep echo 'sed "s/^\\(FINGERPRINT\\) *=.*/\\1 = '$magic2'/"' \ > $srcdir/tweak-makefile-am - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -93,6 +98,7 @@ for vpath in : false; do echo cat > $srcdir/tweak-makefile-am # no-op again sed "s/^\\(FINGERPRINT\\) *=.*/\\1 = DummyValue/" $srcdir/Makefile.am >t mv -f t $srcdir/Makefile.am + using_gmake || remake_ $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake9c.test b/tests/remake9c.test index 3328beb..6186bfb 100755 --- a/tests/remake9c.test +++ b/tests/remake9c.test @@ -17,12 +17,17 @@ # Test remake rules when acinclude.m4 or its prerequisites change. # Keep in sync with the other sister tests `remake9*.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ +if using_gmake; then + remake_() { $MAKE nil; } +else + remake_() { $MAKE Makefile && $MAKE foo.sh; } +fi + cat >> configure.in < $srcdir/acinclude.m4 - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile test x"`./foo.sh`" = x"$magic1" @@ -85,7 +90,7 @@ for vpath in : false; do $sleep echo "echo 'AC_DEFUN([my_fingerprint], [$magic2])'" \ > $srcdir/tweak-acinclude-m4 - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -94,6 +99,7 @@ for vpath in : false; do $sleep echo : > $srcdir/tweak-acinclude-m4 # no-op again echo "AC_DEFUN([my_fingerprint], [DummyValue])" > $srcdir/acinclude.m4 + using_gmake || remake_ $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise diff --git a/tests/remake9d.test b/tests/remake9d.test index ecb93d9..b18db2a 100755 --- a/tests/remake9d.test +++ b/tests/remake9d.test @@ -17,12 +17,17 @@ # Test remake rules when aclocal.m4 or its prerequisites change. # Keep in sync with the other sister tests `remake9*.test'. -required=GNUmake . ./defs || Exit 1 magic1=::MagicStringOne:: magic2=__MagicStringTwo__ +if using_gmake; then + remake_() { $MAKE nil; } +else + remake_() { $MAKE Makefile && $MAKE foo.sh; } +fi + cat >> configure.in <> $srcdir/aclocal.m4 - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile test x"`./foo.sh`" = x"$magic1" @@ -85,7 +90,7 @@ for vpath in : false; do $sleep echo "sed 's/.*dnl *%%%.*/AC_DEFUN([my_fingerprint], [$magic2])/'" \ > $srcdir/tweak-aclocal-m4 - $MAKE nil + remake_ $FGREP FINGERPRINT Makefile # for debugging $FGREP $magic1 Makefile && Exit 1 $FGREP $magic2 Makefile @@ -94,6 +99,7 @@ for vpath in : false; do $sleep echo cat > $srcdir/tweak-aclocal-m4 # no-op again echo 'AC_DEFUN([my_fingerprint], [DummyValue])' >> $srcdir/aclocal.m4 + using_gmake || remake_ $MAKE distcheck $FGREP $magic1 Makefile && Exit 1 # sanity check $FGREP $magic2 Makefile && Exit 1 # likewise -- 2.7.4