* tests/maken2.test: Merge into ...
* tests/maken.test: ... this test, to avoid unnecessary code
duplication. Make checks depending on GNU make conditional to
the actual presence of GNU make.
* tests/maken4.test: Similarly, merge into ...
* tests/maken3.test: ... this test.
* tests/Makefile.am (TESTS): Remove maken2.test and maken4.test.
makej.test \
makej2.test \
maken.test \
-maken2.test \
maken3.test \
-maken4.test \
makevars.test \
man.test \
man2.test \
#! /bin/sh
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright (C) 2009, 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
# Ensure that `make -n dist' and `make -n distcheck' do not change files
# on disk, due to GNU make executing rules containing `$(MAKE)'.
-
-# Please keep this test in sync with sister test maken2.test.
+# Also, ensure that `make -n dist' and `make -n distcheck' show what
+# would happen, at least when using GNU make.
. ./defs || Exit 1
$sleep
for target in dist distcheck; do
$MAKE -n $target
+ if using_gmake; then
+ $MAKE -n $target | grep stamp-sub-dist-hook || Exit 1
+ fi
$MAKE test-no-distdir
test `ls -1t | sed 1q` = stampfile
done
+++ /dev/null
-#! /bin/sh
-# Copyright (C) 2009 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/>.
-
-# Ensure that `make -n dist' and `make -n distcheck' show what would happen.
-# This currently works for GNU make only.
-
-# Please keep this test in sync with sister test maken.test.
-
-required=GNUmake
-. ./defs || Exit 1
-
-set -e
-
-mkdir sub
-
-cat >> configure.in << 'END'
-AC_CONFIG_FILES([sub/Makefile])
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-SUBDIRS = sub
-distcheck-hook:
- @: > stamp-distcheck-hook
-test-no-distdir:
- test ! -d $(distdir)
- test ! -f stamp-distcheck-hook
- test ! -f sub/stamp-sub-dist-hook
-END
-cat >sub/Makefile.am <<'END'
-dist-hook:
- @: > stamp-sub-dist-hook
-END
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE
-./configure
-
-$sleep
-echo stamp > stampfile
-$sleep
-for target in dist distcheck; do
- $MAKE -n $target
- $MAKE test-no-distdir
- $MAKE -n $target | grep stamp-sub-dist-hook
- test `ls -1t | sed 1q` = stampfile
-done
-
-Exit 0
#! /bin/sh
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright (C) 2009, 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
# 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 `make -n' for various targets, to ensure that no files or
-# directories are created.
+# Test `make -n' for various targets, to ensure that:
+#
+# 1. no files or directories are created or removed, and
+#
+# 2. if using GNU make, stdout output is sufficiently complete.
+#
+# FIXME: The checks in (2) should also work with BSD make implementations
+# FIXME: that support the `.MAKE' special target, but currently we don't
+# FIXME: explicitly test that this is truly the case.
#
# This test exercises the GCS-mandated targets (except for dist)
# as well as tags, TAGS.
-# Please keep this test in sync with sister test maken4.test.
-
. ./defs || Exit 1
set -e
case $target in
install-* | installdirs | tags | TAGS ) ;;
*)
+ if using_gmake; then
+ grep "stamp-$target$" stdout || Exit 1
+ fi
test ! -f "stamp-$target$" || Exit 1
;;
esac
case $target in
install-* | installdirs ) ;;
*)
+ if using_gmake; then
+ grep "stamp-$target-sub" stdout || Exit 1
+ fi
test ! -f "sub/stamp-$target-sub" || Exit 1
;;
esac
case $target in
distclean | maintainer-clean ) ;;
*)
+ if using_gmake; then
+ grep "should-not-be-executed" stdout || Exit 1
+ fi
test ! -f "sub2/sub2-$target-should-not-be-executed" || Exit 1
;;
esac
+++ /dev/null
-#! /bin/sh
-# Copyright (C) 2009 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 `make -n' for various targets, to ensure that stdout output is
-# sufficiently complete. This currently only works for GNU make and
-# BSD make implementations that support the `.MAKE' special target.
-#
-# This test exercises the GCS-mandated targets (except for dist)
-# as well as tags, TAGS.
-
-# Please keep this test in sync with sister test maken3.test.
-
-required=GNUmake
-. ./defs || Exit 1
-
-set -e
-
-mkdir sub sub2
-
-cat >> configure.in << 'END'
-AC_CONFIG_FILES([sub/Makefile sub2/Makefile])
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-TESTS = foo.test
-SUBDIRS = sub sub2
-##BUILT_SOURCES = foo
-foo:
-foo.test:
-all-local:
- @: > stamp-all
-install-data-local:
- @: > stamp-install
-uninstall-local:
- @: > stamp-uninstall
-clean-local:
- @: > stamp-clean
-distclean-local:
- @: > stamp-distclean
-info-local:
- @: > stamp-info
-html-local:
- @: > stamp-html
-dvi-local:
- @: > stamp-dvi
-ps-local:
- @: > stamp-ps
-pdf-local:
- @: > stamp-pdf
-check-local:
- @: > stamp-check
-installcheck-local:
- @: > stamp-installcheck
-mostlyclean-local:
- @: > stamp-mostlyclean
-maintainer-clean-local:
- @: > stamp-maintainer-clean
-END
-cat >sub/Makefile.am <<'END'
-all-local:
- @: > stamp-all-sub
-install-data-local:
- @: > stamp-install-sub
-uninstall-local:
- @: > stamp-uninstall-sub
-clean-local:
- @: > stamp-clean-sub
-distclean-local:
- @: > stamp-distclean-sub
-info-local:
- @: > stamp-info-sub
-html-local:
- @: > stamp-html-sub
-dvi-local:
- @: > stamp-dvi-sub
-ps-local:
- @: > stamp-ps-sub
-pdf-local:
- @: > stamp-pdf-sub
-check-local:
- @: > stamp-check-sub
-installcheck-local:
- @: > stamp-installcheck-sub
-tags:
- @: > stamp-tags-sub
-TAGS:
- @: > stamp-TAGS-sub
-mostlyclean-local:
- @: > stamp-mostlyclean-sub
-maintainer-clean-local:
- @: > stamp-maintainer-clean-sub
-END
-cat >sub2/Makefile.am <<'END'
-all install uninstall clean check:
- @: > sub2-$@-should-not-be-executed
-info dvi pdf ps:
- @: > sub2-$@-should-not-be-executed
-html:
- @: > sub2-$@-should-not-be-executed
-install-info install-html install-dvi install-pdf install-ps:
- @: > sub2-$@-should-not-be-executed
-installcheck installdirs tags TAGS mostlyclean:
- @: > sub2-$@-should-not-be-executed
-## These targets cannot be overridden like this:
-## install-strip distclean maintainer-clean
-END
-
-$ACLOCAL
-$AUTOCONF
-
-check_targets ()
-{
- set -e
- for target in \
- all install install-strip uninstall clean distclean check \
- info html dvi pdf ps \
- install-info install-html install-dvi install-pdf install-ps \
- installcheck installdirs tags TAGS mostlyclean maintainer-clean
- do
- $MAKE -n $target >stdout || { cat stdout; Exit 1; }
- cat stdout
- case $target in
- install-* | installdirs | tags | TAGS ) ;;
- *)
- grep "stamp-$target$" stdout || Exit 1
- test ! -f "stamp-$target$" || Exit 1
- ;;
- esac
- case $target in
- install-* | installdirs ) ;;
- *)
- grep "stamp-$target-sub" stdout || Exit 1
- test ! -f "sub/stamp-$target-sub" || Exit 1
- ;;
- esac
- case $target in
- distclean | maintainer-clean ) ;;
- *)
- grep "should-not-be-executed" stdout || Exit 1
- test ! -f "sub2/sub2-$target-should-not-be-executed" || Exit 1
- ;;
- esac
- done
-}
-
-$AUTOMAKE -Wno-override
-./configure
-check_targets || Exit 1
-
-# Now, introduce BUILT_SOURCES into the toplevel Makefile
-# TODO: add BUILT_SOURCES to sub2, fix fallout.
-sed 's/##//' < Makefile.am > t
-mv -f t Makefile.am
-$AUTOMAKE -Wno-override --force Makefile
-./configure
-check_targets || Exit 1
-
-Exit 0