From a2e9a71348a6ad79c9f856997b41daa36cca3f0b Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Tue, 1 Jan 2013 00:32:34 +0100 Subject: [PATCH] coverage: test CONFIGURE_DEPENDENCIES * t/remake-configure-dependencies.sh: New test. * t/list-of-tests.mk: Add it. * doc/automake.texi: Reference it in comments. Signed-off-by: Stefano Lattarini --- doc/automake.texi | 1 + t/list-of-tests.mk | 1 + t/remake-configure-dependencies.sh | 80 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100755 t/remake-configure-dependencies.sh diff --git a/doc/automake.texi b/doc/automake.texi index ee2df4d5a..47a8e3a32 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -9905,6 +9905,7 @@ any level in the build hierarchy. Beware not to mistake @code{CONFIGURE_DEPENDENCIES} for @code{CONFIG_STATUS_DEPENDENCIES}. +@c Keep in sync with remake-configure-dependencies.sh @code{CONFIGURE_DEPENDENCIES} adds dependencies to the @file{configure} rule, whose effect is to run @command{autoconf}. This variable should be seldom used, because @command{automake} already tracks diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index d61257314..591b4f0fd 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -920,6 +920,7 @@ t/remake-include-configure.sh \ t/remake-include-makefile.sh \ t/remake-include-aclocal.sh \ t/remake-config-status-dependencies.sh \ +t/remake-configure-dependencies.sh \ t/remake-deeply-nested.sh \ t/remake-mild-stress.sh \ t/remake-all-1.sh \ diff --git a/t/remake-configure-dependencies.sh b/t/remake-configure-dependencies.sh new file mode 100755 index 000000000..2e5df88b1 --- /dev/null +++ b/t/remake-configure-dependencies.sh @@ -0,0 +1,80 @@ +#! /bin/sh +# Copyright (C) 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 CONFIGURE_DEPENDENCIES. + +. test-init.sh + +cat > configure.ac <<'END' +AC_INIT([confdeps], m4_esyscmd([./print-version])) +AM_INIT_AUTOMAKE([foreign]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT +END + +# Needless to say, the autom4te cache happily break this test. +cat > .autom4te.cfg <<'END' +begin-language: "Autoconf-without-aclocal-m4" +args: --no-cache +end-language: "Autoconf-without-aclocal-m4" +END + +cat > Makefile.am <<'END' +EXTRA_DIST = .autom4te.cfg +CONFIGURE_DEPENDENCIES = $(top_srcdir)/print-version + +test-1: + test $(VERSION) = 1.0 +test-2: + test $(VERSION) = 2.1 +test-3: + test $(VERSION) = 3.14 + +.PHONY: test-1 test-2 test-3 + +# Contents of $(CONFIGURE_DEPENDENCIES) are to be automatically +# distributed. +local-check: test-3 distdir + test -f $(distdir)/print-version +END + +(echo '#!/bin/sh' && echo 'printf %s 1.0') > print-version +chmod a+x print-version + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure +$MAKE test-1 + +(echo '#!/bin/sh' && echo 'printf %s 2.1') > print-version +using_gmake || $MAKE Makefile +$MAKE test-2 + +$MAKE distclean +mkdir build +cd build +../configure +$MAKE test-2 +(echo '#!/bin/sh' && echo 'printf %s 3.14') > ../print-version +using_gmake || $MAKE Makefile +$MAKE test-3 + +# Check that $(CONFIGURE_DEPENDENCIES) are automatically distributed. +$MAKE distcheck + +: -- 2.11.4.GIT